diff --git a/prisma/data/pendidikan/info-sekolah/jenjang-pendidikan.json b/prisma/data/pendidikan/info-sekolah/jenjang-pendidikan.json
new file mode 100644
index 00000000..a2d63947
--- /dev/null
+++ b/prisma/data/pendidikan/info-sekolah/jenjang-pendidikan.json
@@ -0,0 +1,9 @@
+[
+ { "id": "cmghqwjs4000404l8c5uvc300", "nama": "PAUD" },
+ { "id": "cmghqwjs4000404l8c5uvc301", "nama": "TK" },
+ { "id": "cmghqwjs4000404l8c5uvc302", "nama": "SD" },
+ { "id": "cmghqwjs4000404l8c5uvc303", "nama": "SMP" },
+ { "id": "cmghqwjs4000404l8c5uvc304", "nama": "SMA" },
+ { "id": "cmghqwjs4000404l8c5uvc305", "nama": "SMK" }
+ ]
+
\ No newline at end of file
diff --git a/prisma/seed.ts b/prisma/seed.ts
index f90b09ae..52de4324 100644
--- a/prisma/seed.ts
+++ b/prisma/seed.ts
@@ -56,6 +56,7 @@ import tujuanProgram from "./data/pendidikan/program-pendidikan-anak/tujuan-prog
import roles from "./data/user/roles.json";
import users from "./data/user/users.json";
import fileStorage from "./data/file-storage.json";
+import jenjangPendidikan from "./data/pendidikan/info-sekolah/jenjang-pendidikan.json";
import seedAssets from "./seed_assets";
import { safeSeedUnique } from "./safeseedUnique";
@@ -1164,6 +1165,22 @@ import { safeSeedUnique } from "./safeseedUnique";
"✅ fasilitas bimbingan belajar desa seeded (editable later via UI)"
);
+ for (const j of jenjangPendidikan) {
+ await prisma.jenjangPendidikan.upsert({
+ where: {
+ id: j.id || undefined,
+ },
+ update: {
+ nama: j.nama,
+ },
+ create: {
+ nama: j.nama,
+ },
+ });
+ }
+
+ console.log("✅ Jenjang Pendidikan seeded successfully");
+
// seed assets
await seedAssets();
diff --git a/src/app/admin/(dashboard)/_state/pendidikan/beasiswa-desa.ts b/src/app/admin/(dashboard)/_state/pendidikan/beasiswa-desa.ts
index d8866b37..7337d64c 100644
--- a/src/app/admin/(dashboard)/_state/pendidikan/beasiswa-desa.ts
+++ b/src/app/admin/(dashboard)/_state/pendidikan/beasiswa-desa.ts
@@ -332,7 +332,7 @@ const keunggulanProgram = proxy({
].post(keunggulanProgram.create.form);
if (res.status === 200) {
keunggulanProgram.findMany.load();
- return toast.success("Data Berhasil Dibuat, Silahkan Menunggu Konfirmasi dari Admin di WhatsApp");
+ return toast.success("Data Berhasil Dibuat");
}
console.log(res);
return toast.error("failed create");
diff --git a/src/app/admin/(dashboard)/pendidikan/beasiswa-desa/_lib/layoutTabs.tsx b/src/app/admin/(dashboard)/pendidikan/beasiswa-desa/_lib/layoutTabs.tsx
index 553daf17..6c0b4be0 100644
--- a/src/app/admin/(dashboard)/pendidikan/beasiswa-desa/_lib/layoutTabs.tsx
+++ b/src/app/admin/(dashboard)/pendidikan/beasiswa-desa/_lib/layoutTabs.tsx
@@ -1,7 +1,7 @@
/* eslint-disable react-hooks/exhaustive-deps */
'use client'
import colors from '@/con/colors';
-import { Stack, Tabs, TabsList, TabsPanel, TabsTab, Title, Tooltip } from '@mantine/core';
+import { ScrollArea, Stack, Tabs, TabsList, TabsPanel, TabsTab, Title, Tooltip } from '@mantine/core';
import { usePathname, useRouter } from 'next/navigation';
import React, { useEffect, useState } from 'react';
import { IconSchool, IconStar } from '@tabler/icons-react';
@@ -58,36 +58,38 @@ function LayoutTabs({ children }: { children: React.ReactNode }) {
radius="lg"
keepMounted={false}
>
-
- {tabs.map((tab, i) => (
-
-
+
+ {tabs.map((tab, i) => (
+
- {tab.label}
-
-
- ))}
-
+
+ {tab.label}
+
+
+ ))}
+
+
{tabs.map((tab, i) => (
- Nama Keunggulan Program
- Deskripsi
- Edit
- Delete
+ Nama Keunggulan Program
+ Deskripsi
+ Edit
+ Delete
{filteredData.length > 0 ? (
filteredData.map((item) => (
-
+
{item.judul}
-
+
-
+
-
+
+ ))}
+
+
{tabs.map((tab, i) => (
-
- {tabs.map((tab, i) => (
-
-
- {tab.label}
-
-
- ))}
-
+
+
+ {tabs.map((tab, i) => (
+
+
+ {tab.label}
+
+
+ ))}
+
+
{tabs.map((tab, i) => (
{children}
@@ -121,4 +124,3 @@ export default LayoutTabs;
-
\ No newline at end of file
diff --git a/src/app/admin/(dashboard)/pendidikan/pendidikan-non-formal/_lib/layoutTabs.tsx b/src/app/admin/(dashboard)/pendidikan/pendidikan-non-formal/_lib/layoutTabs.tsx
index b436082f..672d9156 100644
--- a/src/app/admin/(dashboard)/pendidikan/pendidikan-non-formal/_lib/layoutTabs.tsx
+++ b/src/app/admin/(dashboard)/pendidikan/pendidikan-non-formal/_lib/layoutTabs.tsx
@@ -1,7 +1,7 @@
/* eslint-disable react-hooks/exhaustive-deps */
'use client'
import colors from '@/con/colors';
-import { Stack, Tabs, TabsList, TabsPanel, TabsTab, Title, Tooltip } from '@mantine/core';
+import { ScrollArea, Stack, Tabs, TabsList, TabsPanel, TabsTab, Title, Tooltip } from '@mantine/core';
import { usePathname, useRouter } from 'next/navigation';
import React, { useEffect, useState } from 'react';
import { IconSchool, IconMapPin, IconBook2 } from '@tabler/icons-react';
@@ -66,36 +66,38 @@ function LayoutTabs({ children }: { children: React.ReactNode }) {
radius="lg"
keepMounted={false}
>
-
- {tabs.map((tab, i) => (
-
-
+
+ {tabs.map((tab, i) => (
+
- {tab.label}
-
-
- ))}
-
+
+ {tab.label}
+
+
+ ))}
+
+
{tabs.map((tab, i) => (
-
- {tabs.map((tab, i) => (
-
-
+
+ {tabs.map((tab, i) => (
+
- {tab.label}
-
-
- ))}
-
+
+ {tab.label}
+
+
+ ))}
+
+
{tabs.map((tab, i) => (
,
- tooltip: "Lihat dan kelola program unggulan pendidikan anak",
- },
{
label: "Tujuan Program",
value: "tujuan-program",
@@ -25,6 +18,13 @@ function LayoutTabs({ children }: { children: React.ReactNode }) {
icon: ,
tooltip: "Atur tujuan program pendidikan anak",
},
+ {
+ label: "Program Unggulan",
+ value: "program-unggulan",
+ href: "/admin/pendidikan/program-pendidikan-anak/program-unggulan",
+ icon: ,
+ tooltip: "Lihat dan kelola program unggulan pendidikan anak",
+ }
];
const currentTab = tabs.find(tab => tab.href === pathname);
@@ -59,36 +59,38 @@ function LayoutTabs({ children }: { children: React.ReactNode }) {
radius="lg"
keepMounted={false}
>
-
- {tabs.map((tab, i) => (
-
-
+
+ {tabs.map((tab, i) => (
+
- {tab.label}
-
-
- ))}
-
+
+ {tab.label}
+
+
+ ))}
+
+
{tabs.map((tab, i) => (
{
beasiswaDesa.create.form = {
namaLengkap: "",
@@ -41,6 +38,12 @@ function Page() {
};
};
+ const { data, page, totalPages, loading, load } = ungggulanDesa.findMany;
+
+ useShallowEffect(() => {
+ load(page, 3, "");
+ }, [page])
+
const handleSubmit = async () => {
await beasiswaDesa.create.create();
resetForm();
@@ -51,6 +54,14 @@ function Page() {
const nextStep = () => setActive((current) => (current < 5 ? current + 1 : current));
const prevStep = () => setActive((current) => (current > 0 ? current - 1 : current));
+ if (loading || !data) {
+ return (
+
+
+
+ );
+ }
+
return (
@@ -70,13 +81,13 @@ function Page() {
} onClick={open}>
Daftar Sekarang
- }>
+
-
+
@@ -101,14 +112,29 @@ function Page() {
Keunggulan Program
- {dataProgram.map((v, k) => (
+ {data.map((v, k) => (
{v.judul}
- {v.deskripsi}
+
))}
+
+ {
+ load(newPage, 10);
+ window.scrollTo({ top: 0, behavior: 'smooth' });
+ }}
+ total={totalPages}
+ mt="md"
+ mb="md"
+ color="blue"
+ radius="md"
+ />
+
+
Timeline Pendaftaran
@@ -142,66 +168,66 @@ function Page() {
>
- { beasiswaDesa.create.form.namaLengkap = val.target.value }} />
- { beasiswaDesa.create.form.nik = val.target.value }} />
- { beasiswaDesa.create.form.tempatLahir = val.target.value }} />
- { beasiswaDesa.create.form.tanggalLahir = val.target.value }} />
-