upd: notif warga

Deskripsi:
- tolak pengaduan
- terima pengaduan
- kerjakan pengaduan
- pengaduan selesai

NO Issues
This commit is contained in:
2026-01-02 14:52:00 +08:00
parent 3944e1ee82
commit 487395bdb3
17 changed files with 958 additions and 766 deletions

View File

@@ -13,7 +13,7 @@ import {
Table,
Text,
Title,
Tooltip
Tooltip,
} from "@mantine/core";
import { useDisclosure, useShallowEffect } from "@mantine/hooks";
import { IconEdit, IconEye, IconPlus, IconTrash } from "@tabler/icons-react";
@@ -190,7 +190,10 @@ export default function KategoriPelayananSurat({
function handleAddSyarat() {
setDataChoose({
...dataChoose,
syaratDokumen: [...dataChoose.syaratDokumen, { key: "", name: "", desc: "" }],
syaratDokumen: [
...dataChoose.syaratDokumen,
{ key: "", name: "", desc: "" },
],
});
}

View File

@@ -1,33 +1,27 @@
import {
Button,
Center,
Group,
Stack,
Text,
Title
} from "@mantine/core"
import { IconSearch } from "@tabler/icons-react"
import { Button, Center, Group, Stack, Text, Title } from "@mantine/core";
import { IconSearch } from "@tabler/icons-react";
export function DataNotFound({
onRetry,
backTo
onRetry,
backTo,
}: {
onRetry?: () => void
backTo?: () => void
onRetry?: () => void;
backTo?: () => void;
}) {
return (
<Center mih={320}>
<Stack align="center" gap="sm">
<IconSearch size={64} opacity={0.5} />
return (
<Center mih={320}>
<Stack align="center" gap="sm">
<IconSearch size={64} opacity={0.5} />
<Title order={4}>Data Pengajuan Tidak Ditemukan</Title>
<Title order={4}>Data Pengajuan Tidak Ditemukan</Title>
<Text size="sm" c="dimmed" ta="center" maw={380}>
Kami tidak dapat menemukan data pengajuan dengan nomor pengajuan yg diinputkan. Silakan periksa kembali data Anda.
</Text>
<Text size="sm" c="dimmed" ta="center" maw={380}>
Kami tidak dapat menemukan data pengajuan dengan nomor pengajuan yg
diinputkan. Silakan periksa kembali data Anda.
</Text>
<Group mt="md">
{/* {onRetry && (
<Group mt="md">
{/* {onRetry && (
<Button
variant="light"
leftSection={<IconSearch size={16} />}
@@ -37,15 +31,15 @@ export function DataNotFound({
</Button>
)} */}
<Button
variant="outline"
// leftSection={<IconArrowLeft size={16} />}
onClick={backTo}
>
Cari Kembali
</Button>
</Group>
</Stack>
</Center>
)
<Button
variant="outline"
// leftSection={<IconArrowLeft size={16} />}
onClick={backTo}
>
Cari Kembali
</Button>
</Group>
</Stack>
</Center>
);
}

View File

@@ -4,13 +4,13 @@ import { IconCheck } from "@tabler/icons-react";
type SuccessPengajuanProps = {
noPengajuan: string;
onClose?: () => void;
category?: 'create' | 'update';
category?: "create" | "update";
};
export default function SuccessPengajuan({
noPengajuan,
onClose,
category
category,
}: SuccessPengajuanProps) {
return (
<Center h="100vh">
@@ -19,11 +19,15 @@ export default function SuccessPengajuan({
<IconCheck size={56} color="green" />
<Title order={3} ta="center">
{category == 'create' ? 'Pengajuan Berhasil Dibuat' : 'Pengajuan Berhasil Diupdate'}
{category == "create"
? "Pengajuan Berhasil Dibuat"
: "Pengajuan Berhasil Diupdate"}
</Title>
<Text ta="center" size="sm" c="dimmed">
{category == 'create' ? 'Pengajuan layanan surat sudah dibuat dengan nomor:' : 'Pengajuan layanan surat sudah diupdate dengan nomor:'}
{category == "create"
? "Pengajuan layanan surat sudah dibuat dengan nomor:"
: "Pengajuan layanan surat sudah diupdate dengan nomor:"}
</Text>
<Badge size="xl" variant="light" color="green">

View File

@@ -7,7 +7,7 @@ export default function SKBedaBiodataDiri({ data }: { data: any }) {
const getValue = (jenis: string) =>
_.upperFirst(
data.surat.dataText.find((item: any) => item.jenis === jenis)?.value ||
"",
"",
);
const loadImage = async () => {
@@ -146,9 +146,7 @@ export default function SKBedaBiodataDiri({ data }: { data: any }) {
<tr>
<td style={{ width: "160px" }}>1. {getValue("data_dokumen")}</td>
<td style={{ width: "10px" }}></td>
<td>
{/* {getValue("nama")} */}
</td>
<td>{/* {getValue("nama")} */}</td>
</tr>
<tr>
<td>Tertulis pada dokumen A</td>

View File

@@ -7,7 +7,7 @@ export default function SKBelumKawin({ data }: { data: any }) {
const getValue = (jenis: string) =>
_.upperFirst(
data.surat.dataText.find((item: any) => item.jenis === jenis)?.value ||
"",
"",
);
const loadImage = async () => {

View File

@@ -7,7 +7,7 @@ export default function SKKematian({ data }: { data: any }) {
const getValue = (jenis: string) =>
_.upperFirst(
data.surat.dataText.find((item: any) => item.jenis === jenis)?.value ||
"",
"",
);
const loadImage = async () => {

View File

@@ -135,9 +135,7 @@ export default function SKPenghasilan({ data }: { data: any }) {
<tr>
<td style={{ width: "160px" }}>Penghasilan</td>
<td style={{ width: "10px" }}>:</td>
<td>
Rp. {getValue("penghasilan")} per bulan
</td>
<td>Rp. {getValue("penghasilan")} per bulan</td>
</tr>
</tbody>
</table>
@@ -145,8 +143,8 @@ export default function SKPenghasilan({ data }: { data: any }) {
{/* KEPERLUAN */}
<div style={{ marginTop: "20px" }}>
Surat keterangan ini dibuat untuk keperluan:{" "}
<b>{getValue("alasan")}</b>.
Surat keterangan ini dibuat untuk keperluan: <b>{getValue("alasan")}</b>
.
</div>
<div style={{ marginTop: "20px" }}>

View File

@@ -71,7 +71,10 @@ export default function SKTempatUsaha({ data }: { data: any }) {
label="Tempat/Tanggal Lahir"
value={`${getValue("tempat_lahir")}, ${getValue("tanggal_lahir")}`}
/>
<Row label="Alamat Pemilik Usaha" value={getValue("alamat_pemilik")} />
<Row
label="Alamat Pemilik Usaha"
value={getValue("alamat_pemilik")}
/>
<Row label="Nomor KTP" value={getValue("nik")} />
</div>
@@ -86,14 +89,8 @@ export default function SKTempatUsaha({ data }: { data: any }) {
<Row label="Nama Usaha" value={getValue("nama_usaha")} />
<Row label="Bidang Usaha" value={getValue("bidang_usaha")} />
<Row label="Alamat Usaha" value={getValue("alamat_usaha")} />
<Row
label="Status Tempat Usaha"
value={getValue("status_tempat")}
/>
<Row
label="Luas Tempat Usaha"
value={getValue("luas_usaha")}
/>
<Row label="Status Tempat Usaha" value={getValue("status_tempat")} />
<Row label="Luas Tempat Usaha" value={getValue("luas_usaha")} />
<Row label="Jumlah Karyawan" value={getValue("jumlah_karyawan")} />
</div>

View File

@@ -7,7 +7,7 @@ export default function SKUsaha({ data }: { data: any }) {
const getValue = (jenis: string) =>
_.upperFirst(
data.surat.dataText.find((item: any) => item.jenis === jenis)?.value ||
"",
"",
);
const loadImage = async () => {

View File

@@ -98,7 +98,9 @@ export default function SKYatim({ data }: { data: any }) {
</tr>
<tr>
<td>Tempat/Tanggal Lahir</td>
<td>: {`${getValue("tempat_lahir")}, ${getValue("tanggal_lahir")}`}</td>
<td>
: {`${getValue("tempat_lahir")}, ${getValue("tanggal_lahir")}`}
</td>
</tr>
<tr>
<td>Jenis Kelamin</td>