From 3f5d607e83ccd0c3cdfe89422f6c541a161372f5 Mon Sep 17 00:00:00 2001 From: nico Date: Mon, 28 Apr 2025 10:21:59 +0800 Subject: [PATCH] Sudah Dibuatkan Inputan Data Di Data Kesehatan Warga Fasilitas Kesehatan --- prisma/schema.prisma | 76 ++++++- .../(dashboard)/_state/{ => desa}/berita.ts | 0 .../_state/{ => desa}/pengumuman.ts | 0 .../{kesehatan.ts => fasilitasKesehatan.ts} | 4 +- .../admin/(dashboard)/desa/berita/page.tsx | 2 +- .../(dashboard)/desa/pengumuman/page.tsx | 2 +- .../_com/buttonSubmit.tsx | 12 - .../_com/kesehatanEditor.tsx | 93 ++++++++ .../_ui/artikel_kesehatan/page.tsx | 2 +- .../dokterdantenagamedis/listData.tsx | 7 +- .../dokterdantenagamedis/page.tsx | 11 +- .../fasilitas_pendukung/listData.tsx | 4 +- .../fasilitas_pendukung/page.tsx | 16 +- .../informasi_umum/page.tsx | 17 +- .../layanan_unggulan/layananUnggulanList.tsx | 24 -- .../layanan_unggulan/page.tsx | 13 +- .../_ui/fasilitas_kesehatan/page.tsx | 214 +++++++++++++++--- .../prosedurpendaftaran/listData.tsx | 4 +- .../prosedurpendaftaran/page.tsx | 15 +- .../tarifdanlayanan/listData.tsx | 4 +- .../tarifdanlayanan/page.tsx | 12 +- .../_ui/grafik_hasil_kepuasan/page.tsx | 12 + .../deskripsi_kegiatan/page.tsx | 13 ++ .../dokumen_yang_diperlukan/page.tsx | 15 ++ .../informasi_kegiatan/page.tsx | 27 +++ .../layanan_yang_tersedia/page.tsx | 13 ++ .../_ui/jadwal_kegiatan/page.tsx | 22 +- .../_ui/jadwal_kegiatan/pendaftaran/page.tsx | 48 ++++ .../syarat_dan_ketentuan/page.tsx | 14 ++ .../page.tsx | 12 + .../kesehatan/data-kesehatan-warga/page.tsx | 47 +++- src/app/admin/layout.tsx | 5 +- 32 files changed, 610 insertions(+), 150 deletions(-) rename src/app/admin/(dashboard)/_state/{ => desa}/berita.ts (100%) rename src/app/admin/(dashboard)/_state/{ => desa}/pengumuman.ts (100%) rename src/app/admin/(dashboard)/_state/kesehatan/{kesehatan.ts => fasilitasKesehatan.ts} (99%) delete mode 100644 src/app/admin/(dashboard)/kesehatan/data-kesehatan-warga/_com/buttonSubmit.tsx create mode 100644 src/app/admin/(dashboard)/kesehatan/data-kesehatan-warga/_com/kesehatanEditor.tsx delete mode 100644 src/app/admin/(dashboard)/kesehatan/data-kesehatan-warga/_ui/fasilitas_kesehatan/layanan_unggulan/layananUnggulanList.tsx create mode 100644 src/app/admin/(dashboard)/kesehatan/data-kesehatan-warga/_ui/grafik_hasil_kepuasan/page.tsx create mode 100644 src/app/admin/(dashboard)/kesehatan/data-kesehatan-warga/_ui/jadwal_kegiatan/deskripsi_kegiatan/page.tsx create mode 100644 src/app/admin/(dashboard)/kesehatan/data-kesehatan-warga/_ui/jadwal_kegiatan/dokumen_yang_diperlukan/page.tsx create mode 100644 src/app/admin/(dashboard)/kesehatan/data-kesehatan-warga/_ui/jadwal_kegiatan/informasi_kegiatan/page.tsx create mode 100644 src/app/admin/(dashboard)/kesehatan/data-kesehatan-warga/_ui/jadwal_kegiatan/layanan_yang_tersedia/page.tsx create mode 100644 src/app/admin/(dashboard)/kesehatan/data-kesehatan-warga/_ui/jadwal_kegiatan/pendaftaran/page.tsx create mode 100644 src/app/admin/(dashboard)/kesehatan/data-kesehatan-warga/_ui/jadwal_kegiatan/syarat_dan_ketentuan/page.tsx create mode 100644 src/app/admin/(dashboard)/kesehatan/data-kesehatan-warga/_ui/persentase_data_kelahiran_kematian/page.tsx diff --git a/prisma/schema.prisma b/prisma/schema.prisma index cc61725e..28777abc 100644 --- a/prisma/schema.prisma +++ b/prisma/schema.prisma @@ -142,8 +142,10 @@ model GalleryVideo { videosId String? @unique videosGalleryVideo Videos? @relation(fields: [videosId], references: [id]) } + // ========================================= MENU KESEHATAN ========================================= // // ========================================= DATA KESEHATAN WARGA ========================================= // + // ========================================= FASILITAS KESEHATAN ========================================= // model DataKematian_Kelahiran { id Int @id @default(autoincrement()) @@ -233,4 +235,76 @@ model TarifDanLayanan{ deletedAt DateTime @default(now()) isActive Boolean @default(true) FasilitasKesehatan FasilitasKesehatan[] -} \ No newline at end of file +} + +// ========================================= JADWAL KEGIATAN ========================================= // +model JadwalKegiatan{ + id String @id @default(cuid()) + content String + createdAt DateTime @default(now()) + updatedAt DateTime @updatedAt + deletedAt DateTime @default(now()) + isActive Boolean @default(true) +} + +model InformasiJadwalKegiatan{ + id String @id @default(cuid()) + name String + tanggal String + waktu String + lokasi String + createdAt DateTime @default(now()) + updatedAt DateTime @updatedAt + deletedAt DateTime @default(now()) + isActive Boolean @default(true) +} + +model DeskripsiJadwalKegiatan{ + id String @id @default(cuid()) + deskripsi String + createdAt DateTime @default(now()) + updatedAt DateTime @updatedAt + deletedAt DateTime @default(now()) + isActive Boolean @default(true) +} + +model LayananJadwalKegiatan{ + id String @id @default(cuid()) + content String + createdAt DateTime @default(now()) + updatedAt DateTime @updatedAt + deletedAt DateTime @default(now()) + isActive Boolean @default(true) +} + +model SyaratKetentuanJadwalKegiatan{ + id String @id @default(cuid()) + content String + createdAt DateTime @default(now()) + updatedAt DateTime @updatedAt + deletedAt DateTime @default(now()) + isActive Boolean @default(true) +} + +model DokumenJadwalKegiatan{ + id String @id @default(cuid()) + content String + createdAt DateTime @default(now()) + updatedAt DateTime @updatedAt + deletedAt DateTime @default(now()) + isActive Boolean @default(true) +} + +model PendaftaranJadwalKegiatan{ + id String @id @default(cuid()) + name String + tanggal String + namaOrangtua String + nomor String + alamat String + catatan String + createdAt DateTime @default(now()) + updatedAt DateTime @updatedAt + deletedAt DateTime @default(now()) + isActive Boolean @default(true) +} diff --git a/src/app/admin/(dashboard)/_state/berita.ts b/src/app/admin/(dashboard)/_state/desa/berita.ts similarity index 100% rename from src/app/admin/(dashboard)/_state/berita.ts rename to src/app/admin/(dashboard)/_state/desa/berita.ts diff --git a/src/app/admin/(dashboard)/_state/pengumuman.ts b/src/app/admin/(dashboard)/_state/desa/pengumuman.ts similarity index 100% rename from src/app/admin/(dashboard)/_state/pengumuman.ts rename to src/app/admin/(dashboard)/_state/desa/pengumuman.ts diff --git a/src/app/admin/(dashboard)/_state/kesehatan/kesehatan.ts b/src/app/admin/(dashboard)/_state/kesehatan/fasilitasKesehatan.ts similarity index 99% rename from src/app/admin/(dashboard)/_state/kesehatan/kesehatan.ts rename to src/app/admin/(dashboard)/_state/kesehatan/fasilitasKesehatan.ts index 12e43509..1a195d6d 100644 --- a/src/app/admin/(dashboard)/_state/kesehatan/kesehatan.ts +++ b/src/app/admin/(dashboard)/_state/kesehatan/fasilitasKesehatan.ts @@ -321,7 +321,7 @@ const prosedurpendaftaran = proxy({ }, }) -const stateKesehatan = proxy({ +const stateFasilitasKesehatan = proxy({ informasiumum, layananunggulan, dokterdantenagamedis, @@ -330,4 +330,4 @@ const stateKesehatan = proxy({ prosedurpendaftaran }) -export default stateKesehatan +export default stateFasilitasKesehatan diff --git a/src/app/admin/(dashboard)/desa/berita/page.tsx b/src/app/admin/(dashboard)/desa/berita/page.tsx index 023b5277..26c3df72 100644 --- a/src/app/admin/(dashboard)/desa/berita/page.tsx +++ b/src/app/admin/(dashboard)/desa/berita/page.tsx @@ -4,7 +4,7 @@ import { useShallowEffect } from '@mantine/hooks'; import { Prisma } from '@prisma/client'; import { IconImageInPicture } from '@tabler/icons-react'; import { useProxy } from 'valtio/utils'; -import stateDashboardBerita from '../../_state/berita'; +import stateDashboardBerita from '../../_state/desa/berita'; import { BeritaEditor } from './_com/BeritaEditor'; function Page() { diff --git a/src/app/admin/(dashboard)/desa/pengumuman/page.tsx b/src/app/admin/(dashboard)/desa/pengumuman/page.tsx index 006fbe85..660fe2d9 100644 --- a/src/app/admin/(dashboard)/desa/pengumuman/page.tsx +++ b/src/app/admin/(dashboard)/desa/pengumuman/page.tsx @@ -2,7 +2,7 @@ import { Group, Select, SimpleGrid, Skeleton, Stack, Text, TextInput } from '@mantine/core'; import React from 'react'; import { useProxy } from 'valtio/utils'; -import stateDesaPengumuman from '../../_state/pengumuman'; +import stateDesaPengumuman from '../../_state/desa/pengumuman'; import { useShallowEffect } from '@mantine/hooks'; import { Prisma } from '@prisma/client'; import { BeritaEditor } from '../berita/_com/BeritaEditor'; diff --git a/src/app/admin/(dashboard)/kesehatan/data-kesehatan-warga/_com/buttonSubmit.tsx b/src/app/admin/(dashboard)/kesehatan/data-kesehatan-warga/_com/buttonSubmit.tsx deleted file mode 100644 index a68af3b2..00000000 --- a/src/app/admin/(dashboard)/kesehatan/data-kesehatan-warga/_com/buttonSubmit.tsx +++ /dev/null @@ -1,12 +0,0 @@ -import { Button } from '@mantine/core'; -import React from 'react'; - -function ButtonSubmit() { - return ( - <> - - - ); -} - -export default ButtonSubmit; diff --git a/src/app/admin/(dashboard)/kesehatan/data-kesehatan-warga/_com/kesehatanEditor.tsx b/src/app/admin/(dashboard)/kesehatan/data-kesehatan-warga/_com/kesehatanEditor.tsx new file mode 100644 index 00000000..20d11099 --- /dev/null +++ b/src/app/admin/(dashboard)/kesehatan/data-kesehatan-warga/_com/kesehatanEditor.tsx @@ -0,0 +1,93 @@ +'use client' +import { Button, Stack } from '@mantine/core'; +import { Link, RichTextEditor } from '@mantine/tiptap'; +import Highlight from '@tiptap/extension-highlight'; +import SubScript from '@tiptap/extension-subscript'; +import Superscript from '@tiptap/extension-superscript'; +import TextAlign from '@tiptap/extension-text-align'; +import Underline from '@tiptap/extension-underline'; +import { useEditor } from '@tiptap/react'; +import StarterKit from '@tiptap/starter-kit'; + +const content = + '

Welcome to Mantine rich text editor

RichTextEditor component focuses on usability and is designed to be as simple as possible to bring a familiar editing experience to regular users. RichTextEditor is based on Tiptap.dev and supports all of its features:

'; + +export function KesehatanEditor({ onSubmit, onChange, showSubmit = true }: { + onSubmit?: (val: string) => void, + onChange: (val: string) => void, + showSubmit?: boolean }) { + const editor = useEditor({ + extensions: [ + StarterKit, + Underline, + Link, + Superscript, + SubScript, + Highlight, + TextAlign.configure({ types: ['heading', 'paragraph'] }), + ], + content, + onUpdate : ({editor}) => { + onChange(editor.getHTML()) + } + }); + + return ( + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + {showSubmit && ( + + )} + + ); +} \ No newline at end of file diff --git a/src/app/admin/(dashboard)/kesehatan/data-kesehatan-warga/_ui/artikel_kesehatan/page.tsx b/src/app/admin/(dashboard)/kesehatan/data-kesehatan-warga/_ui/artikel_kesehatan/page.tsx index 5500822e..be352d46 100644 --- a/src/app/admin/(dashboard)/kesehatan/data-kesehatan-warga/_ui/artikel_kesehatan/page.tsx +++ b/src/app/admin/(dashboard)/kesehatan/data-kesehatan-warga/_ui/artikel_kesehatan/page.tsx @@ -3,7 +3,7 @@ import React from 'react'; function ArtikelKesehatan() { return ( - + diff --git a/src/app/admin/(dashboard)/kesehatan/data-kesehatan-warga/_ui/fasilitas_kesehatan/dokterdantenagamedis/listData.tsx b/src/app/admin/(dashboard)/kesehatan/data-kesehatan-warga/_ui/fasilitas_kesehatan/dokterdantenagamedis/listData.tsx index 4b174dfe..d97b21f9 100644 --- a/src/app/admin/(dashboard)/kesehatan/data-kesehatan-warga/_ui/fasilitas_kesehatan/dokterdantenagamedis/listData.tsx +++ b/src/app/admin/(dashboard)/kesehatan/data-kesehatan-warga/_ui/fasilitas_kesehatan/dokterdantenagamedis/listData.tsx @@ -1,4 +1,4 @@ -import stateKesehatan from '@/app/admin/(dashboard)/_state/kesehatan/kesehatan'; +import stateFasilitasKesehatan from '@/app/admin/(dashboard)/_state/kesehatan/fasilitasKesehatan'; import colors from '@/con/colors'; import { Center, Stack, Table, TableTbody, TableTd, TableTh, TableThead, TableTr, Text } from '@mantine/core'; import { useShallowEffect } from '@mantine/hooks'; @@ -6,7 +6,7 @@ import _ from 'lodash'; import { useProxy } from 'valtio/utils'; function DokterdanTenagaMedisList() { - const kesehatanState = useProxy(stateKesehatan.dokterdantenagamedis); + const kesehatanState = useProxy(stateFasilitasKesehatan.dokterdantenagamedis); useShallowEffect(() => { kesehatanState.findMany.load(); @@ -52,8 +52,7 @@ function DokterdanTenagaMedisList() { return ( - Dokter & Tenaga Medis @@ -30,10 +29,6 @@ function DokterDanTenagaMedis() { dokterdantenagamedisState.create.form.jadwal = val.target.value }} /> - ); } diff --git a/src/app/admin/(dashboard)/kesehatan/data-kesehatan-warga/_ui/fasilitas_kesehatan/fasilitas_pendukung/listData.tsx b/src/app/admin/(dashboard)/kesehatan/data-kesehatan-warga/_ui/fasilitas_kesehatan/fasilitas_pendukung/listData.tsx index 991f6421..e0d5946b 100644 --- a/src/app/admin/(dashboard)/kesehatan/data-kesehatan-warga/_ui/fasilitas_kesehatan/fasilitas_pendukung/listData.tsx +++ b/src/app/admin/(dashboard)/kesehatan/data-kesehatan-warga/_ui/fasilitas_kesehatan/fasilitas_pendukung/listData.tsx @@ -1,11 +1,11 @@ import { Box, Stack, Text } from '@mantine/core'; import React from 'react'; import { useProxy } from 'valtio/utils'; -import stateKesehatan from '@/app/admin/(dashboard)/_state/kesehatan/kesehatan'; +import stateFasilitasKesehatan from '@/app/admin/(dashboard)/_state/kesehatan/fasilitasKesehatan'; import { useShallowEffect } from '@mantine/hooks'; function FasilitasPendukungList() { - const fasilitaspendukungState = useProxy(stateKesehatan.fasilitaspendukung) + const fasilitaspendukungState = useProxy(stateFasilitasKesehatan.fasilitaspendukung) useShallowEffect(() => { fasilitaspendukungState.findMany.load() }, []) diff --git a/src/app/admin/(dashboard)/kesehatan/data-kesehatan-warga/_ui/fasilitas_kesehatan/fasilitas_pendukung/page.tsx b/src/app/admin/(dashboard)/kesehatan/data-kesehatan-warga/_ui/fasilitas_kesehatan/fasilitas_pendukung/page.tsx index 8a072e0d..8ae321a5 100644 --- a/src/app/admin/(dashboard)/kesehatan/data-kesehatan-warga/_ui/fasilitas_kesehatan/fasilitas_pendukung/page.tsx +++ b/src/app/admin/(dashboard)/kesehatan/data-kesehatan-warga/_ui/fasilitas_kesehatan/fasilitas_pendukung/page.tsx @@ -1,17 +1,17 @@ -import stateKesehatan from '@/app/admin/(dashboard)/_state/kesehatan/kesehatan'; -import { BeritaEditor } from '@/app/admin/(dashboard)/desa/berita/_com/BeritaEditor'; +import stateFasilitasKesehatan from '@/app/admin/(dashboard)/_state/kesehatan/fasilitasKesehatan'; import { Box, Text } from '@mantine/core'; -import React from 'react'; import { useProxy } from 'valtio/utils'; +import { KesehatanEditor } from '../../../_com/kesehatanEditor'; function FasilitasPendukung() { - const fasilitaspendukungState = useProxy(stateKesehatan.fasilitaspendukung) + const fasilitaspendukungState = useProxy(stateFasilitasKesehatan.fasilitaspendukung) return Fasilitas Pendukung - { - fasilitaspendukungState.create.form.content = val - fasilitaspendukungState.create.create() - }}/> + { + fasilitaspendukungState.create.form.content = val; + }} /> } diff --git a/src/app/admin/(dashboard)/kesehatan/data-kesehatan-warga/_ui/fasilitas_kesehatan/informasi_umum/page.tsx b/src/app/admin/(dashboard)/kesehatan/data-kesehatan-warga/_ui/fasilitas_kesehatan/informasi_umum/page.tsx index 02a69e6f..6903dec7 100644 --- a/src/app/admin/(dashboard)/kesehatan/data-kesehatan-warga/_ui/fasilitas_kesehatan/informasi_umum/page.tsx +++ b/src/app/admin/(dashboard)/kesehatan/data-kesehatan-warga/_ui/fasilitas_kesehatan/informasi_umum/page.tsx @@ -1,25 +1,24 @@ 'use client' -import stateKesehatan from '@/app/admin/(dashboard)/_state/kesehatan/kesehatan'; -import { Box, Button, Text, TextInput } from '@mantine/core'; -import React from 'react'; +import stateFasilitasKesehatan from '@/app/admin/(dashboard)/_state/kesehatan/fasilitasKesehatan'; +import { Box, Text, TextInput } from '@mantine/core'; import { useProxy } from 'valtio/utils'; function InformasiUmum() { - const infromasiState = useProxy(stateKesehatan) + const infromasiState = useProxy(stateFasilitasKesehatan.informasiumum) return Informasi Umum { - infromasiState.informasiumum.create.form.fasilitas = val.target.value + infromasiState.create.form.fasilitas = val.target.value }} /> { - infromasiState.informasiumum.create.form.alamat = val.target.value + infromasiState.create.form.alamat = val.target.value }} /> { - infromasiState.informasiumum.create.form.jamOperasional = val.target.value + infromasiState.create.form.jamOperasional = val.target.value }} /> - } diff --git a/src/app/admin/(dashboard)/kesehatan/data-kesehatan-warga/_ui/fasilitas_kesehatan/layanan_unggulan/layananUnggulanList.tsx b/src/app/admin/(dashboard)/kesehatan/data-kesehatan-warga/_ui/fasilitas_kesehatan/layanan_unggulan/layananUnggulanList.tsx deleted file mode 100644 index e40d772f..00000000 --- a/src/app/admin/(dashboard)/kesehatan/data-kesehatan-warga/_ui/fasilitas_kesehatan/layanan_unggulan/layananUnggulanList.tsx +++ /dev/null @@ -1,24 +0,0 @@ -import stateKesehatan from '@/app/admin/(dashboard)/_state/kesehatan/kesehatan'; -import { Box, Skeleton, Stack, Text } from '@mantine/core'; -import { useShallowEffect } from '@mantine/hooks'; -import { useProxy } from 'valtio/utils'; - -function LayananUnggulanList() { - const layananunggulanstate = useProxy(stateKesehatan.layananunggulan) - useShallowEffect(() => { - layananunggulanstate.findMany.load() - }, []) - - if (!layananunggulanstate.findMany.data) return - {Array.from({ length: 10 }).map((v, k) => )} - - return - {layananunggulanstate.findMany.data?.map((item) => ( - - - - ))} - -} - -export default LayananUnggulanList; diff --git a/src/app/admin/(dashboard)/kesehatan/data-kesehatan-warga/_ui/fasilitas_kesehatan/layanan_unggulan/page.tsx b/src/app/admin/(dashboard)/kesehatan/data-kesehatan-warga/_ui/fasilitas_kesehatan/layanan_unggulan/page.tsx index 5f71353c..fc869faf 100644 --- a/src/app/admin/(dashboard)/kesehatan/data-kesehatan-warga/_ui/fasilitas_kesehatan/layanan_unggulan/page.tsx +++ b/src/app/admin/(dashboard)/kesehatan/data-kesehatan-warga/_ui/fasilitas_kesehatan/layanan_unggulan/page.tsx @@ -1,16 +1,17 @@ 'use client' +import stateFasilitasKesehatan from '@/app/admin/(dashboard)/_state/kesehatan/fasilitasKesehatan'; import { Box, Text } from '@mantine/core'; import { useProxy } from 'valtio/utils'; -import stateKesehatan from '@/app/admin/(dashboard)/_state/kesehatan/kesehatan'; -import { BeritaEditor } from '@/app/admin/(dashboard)/desa/berita/_com/BeritaEditor'; +import { KesehatanEditor } from '../../../_com/kesehatanEditor'; function LayananUnggulan() { - const informasiumumState = useProxy(stateKesehatan.layananunggulan) + const informasiumumState = useProxy(stateFasilitasKesehatan.layananunggulan) return Layanan Unggulan - { - informasiumumState.create.form.content = val - informasiumumState.create.create() + { + informasiumumState.create.form.content = val; }} /> ; diff --git a/src/app/admin/(dashboard)/kesehatan/data-kesehatan-warga/_ui/fasilitas_kesehatan/page.tsx b/src/app/admin/(dashboard)/kesehatan/data-kesehatan-warga/_ui/fasilitas_kesehatan/page.tsx index 2940a638..60e38f09 100644 --- a/src/app/admin/(dashboard)/kesehatan/data-kesehatan-warga/_ui/fasilitas_kesehatan/page.tsx +++ b/src/app/admin/(dashboard)/kesehatan/data-kesehatan-warga/_ui/fasilitas_kesehatan/page.tsx @@ -1,28 +1,91 @@ "use client" -import stateKesehatan from '@/app/admin/(dashboard)/_state/kesehatan/kesehatan'; -import { Box, SimpleGrid, Skeleton, Stack, Text, Title } from '@mantine/core'; +import stateFasilitasKesehatan from '@/app/admin/(dashboard)/_state/kesehatan/fasilitasKesehatan'; +import colors from '@/con/colors'; +import { Box, Button, Center, SimpleGrid, Skeleton, Stack, Table, TableTbody, TableTd, TableTh, TableThead, TableTr, Text, Title } from '@mantine/core'; import { useShallowEffect } from '@mantine/hooks'; import { useProxy } from 'valtio/utils'; -import DokterdanTenagaMedisList from './dokterdantenagamedis/listData'; import DokterDanTenagaMedis from './dokterdantenagamedis/page'; -import FasilitasPendukungList from './fasilitas_pendukung/listData'; import FasilitasPendukung from './fasilitas_pendukung/page'; import InformasiUmum from './informasi_umum/page'; -import LayananUnggulanList from './layanan_unggulan/layananUnggulanList'; import LayananUnggulan from './layanan_unggulan/page'; import ProsedurPendaftaran from './prosedurpendaftaran/page'; -import TarifDanLayananList from './tarifdanlayanan/listData'; import TarifDanLayanan from './tarifdanlayanan/page'; -import ListProsedurPendaftaran from './prosedurpendaftaran/listData'; function FasilitasKesehatan() { + const allState = useProxy(stateFasilitasKesehatan) + const submitAllForms = () => { + if (allState.informasiumum.create.form.fasilitas && + allState.informasiumum.create.form.alamat && + allState.informasiumum.create.form.jamOperasional) { + allState.informasiumum.create.create() + } + if (allState.layananunggulan.create.form.content) { + allState.layananunggulan.create.create(); + } + if (allState.dokterdantenagamedis.create.form.name && + allState.dokterdantenagamedis.create.form.specialist && + allState.dokterdantenagamedis.create.form.jadwal) { + allState.dokterdantenagamedis.create.create() + } + + if (allState.fasilitaspendukung.create.form.content) { + allState.fasilitaspendukung.create.create(); + } + + if (allState.tarifdanlayanan.create.form.tarif && + allState.tarifdanlayanan.create.form.layanan) { + allState.tarifdanlayanan.create.create() + } + + if (allState.prosedurpendaftaran.create.form.content) { + allState.prosedurpendaftaran.create.create(); + } + + // refreshListData(); + // resetAllForms(); + } + + // const refreshListData = () => { + // allState.informasiumum.findMany.load(); + // allState.layananunggulan.findMany.load(); + // allState.dokterdantenagamedis.findMany.load(); + // allState.fasilitaspendukung.findMany.load(); + // allState.tarifdanlayanan.findMany.load(); + // allState.prosedurpendaftaran.findMany.load(); + // } + + // const resetAllForms = () => { + // allState.informasiumum.create.form = { + // fasilitas: '', + // alamat: '', + // jamOperasional: '' + // }; + // allState.layananunggulan.create.form = { + // content: '' + // }; + // allState.dokterdantenagamedis.create.form = { + // name: '', + // specialist: '', + // jadwal: '' + // }; + // allState.fasilitaspendukung.create.form = { + // content: '' + // }; + // allState.tarifdanlayanan.create.form = { + // tarif: '', + // layanan: '' + // }; + // allState.prosedurpendaftaran.create.form = { + // content: '' + // }; + // } return ( - + @@ -32,33 +95,23 @@ function FasilitasKesehatan() { {/* Informasi Umum */} {/* Layanan Unggulan */} - + {/* Dokter & Tenaga Medis */} - + {/* Fasilitas Pendukung */} - + {/* Tarif & Layanan */} - + {/* Prosedur Pendaftaran */} - + + - List Fasilitas Kesehatan - Informasi Umum - - Layanan Unggulan - - Dokter & Tenaga Medis - - Fasilitas Pendukung - - Tarif & Layanan - - Prosedur Pendaftaran - + List Fasilitas Kesehatan + @@ -67,24 +120,121 @@ function FasilitasKesehatan() { ); } -function InformasiUmumList(){ - const infromasiState = useProxy(stateKesehatan) +function AllList() { + const allListState = useProxy(stateFasilitasKesehatan) useShallowEffect(() => { - infromasiState.informasiumum.findMany.load() + allListState.informasiumum.findMany.load(); + allListState.layananunggulan.findMany.load(); + allListState.dokterdantenagamedis.findMany.load(); + allListState.fasilitaspendukung.findMany.load(); + allListState.tarifdanlayanan.findMany.load(); + allListState.prosedurpendaftaran.findMany.load(); }, []) - if (!infromasiState.informasiumum.findMany.data) return + if (!allListState.informasiumum.findMany.data + || !allListState.layananunggulan.findMany.data + || !allListState.dokterdantenagamedis.findMany.data + || !allListState.fasilitaspendukung.findMany.data + || !allListState.tarifdanlayanan.findMany.data + || !allListState.prosedurpendaftaran.findMany.data + ) return {Array.from({ length: 10 }).map((v, k) => )} return - {infromasiState.informasiumum.findMany.data?.map((item) => ( + Informasi Umum + {allListState.informasiumum.findMany.data?.map((item) => ( - + {item.fasilitas} {item.alamat} {item.jamOperasional} ))} + + Layanan Unggulan + {allListState.layananunggulan.findMany.data?.map((item) => ( + + + + ))} + + + Dokter & Tenaga Medis + +
+ + + +
Nama
+
+ +
Specialist
+
+ +
Jadwal
+
+
+
+ + {allListState.dokterdantenagamedis.findMany.data?.map((item) => ( + + {item.name} + Specialist {item.specialist} + {item.jadwal} + + ))} + +
+ + Fasilitas Pendukung + {allListState.fasilitaspendukung.findMany.data?.map((item) => ( + + + + ))} + + Tarif & Layanan + + + + + Layanan + + + Tarif + + + + + {allListState.tarifdanlayanan.findMany.data?.map((item) => ( + + {item.layanan} + Rp.{item.tarif} + + ))} + +
+ + Prosedur Pendaftaran + {allListState.prosedurpendaftaran.findMany.data?.map((item) => ( + + + + ))} +
} diff --git a/src/app/admin/(dashboard)/kesehatan/data-kesehatan-warga/_ui/fasilitas_kesehatan/prosedurpendaftaran/listData.tsx b/src/app/admin/(dashboard)/kesehatan/data-kesehatan-warga/_ui/fasilitas_kesehatan/prosedurpendaftaran/listData.tsx index 1529da3c..2d319c96 100644 --- a/src/app/admin/(dashboard)/kesehatan/data-kesehatan-warga/_ui/fasilitas_kesehatan/prosedurpendaftaran/listData.tsx +++ b/src/app/admin/(dashboard)/kesehatan/data-kesehatan-warga/_ui/fasilitas_kesehatan/prosedurpendaftaran/listData.tsx @@ -1,10 +1,10 @@ -import stateKesehatan from '@/app/admin/(dashboard)/_state/kesehatan/kesehatan'; +import stateFasilitasKesehatan from '@/app/admin/(dashboard)/_state/kesehatan/fasilitasKesehatan'; import { Box, Skeleton, Stack, Text } from '@mantine/core'; import { useShallowEffect } from '@mantine/hooks'; import { useProxy } from 'valtio/utils'; function ListProsedurPendaftaran() { - const prosedurpendaftaranState = useProxy(stateKesehatan.prosedurpendaftaran) + const prosedurpendaftaranState = useProxy(stateFasilitasKesehatan.prosedurpendaftaran) useShallowEffect(() => { prosedurpendaftaranState.findMany.load() }, []) diff --git a/src/app/admin/(dashboard)/kesehatan/data-kesehatan-warga/_ui/fasilitas_kesehatan/prosedurpendaftaran/page.tsx b/src/app/admin/(dashboard)/kesehatan/data-kesehatan-warga/_ui/fasilitas_kesehatan/prosedurpendaftaran/page.tsx index bfd54ae9..781cf965 100644 --- a/src/app/admin/(dashboard)/kesehatan/data-kesehatan-warga/_ui/fasilitas_kesehatan/prosedurpendaftaran/page.tsx +++ b/src/app/admin/(dashboard)/kesehatan/data-kesehatan-warga/_ui/fasilitas_kesehatan/prosedurpendaftaran/page.tsx @@ -1,16 +1,17 @@ +import stateFasilitasKesehatan from '@/app/admin/(dashboard)/_state/kesehatan/fasilitasKesehatan'; import { Box, Text } from '@mantine/core'; -import { BeritaEditor } from '@/app/admin/(dashboard)/desa/berita/_com/BeritaEditor'; -import stateKesehatan from '@/app/admin/(dashboard)/_state/kesehatan/kesehatan'; import { useProxy } from 'valtio/utils'; +import { KesehatanEditor } from '../../../_com/kesehatanEditor'; function ProsedurPendaftaran() { - const prosedurpendaftaranState = useProxy(stateKesehatan.prosedurpendaftaran) + const prosedurpendaftaranState = useProxy(stateFasilitasKesehatan.prosedurpendaftaran) return Prosedur Pendaftaran - { - prosedurpendaftaranState.create.form.content = val - prosedurpendaftaranState.create.create() - }} /> + { + prosedurpendaftaranState.create.form.content = val; + }} /> } diff --git a/src/app/admin/(dashboard)/kesehatan/data-kesehatan-warga/_ui/fasilitas_kesehatan/tarifdanlayanan/listData.tsx b/src/app/admin/(dashboard)/kesehatan/data-kesehatan-warga/_ui/fasilitas_kesehatan/tarifdanlayanan/listData.tsx index d1caea22..38d83948 100644 --- a/src/app/admin/(dashboard)/kesehatan/data-kesehatan-warga/_ui/fasilitas_kesehatan/tarifdanlayanan/listData.tsx +++ b/src/app/admin/(dashboard)/kesehatan/data-kesehatan-warga/_ui/fasilitas_kesehatan/tarifdanlayanan/listData.tsx @@ -1,4 +1,4 @@ -import stateKesehatan from '@/app/admin/(dashboard)/_state/kesehatan/kesehatan'; +import stateFasilitasKesehatan from '@/app/admin/(dashboard)/_state/kesehatan/fasilitasKesehatan'; import colors from '@/con/colors'; import { Center, Stack, Table, TableTbody, TableTd, TableTh, TableThead, TableTr, Text } from '@mantine/core'; import { useShallowEffect } from '@mantine/hooks'; @@ -6,7 +6,7 @@ import _ from 'lodash'; import { useProxy } from 'valtio/utils'; function TarifDanLayananList() { - const tarifdanlayanan = useProxy(stateKesehatan.tarifdanlayanan) + const tarifdanlayanan = useProxy(stateFasilitasKesehatan.tarifdanlayanan) useShallowEffect(() => { tarifdanlayanan.findMany.load() }, []) diff --git a/src/app/admin/(dashboard)/kesehatan/data-kesehatan-warga/_ui/fasilitas_kesehatan/tarifdanlayanan/page.tsx b/src/app/admin/(dashboard)/kesehatan/data-kesehatan-warga/_ui/fasilitas_kesehatan/tarifdanlayanan/page.tsx index e70a7f5c..7f3ae8e7 100644 --- a/src/app/admin/(dashboard)/kesehatan/data-kesehatan-warga/_ui/fasilitas_kesehatan/tarifdanlayanan/page.tsx +++ b/src/app/admin/(dashboard)/kesehatan/data-kesehatan-warga/_ui/fasilitas_kesehatan/tarifdanlayanan/page.tsx @@ -1,10 +1,9 @@ -import { Box, Button, Text, TextInput } from '@mantine/core'; -import React from 'react'; +import stateFasilitasKesehatan from '@/app/admin/(dashboard)/_state/kesehatan/fasilitasKesehatan'; +import { Box, Text, TextInput } from '@mantine/core'; import { useProxy } from 'valtio/utils'; -import stateKesehatan from '@/app/admin/(dashboard)/_state/kesehatan/kesehatan'; function TarifDanLayanan() { - const tarifdanlayanan = useProxy(stateKesehatan.tarifdanlayanan) + const tarifdanlayanan = useProxy(stateFasilitasKesehatan.tarifdanlayanan) return Tarif & Layanan - } diff --git a/src/app/admin/(dashboard)/kesehatan/data-kesehatan-warga/_ui/grafik_hasil_kepuasan/page.tsx b/src/app/admin/(dashboard)/kesehatan/data-kesehatan-warga/_ui/grafik_hasil_kepuasan/page.tsx new file mode 100644 index 00000000..f1da5b60 --- /dev/null +++ b/src/app/admin/(dashboard)/kesehatan/data-kesehatan-warga/_ui/grafik_hasil_kepuasan/page.tsx @@ -0,0 +1,12 @@ +import { Stack, Title } from '@mantine/core'; +import React from 'react'; + +function GrafikHasilKepuasan() { + return ( + + Grafik Hasil Kepuasan + + ); +} + +export default GrafikHasilKepuasan; diff --git a/src/app/admin/(dashboard)/kesehatan/data-kesehatan-warga/_ui/jadwal_kegiatan/deskripsi_kegiatan/page.tsx b/src/app/admin/(dashboard)/kesehatan/data-kesehatan-warga/_ui/jadwal_kegiatan/deskripsi_kegiatan/page.tsx new file mode 100644 index 00000000..8f812bf8 --- /dev/null +++ b/src/app/admin/(dashboard)/kesehatan/data-kesehatan-warga/_ui/jadwal_kegiatan/deskripsi_kegiatan/page.tsx @@ -0,0 +1,13 @@ +import { Box, Text } from '@mantine/core'; +import TextEditor from '../../../_com/TextEditor'; + +function DeskripsiKegiatan() { + return ( + + Deskripsi Kegiatan + + + ); +} + +export default DeskripsiKegiatan; diff --git a/src/app/admin/(dashboard)/kesehatan/data-kesehatan-warga/_ui/jadwal_kegiatan/dokumen_yang_diperlukan/page.tsx b/src/app/admin/(dashboard)/kesehatan/data-kesehatan-warga/_ui/jadwal_kegiatan/dokumen_yang_diperlukan/page.tsx new file mode 100644 index 00000000..fb3601e8 --- /dev/null +++ b/src/app/admin/(dashboard)/kesehatan/data-kesehatan-warga/_ui/jadwal_kegiatan/dokumen_yang_diperlukan/page.tsx @@ -0,0 +1,15 @@ +import { Box, Text } from '@mantine/core'; +import TextEditor from '../../../_com/TextEditor'; + +function DokumenYangDiperlukan() { + return ( + + Dokumen Yang Diperlukan + + + ); +} + +export default DokumenYangDiperlukan; + + diff --git a/src/app/admin/(dashboard)/kesehatan/data-kesehatan-warga/_ui/jadwal_kegiatan/informasi_kegiatan/page.tsx b/src/app/admin/(dashboard)/kesehatan/data-kesehatan-warga/_ui/jadwal_kegiatan/informasi_kegiatan/page.tsx new file mode 100644 index 00000000..96446524 --- /dev/null +++ b/src/app/admin/(dashboard)/kesehatan/data-kesehatan-warga/_ui/jadwal_kegiatan/informasi_kegiatan/page.tsx @@ -0,0 +1,27 @@ +import { Box, Text, TextInput } from '@mantine/core'; + +function InformasiKegiatan() { + return ( + + Informasi Kegiatan + + + + + + ); +} + +export default InformasiKegiatan; diff --git a/src/app/admin/(dashboard)/kesehatan/data-kesehatan-warga/_ui/jadwal_kegiatan/layanan_yang_tersedia/page.tsx b/src/app/admin/(dashboard)/kesehatan/data-kesehatan-warga/_ui/jadwal_kegiatan/layanan_yang_tersedia/page.tsx new file mode 100644 index 00000000..21290d69 --- /dev/null +++ b/src/app/admin/(dashboard)/kesehatan/data-kesehatan-warga/_ui/jadwal_kegiatan/layanan_yang_tersedia/page.tsx @@ -0,0 +1,13 @@ +import { Box, Text } from '@mantine/core'; +import TextEditor from '../../../_com/TextEditor'; + +function LayananTersedia() { + return ( + + Layanan Yang Tersedia + + + ); +} + +export default LayananTersedia; diff --git a/src/app/admin/(dashboard)/kesehatan/data-kesehatan-warga/_ui/jadwal_kegiatan/page.tsx b/src/app/admin/(dashboard)/kesehatan/data-kesehatan-warga/_ui/jadwal_kegiatan/page.tsx index 1a4dd192..3ec356d1 100644 --- a/src/app/admin/(dashboard)/kesehatan/data-kesehatan-warga/_ui/jadwal_kegiatan/page.tsx +++ b/src/app/admin/(dashboard)/kesehatan/data-kesehatan-warga/_ui/jadwal_kegiatan/page.tsx @@ -1,18 +1,26 @@ -import { Box, SimpleGrid, Stack, TextInput, Title } from '@mantine/core'; -import React from 'react'; +import { Box, Button, SimpleGrid, Stack, Title } from '@mantine/core'; +import InformasiKegiatan from './informasi_kegiatan/page'; +import DeskripsiKegiatan from './deskripsi_kegiatan/page'; +import LayananTersedia from './layanan_yang_tersedia/page'; +import SyaratDanKetentuan from './syarat_dan_ketentuan/page'; +import DokumenYangDiperlukan from './dokumen_yang_diperlukan/page'; +import Pendaftaran from './pendaftaran/page'; function JadwalKegiatan() { return ( - + Jadwal Kegiatan - + + + + + + + List Jadwal Kegiatan diff --git a/src/app/admin/(dashboard)/kesehatan/data-kesehatan-warga/_ui/jadwal_kegiatan/pendaftaran/page.tsx b/src/app/admin/(dashboard)/kesehatan/data-kesehatan-warga/_ui/jadwal_kegiatan/pendaftaran/page.tsx new file mode 100644 index 00000000..b57f4e02 --- /dev/null +++ b/src/app/admin/(dashboard)/kesehatan/data-kesehatan-warga/_ui/jadwal_kegiatan/pendaftaran/page.tsx @@ -0,0 +1,48 @@ +'use client' +import { ActionIcon, Box, Text, Textarea, TextInput } from '@mantine/core'; +import { DateInput } from '@mantine/dates'; +import { IconCalendar } from '@tabler/icons-react'; +import { useState } from 'react'; + +function Pendaftaran() { + const [dateInputOpened, setDateInputOpened] = useState(false); + const pickerControl = ( + setDateInputOpened(true)} variant="subtle" color="gray"> + + + ); + return ( + + Pendaftaran + + + + + +