upd: dashboard admin

Deskripsi:
- view file pada detail pengaduan
- view file pada detail pelayanan surat
- close modal file jika error

No Issues
This commit is contained in:
2025-11-28 16:04:07 +08:00
parent cd7e602254
commit 075cb12417
7 changed files with 67 additions and 29 deletions

View File

@@ -1,3 +1,4 @@
import ModalFile from "@/components/ModalFile";
import ModalSurat from "@/components/ModalSurat";
import notification from "@/components/notificationGlobal";
import apiFetch from "@/lib/apiFetch";
@@ -77,7 +78,9 @@ function DetailDataPengajuan({ data, syaratDokumen, dataText, onAction }: { data
const [host, setHost] = useState<User | null>(null);
const [noSurat, setNoSurat] = useState("");
const [openedPreview, setOpenedPreview] = useState(false);
const [openedPreviewFile, setOpenedPreviewFile] = useState(false);
const [permissions, setPermissions] = useState<JsonValue[]>([]);
const [viewImg, setViewImg] = useState("");
useEffect(() => {
async function fetchHost() {
@@ -128,8 +131,23 @@ function DetailDataPengajuan({ data, syaratDokumen, dataText, onAction }: { data
}
}
useShallowEffect(() => {
if (viewImg) {
setOpenedPreviewFile(true);
}
}, [viewImg]);
return (
<>
<ModalFile
open={openedPreviewFile && !_.isEmpty(viewImg)}
onClose={() => {
console.log('close')
setOpenedPreviewFile(false)
}}
folder="syarat-dokumen"
fileName={viewImg}
/>
{/* MODAL KONFIRMASI */}
<Modal
@@ -246,7 +264,7 @@ function DetailDataPengajuan({ data, syaratDokumen, dataText, onAction }: { data
>
{syaratDokumen?.map((v: any) => (
<List.Item key={v.id}>
<Anchor href="https://mantine.dev/" target="_blank">
<Anchor onClick={() => { setViewImg(v.value) }}>
{v.jenis}
</Anchor>
</List.Item>

View File

@@ -1,3 +1,4 @@
import ModalFile from "@/components/ModalFile";
import notification from "@/components/notificationGlobal";
import apiFetch from "@/lib/apiFetch";
import {
@@ -10,13 +11,12 @@ import {
Flex,
Grid,
Group,
Image,
Modal,
Stack,
Table,
Text,
Textarea,
Title,
Title
} from "@mantine/core";
import { useDisclosure, useShallowEffect } from "@mantine/hooks";
import {
@@ -73,9 +73,7 @@ export default function DetailPengaduanPage() {
function DetailDataPengaduan({ data, onAction }: { data: any, onAction: () => void }) {
const [opened, { open, close }] = useDisclosure(false);
const [catModal, setCatModal] = useState<"tolak" | "terima">("tolak");
const [imageSrc, setImageSrc] = useState<string | null>(null);
const [openedModalImage, { open: openModalImage, close: closeModalImage }] =
useDisclosure(false);
const [openedPreview, setOpenedPreview] = useState(false);
const [keterangan, setKeterangan] = useState("");
const [host, setHost] = useState<User | null>(null);
const [permissions, setPermissions] = useState<JsonValue[]>([]);
@@ -173,14 +171,12 @@ function DetailDataPengaduan({ data, onAction }: { data: any, onAction: () => vo
{/* MODAL GAMBAR */}
<Modal
opened={openedModalImage}
onClose={closeModalImage}
title="Gambar Pengaduan"
overlayProps={{ backgroundOpacity: 0.55, blur: 3 }}
>
<Image src={imageSrc!} />
</Modal>
<ModalFile
open={openedPreview && !_.isEmpty(data?.image)}
onClose={() => setOpenedPreview(false)}
folder="pengaduan"
fileName={data?.image}
/>
<Card
radius="md"
@@ -266,7 +262,7 @@ function DetailDataPengaduan({ data, onAction }: { data: any, onAction: () => vo
{
data?.image != null && data?.image != ""
?
<Anchor href="#" onClick={() => { }}>
<Anchor href="#" onClick={() => { setOpenedPreview(true) }}>
Lihat Gambar
</Anchor>
: