fix tampilan admin menu inovasi, sisa menu lingkungan

This commit is contained in:
2025-09-22 10:53:48 +08:00
parent 8e25c91e85
commit 0fc47c28ff
52 changed files with 3787 additions and 1723 deletions

View File

@@ -26,6 +26,7 @@ import { toast } from "react-toastify";
import { useProxy } from "valtio/utils";
function EditKontakDaruratKeamanan() {
const [isLoading, setIsLoading] = useState(true);
const router = useRouter();
const kontakState = useProxy(kontakDarurat.kontakDaruratKeamananState);
const params = useParams();
@@ -37,29 +38,31 @@ function EditKontakDaruratKeamanan() {
// Load data
useEffect(() => {
kontakDarurat.kontakDaruratItem.findMany.load();
const loadKontakDarurat = async () => {
const id = params?.id as string;
if (!id) return;
const loadData = async () => {
try {
const data = await kontakState.update.load(id);
if (data) {
setFormData({
name: data.nama || "",
icon: data.icon || "",
kategoriId: data.kategoriId || [],
});
setIsLoading(true);
await kontakDarurat.kontakDaruratItem.findMany.load();
const id = params?.id as string;
if (id) {
const data = await kontakState.update.load(id);
if (data) {
setFormData({
name: data.nama || "",
icon: data.icon || "",
kategoriId: data.kategoriId || [],
});
}
}
} catch (error) {
console.error("Error loading kontak darurat:", error);
toast.error("Gagal memuat data kontak darurat");
console.error("Error loading data:", error);
toast.error("Gagal memuat data");
} finally {
setIsLoading(false);
}
};
loadKontakDarurat();
loadData();
}, [params?.id]);
// Handle submit
const handleSubmit = async () => {
try {
@@ -120,17 +123,20 @@ function EditKontakDaruratKeamanan() {
value={formData.kategoriId}
onChange={(val) => setFormData({ ...formData, kategoriId: val })}
label={<Text fw={"bold"} fz={"sm"}>Kontak Item</Text>}
placeholder='Pilih kontak item'
placeholder={isLoading ? "Memuat data..." : "Pilih kontak item"}
data={
kontakDarurat.kontakDaruratItem.findMany.data?.map((v) => ({
value: v.id, // Make sure this is using the ID
label: v.nama
})) || []
Array.isArray(kontakDarurat.kontakDaruratItem.findMany.data)
? kontakDarurat.kontakDaruratItem.findMany.data.map((v) => ({
value: v.id,
label: v.nama
}))
: []
}
clearable
searchable
required
error={!formData.kategoriId.length ? "Pilih minimal satu kategori" : undefined}
disabled={isLoading}
/>
<Box>

View File

@@ -148,12 +148,16 @@ function EditLaporanPublik() {
required
/>
<TextInput
value={formData.kronologi}
onChange={(e) => setFormData({ ...formData, kronologi: e.target.value })}
label={<Text fw="bold" fz="sm">Kronologi Laporan Publik</Text>}
placeholder="Masukkan kronologi laporan publik"
/>
<Box>
<Text fw="bold" fz="sm" mb={6}>Kronologi Laporan Publik</Text>
<EditEditor
value={formData.kronologi}
onChange={(htmlContent) => {
setFormData((prev) => ({ ...prev, kronologi: htmlContent }));
stateLaporan.edit.form.kronologi = htmlContent;
}}
/>
</Box>
<Box>
<Text fw="bold" fz="sm" mb={6}>Penanganan Laporan Publik</Text>