fix : error surat

This commit is contained in:
2026-01-15 11:53:10 +08:00
parent 57e4f34eb6
commit 3da163ea1d
3 changed files with 57 additions and 19 deletions

View File

@@ -23,7 +23,7 @@ export default function ModalSurat({
surat, surat,
}: { }: {
open: boolean; open: boolean;
onClose: (val: any) => void; onClose: (val: { success: boolean, data: string }) => void;
surat: string; surat: string;
}) { }) {
const A4Style = { const A4Style = {
@@ -35,7 +35,7 @@ export default function ModalSurat({
fontSize: "14px", fontSize: "14px",
fontFamily: "Times New Roman", fontFamily: "Times New Roman",
}; };
const [uploading, setUploading] = useState<{ text: "Menyiapkan" | "Mengupload" | "Selesai", value: number }>({ text: "Menyiapkan", value: 10 }) const [uploading, setUploading] = useState<{ text: "Menyiapkan" | "Mengupload" | "Selesai" | "Gagal", value: number }>({ text: "Menyiapkan", value: 10 })
const hiddenRef = useRef<any>(null); const hiddenRef = useRef<any>(null);
const { data, mutate, isLoading } = useSWR("surat", () => const { data, mutate, isLoading } = useSWR("surat", () =>
apiFetch.api.surat.detail.get({ apiFetch.api.surat.detail.get({
@@ -45,13 +45,17 @@ export default function ModalSurat({
}), }),
); );
console.log('surat', surat)
useShallowEffect(() => { useShallowEffect(() => {
mutate(); mutate();
}, []); }, []);
const uploadPdf = async () => { const uploadPdf = async () => {
try { try {
console.log('upload function' + data)
if (data && data.data && data.data.surat && (data.data.surat.file == "" || data.data.surat.file == null)) { if (data && data.data && data.data.surat && (data.data.surat.file == "" || data.data.surat.file == null)) {
console.log('upload if')
setUploading({ text: "Mengupload", value: 75 }); setUploading({ text: "Mengupload", value: 75 });
const element = hiddenRef.current; const element = hiddenRef.current;
const canvas = await html2canvas(element, { const canvas = await html2canvas(element, {
@@ -95,10 +99,20 @@ export default function ModalSurat({
filename: resImg.data?.filename!, filename: resImg.data?.filename!,
}); });
setUploading({ text: "Selesai", value: 100 }); if (resUpdate?.data?.success) {
setTimeout(() => { setUploading({ text: "Selesai", value: 100 });
onClose(resUpdate.data?.link); setTimeout(() => {
}, 1000) onClose({ success: true, data: resUpdate.data?.link });
}, 1000)
} else {
setUploading({ text: "Gagal", value: 100 });
setTimeout(() => {
onClose({ success: false, data: "" });
}, 1000)
}
console.log('upload else')
} }
} catch (error) { } catch (error) {
@@ -107,8 +121,11 @@ export default function ModalSurat({
} }
useShallowEffect(() => { useShallowEffect(() => {
console.log('jalan')
if (open) { if (open) {
console.log('open')
setTimeout(() => { setTimeout(() => {
console.log('upload-timeout')
uploadPdf(); uploadPdf();
}, 5000); }, 5000);
} }

View File

@@ -128,6 +128,8 @@ function DetailDataPengajuan({
const [loadingUpdate, setLoadingUpdate] = useState(false) const [loadingUpdate, setLoadingUpdate] = useState(false)
const [loadingFS, setLoadingFS] = useState({ value: false, text: "" }) const [loadingFS, setLoadingFS] = useState({ value: false, text: "" })
console.log('data nya', data)
useEffect(() => { useEffect(() => {
async function fetchHost() { async function fetchHost() {
const { data } = await apiFetch.api.user.find.get(); const { data } = await apiFetch.api.user.find.get();
@@ -460,12 +462,14 @@ function DetailDataPengajuan({
)} )}
</Stack> </Stack>
</Modal> </Modal>
{/* MODAL PREVIEW SURAT */}
{data?.status == "selesai" && !data?.fileSurat && ( {data?.status == "selesai" && !data?.fileSurat && (
<ModalSurat <ModalSurat
open={openedPreview} open={openedPreview}
onClose={(val) => { onClose={(val) => {
setOpenedPreview(false) setOpenedPreview(false)
setUploading({ ok: true, file: val }) setUploading({ ok: val.success, file: val.data })
}} }}
surat={data?.idSurat} surat={data?.idSurat}
/> />
@@ -637,18 +641,31 @@ function DetailDataPengajuan({
Setujui Setujui
</Button> </Button>
</Group> </Group>
) : data?.status === "selesai" ? ( ) : data?.status === "selesai" ?
<Group justify="center" grow> !data?.fileSurat ?
<Button (
variant="light" <Group justify="center" grow>
onClick={() => { setViewImg({ file: data?.fileSurat, folder: "surat" }) }} <Button
> variant="light"
Surat onClick={() => { setOpenedPreview(true) }}
</Button> >
</Group> Kirim Ulang Surat
) : ( </Button>
<></> </Group>
)} )
:
(
<Group justify="center" grow>
<Button
variant="light"
onClick={() => { setViewImg({ file: data?.fileSurat, folder: "surat" }) }}
>
Surat
</Button>
</Group>
) : (
<></>
)}
</Grid.Col> </Grid.Col>
</Grid> </Grid>
</Stack> </Stack>

View File

@@ -269,6 +269,8 @@ const PelayananRoute = new Elysia({
} }
}) })
console.log('data surat', dataSurat, data.id)
const dataSyarat = await prisma.syaratDokumenPelayanan.findMany({ const dataSyarat = await prisma.syaratDokumenPelayanan.findMany({
where: { where: {
idPengajuanLayanan: data?.id, idPengajuanLayanan: data?.id,
@@ -400,6 +402,8 @@ const PelayananRoute = new Elysia({
dataText: dataTextFix, dataText: dataTextFix,
} }
console.log('data fix', datafix)
return datafix return datafix
}, { }, {
query: t.Object({ query: t.Object({