- | {e.title} |
- {e.lokasi} |
- {e.EventMaster_TipeAcara.name} |
- {e.tanggal.toLocaleString("id-ID", { dateStyle: "full" })} |
+ {e?.Author?.Profile?.name} |
+ {e?.title} |
+ {e?.lokasi} |
+ {e?.EventMaster_TipeAcara?.name} |
+ {e?.tanggal.toLocaleString("id-ID", { dateStyle: "full" })} |
{e.tanggal.toLocaleTimeString([], {
hour: "2-digit",
minute: "2-digit",
- hour12: false,
})}
|
@@ -121,28 +121,34 @@ function TableStatus({ listPublish }: { listPublish: MODEL_EVENT[] }) {
Daftar Peserta
- {peserta?.map((e) => (
-
-
-
-
-
-
-
- {e?.User?.Profile?.name}
-
-
-
-
-
- ))}
+ {_.isEmpty(peserta) ? (
+
+ Tidak ada peserta
+
+ ) : (
+ peserta?.map((e) => (
+
+
+
+
+
+
+
+ {e?.User?.Profile?.name}
+
+
+
+
+
+ ))
+ )}
@@ -163,6 +169,7 @@ function TableStatus({ listPublish }: { listPublish: MODEL_EVENT[] }) {
>
+ | Author |
Judul |
Lokasi |
Tipe Acara |
diff --git a/src/app_modules/admin/event/table_status/table_reject.tsx b/src/app_modules/admin/event/table_status/table_reject.tsx
index e9920a7c..e03c6eb0 100644
--- a/src/app_modules/admin/event/table_status/table_reject.tsx
+++ b/src/app_modules/admin/event/table_status/table_reject.tsx
@@ -1,6 +1,6 @@
"use client";
-import { RouterAdminDonasi } from "@/app/lib/router_hipmi/router_admin";
+import { RouterAdminDonasi_OLD } from "@/app/lib/router_hipmi/router_admin";
import {
ActionIcon,
Box,
@@ -90,7 +90,6 @@ function TableStatus({ listReject }: { listReject: MODEL_EVENT[] }) {
{e.tanggal.toLocaleTimeString([], {
hour: "2-digit",
minute: "2-digit",
- hour12: false,
})}
diff --git a/src/app_modules/admin/event/table_status/table_review.tsx b/src/app_modules/admin/event/table_status/table_review.tsx
index fe4430bf..78cd777d 100644
--- a/src/app_modules/admin/event/table_status/table_review.tsx
+++ b/src/app_modules/admin/event/table_status/table_review.tsx
@@ -1,6 +1,6 @@
"use client";
-import { RouterAdminDonasi } from "@/app/lib/router_hipmi/router_admin";
+import { RouterAdminDonasi_OLD } from "@/app/lib/router_hipmi/router_admin";
import {
ActionIcon,
Box,
@@ -75,7 +75,6 @@ function TableStatus({ listReview }: { listReview: MODEL_EVENT[] }) {
{e.tanggal.toLocaleTimeString([], {
hour: "2-digit",
minute: "2-digit",
- hour12: false,
})}
@@ -90,7 +89,7 @@ function TableStatus({ listReview }: { listReview: MODEL_EVENT[] }) {
color={"green"}
leftIcon={}
radius={"xl"}
- onClick={() => onPublish(e.id, setData)}
+ onClick={() => onPublish(e.id, setData, e.tanggal)}
>
Publish
@@ -194,7 +193,12 @@ function TableStatus({ listReview }: { listReview: MODEL_EVENT[] }) {
);
}
-async function onPublish(eventId: string, setData: any) {
+async function onPublish(eventId: string, setData: any, tanggal: Date) {
+ if (moment(tanggal).diff(Date.now(), "minutes") < 0)
+ return ComponentGlobal_NotifikasiPeringatan(
+ "Waktu acara telah lewat, Report untuk memberitahu user !"
+ );
+
await AdminEvent_funEditStatusPublishById(eventId, "1").then(async (res) => {
if (res.status === 200) {
await AdminEvent_getListTableByStatusId("2").then((res) => {
diff --git a/src/app_modules/admin/investasi/bukti_transfer/view.tsx b/src/app_modules/admin/investasi/bukti_transfer/view.tsx
index 75127ec8..7b62b166 100644
--- a/src/app_modules/admin/investasi/bukti_transfer/view.tsx
+++ b/src/app_modules/admin/investasi/bukti_transfer/view.tsx
@@ -1,6 +1,6 @@
"use client";
-import { RouterAdminInvestasi } from "@/app/lib/router_hipmi/router_admin";
+import { RouterAdminInvestasi_OLD } from "@/app/lib/router_hipmi/router_admin";
import { RouterInvestasi } from "@/app/lib/router_hipmi/router_investasi";
import {
Avatar,
@@ -41,7 +41,7 @@ export default function Admin_BuktiTransferInvestasi() {
<>
{/* Box Username */}
{listUsername.map((e) => (
- router.push(RouterAdminInvestasi.status_transfer)}>
+ router.push(RouterAdminInvestasi_OLD.status_transfer)}>
Username
diff --git a/src/app_modules/admin/investasi/fun/fun_reject_investasi.ts b/src/app_modules/admin/investasi/fun/fun_reject_investasi.ts
index 00a60faa..421e8bb1 100644
--- a/src/app_modules/admin/investasi/fun/fun_reject_investasi.ts
+++ b/src/app_modules/admin/investasi/fun/fun_reject_investasi.ts
@@ -1,7 +1,7 @@
"use server"
import prisma from "@/app/lib/prisma"
-import { RouterAdminInvestasi } from "@/app/lib/router_hipmi/router_admin"
+import { RouterAdminInvestasi_OLD } from "@/app/lib/router_hipmi/router_admin"
import { RouterInvestasi } from "@/app/lib/router_hipmi/router_investasi"
import { revalidatePath } from "next/cache"
@@ -17,7 +17,7 @@ export default async function Admin_funRejectInvestasi(data: any) {
})
if(!res) return {status: 400, message: "Gagal reject"}
- revalidatePath(RouterAdminInvestasi.main_investasi)
+ revalidatePath(RouterAdminInvestasi_OLD.main_investasi)
return {
status: 200,
diff --git a/src/app_modules/admin/investasi/halaman_aksi/view.tsx b/src/app_modules/admin/investasi/halaman_aksi/view.tsx
index fd8dca9c..3334db96 100644
--- a/src/app_modules/admin/investasi/halaman_aksi/view.tsx
+++ b/src/app_modules/admin/investasi/halaman_aksi/view.tsx
@@ -1,6 +1,6 @@
"use client";
-import { RouterAdminInvestasi } from "@/app/lib/router_hipmi/router_admin";
+import { RouterAdminInvestasi_OLD } from "@/app/lib/router_hipmi/router_admin";
import {
Box,
Button,
@@ -24,13 +24,13 @@ export default function Admin_HalamanAksi({idInves}: {idInves: string}) {
id: 1,
name: "Konfirmasi",
desc: "Publis atau non - aktifkan proyek invetsasi",
- route: RouterAdminInvestasi.konfirmasi,
+ route: RouterAdminInvestasi_OLD.konfirmasi,
},
{
id: 2,
name: "Bukti Transfer",
desc: "Lihat bukti transfer investor",
- route: RouterAdminInvestasi.bukti_transfer,
+ route: RouterAdminInvestasi_OLD.bukti_transfer,
},
];
diff --git a/src/app_modules/admin/investasi/konfirmasi/view.tsx b/src/app_modules/admin/investasi/konfirmasi/view.tsx
index 6ae5b934..57715133 100644
--- a/src/app_modules/admin/investasi/konfirmasi/view.tsx
+++ b/src/app_modules/admin/investasi/konfirmasi/view.tsx
@@ -53,7 +53,7 @@ import { useRouter } from "next/navigation";
import { useState } from "react";
import toast, { toastConfig } from "react-simple-toasts";
import Admin_funRejectInvestasi from "../fun/fun_reject_investasi";
-import { RouterAdminInvestasi } from "@/app/lib/router_hipmi/router_admin";
+import { RouterAdminInvestasi_OLD } from "@/app/lib/router_hipmi/router_admin";
import "react-simple-toasts/dist/theme/dark.css";
import { BeritaInvestasi } from "@/app_modules/investasi";
@@ -125,7 +125,7 @@ export default function Admin_KonfirmasiInvestasi({
await funGantiStatusInvestasi(investasi.id, "3", "1").then((res) => {
if (res.status === 200) {
setTimeout(() => setPublish(false), 1000);
- router.push(RouterAdminInvestasi.table_status_review);
+ router.push(RouterAdminInvestasi_OLD.table_status_review);
toast("Proyek Investasi Di Publish");
}
});
diff --git a/src/app_modules/admin/investasi/main/table_publish.tsx b/src/app_modules/admin/investasi/main/table_publish.tsx
index 1437c2b6..03bca98f 100644
--- a/src/app_modules/admin/investasi/main/table_publish.tsx
+++ b/src/app_modules/admin/investasi/main/table_publish.tsx
@@ -1,5 +1,5 @@
"use client";
-import { RouterAdminInvestasi } from "@/app/lib/router_hipmi/router_admin";
+import { RouterAdminInvestasi_OLD } from "@/app/lib/router_hipmi/router_admin";
import { MODEL_Investasi } from "@/app_modules/investasi/model/model_investasi";
import {
Badge,
@@ -55,7 +55,7 @@ export default function Admin_TablePublishInvestasi({
- router.push(RouterAdminInvestasi.konfirmasi + `${e.id}`)
+ router.push(RouterAdminInvestasi_OLD.konfirmasi + `${e.id}`)
}
>
@@ -72,7 +72,7 @@ export default function Admin_TablePublishInvestasi({
return (
<>
- router.push(RouterAdminInvestasi.main_investasi)}>
+ router.push(RouterAdminInvestasi_OLD.main_investasi)}>
diff --git a/src/app_modules/admin/investasi/main/table_reject.tsx b/src/app_modules/admin/investasi/main/table_reject.tsx
index 08781012..5370977a 100644
--- a/src/app_modules/admin/investasi/main/table_reject.tsx
+++ b/src/app_modules/admin/investasi/main/table_reject.tsx
@@ -1,5 +1,5 @@
"use client";
-import { RouterAdminInvestasi } from "@/app/lib/router_hipmi/router_admin";
+import { RouterAdminInvestasi_OLD } from "@/app/lib/router_hipmi/router_admin";
import { MODEL_Investasi } from "@/app_modules/investasi/model/model_investasi";
import {
Badge,
@@ -44,7 +44,7 @@ export default function Admin_TableRejectInvestasi({
- router.push(RouterAdminInvestasi.konfirmasi + `${e.id}`)
+ router.push(RouterAdminInvestasi_OLD.konfirmasi + `${e.id}`)
}
>
@@ -61,7 +61,7 @@ export default function Admin_TableRejectInvestasi({
return (
<>
- router.push(RouterAdminInvestasi.main_investasi)}>
+ router.push(RouterAdminInvestasi_OLD.main_investasi)}>
diff --git a/src/app_modules/admin/investasi/main/table_review.tsx b/src/app_modules/admin/investasi/main/table_review.tsx
index 8900969d..4562bd18 100644
--- a/src/app_modules/admin/investasi/main/table_review.tsx
+++ b/src/app_modules/admin/investasi/main/table_review.tsx
@@ -1,5 +1,5 @@
"use client";
-import { RouterAdminInvestasi } from "@/app/lib/router_hipmi/router_admin";
+import { RouterAdminInvestasi_OLD } from "@/app/lib/router_hipmi/router_admin";
import { MODEL_Investasi } from "@/app_modules/investasi/model/model_investasi";
import {
Badge,
@@ -55,7 +55,7 @@ export default function Admin_TableReviewInvestasi({
- router.push(RouterAdminInvestasi.konfirmasi + `${e.id}`)
+ router.push(RouterAdminInvestasi_OLD.konfirmasi + `${e.id}`)
}
>
@@ -71,7 +71,7 @@ export default function Admin_TableReviewInvestasi({
return (
<>
- router.push(RouterAdminInvestasi.main_investasi)}>
+ router.push(RouterAdminInvestasi_OLD.main_investasi)}>
diff --git a/src/app_modules/admin/investasi/main/view.tsx b/src/app_modules/admin/investasi/main/view.tsx
index 7a858a6b..42deaa9f 100644
--- a/src/app_modules/admin/investasi/main/view.tsx
+++ b/src/app_modules/admin/investasi/main/view.tsx
@@ -1,6 +1,6 @@
"use client";
-import { RouterAdminInvestasi } from "@/app/lib/router_hipmi/router_admin";
+import { RouterAdminInvestasi_OLD } from "@/app/lib/router_hipmi/router_admin";
import { MODEL_Investasi } from "@/app_modules/investasi/model/model_investasi";
import {
ActionIcon,
@@ -13,6 +13,7 @@ import {
Group,
Paper,
ScrollArea,
+ SimpleGrid,
Stack,
Table,
Text,
@@ -37,6 +38,7 @@ import moment from "moment";
import _ from "lodash";
import TableTotalInvestasi from "./table_total_investasi";
import TablePublikasiProgresInvestasi from "./table_publikasi_progres";
+import ComponentAdminGlobal_HeaderTamplate from "../../component/header_tamplate";
export default function Admin_Investasi({
listInvestasi,
@@ -70,73 +72,57 @@ export default function Admin_Investasi({
id: 2,
name: "Review",
jumlah: countReview,
- link: RouterAdminInvestasi.table_status_review,
+ link: RouterAdminInvestasi_OLD.table_status_review,
color: "orange",
},
{
id: 3,
name: "Publish",
jumlah: countPublish,
- link: RouterAdminInvestasi.table_status_publish,
+ link: RouterAdminInvestasi_OLD.table_status_publish,
color: "green",
},
{
id: 4,
name: "Reject",
jumlah: countReject,
- link: RouterAdminInvestasi.table_status_reject,
+ link: RouterAdminInvestasi_OLD.table_status_reject,
color: "red",
},
];
return (
<>
-
- Investasi
-
- {/* Status box */}
-
- {listBox.map((e) => (
-
-
-
- {e.name}
-
- {e.jumlah}
-
-
-
- {e.link === "" ? (
-
- {/* */}
-
- ) : (
- router.push(e.link)}
- >
-
-
- )}
-
-
-
- ))}
-
+
+
- {/* Table Total & Progres */}
- {/*
-
-
-
-
-
-
- */}
+
+ {listBox.map((e, i) => (
+
+
+
+ {e.name}
+ {e.jumlah}
+
+
+
+ ))}
+
>
);
diff --git a/src/app_modules/admin/layout.tsx b/src/app_modules/admin/layout.tsx
index 1fdc3da0..78140d1d 100644
--- a/src/app_modules/admin/layout.tsx
+++ b/src/app_modules/admin/layout.tsx
@@ -6,6 +6,7 @@ import {
Avatar,
Box,
Burger,
+ Center,
Divider,
Drawer,
Footer,
@@ -36,8 +37,8 @@ import {
import {
RouterAdminAward,
RouterAdminDashboard,
- RouterAdminDonasi,
- RouterAdminInvestasi,
+ RouterAdminDonasi_OLD,
+ RouterAdminInvestasi_OLD,
} from "@/app/lib/router_hipmi/router_admin";
import { useRouter } from "next/navigation";
import { RouterHome } from "@/app/lib/router_hipmi/router_home";
@@ -230,51 +231,82 @@ export default function AdminLayout({
p="xs"
bg={"gray.2"}
>
-
+ {/*
{userRole === "3" ? navbarItems : notAdminDev}
- {/* } label="Create Admin" /> */}
+
-
+ */}
+
+ {/*
+
+ Dashboard Admin
+
+
+ */}
+
+
+ Dashboard Admin
+
+
+
+
+
+
+ {userRole === "3" ? navbarItems : notAdminDev}
+ {/* } label="Create Admin" /> */}
+
+
+
+
+
+
+
+ V 1.0.0
+
+
+
+
+
}
- header={
-
- {/* Mobile View */}
-
-
- setOpened((o) => !o)}
- size="sm"
- color={theme.colors.gray[6]}
- mr="xl"
- />
- Dashboard Admin
-
-
-
+ // header={
+ //
+ // {/* Mobile View */}
+ //
+ //
+ // setOpened((o) => !o)}
+ // size="sm"
+ // color={theme.colors.gray[6]}
+ // mr="xl"
+ // />
+ // Dashboard Admin
+ //
+ //
+ //
- {/* Web View */}
-
-
- Dashboard Admin
- HIPMI
- {/*
- {listAdminPage.map((e) => (
- router.push(e.route)}>
- {e.name}
-
- ))}
- */}
-
-
-
-
- }
+ // {/* Web View */}
+ //
+ //
+ // Dashboard Admin
+ // HIPMI
+ // {/*
+ // {listAdminPage.map((e) => (
+ // router.push(e.route)}>
+ // {e.name}
+ //
+ // ))}
+ // */}
+ //
+ //
+ //
+ //
+ // }
>
{/* {JSON.stringify(active)} */}
{children}
diff --git a/src/app_modules/admin/list_page.tsx b/src/app_modules/admin/list_page.tsx
index 54cadf1c..a8a35dd0 100644
--- a/src/app_modules/admin/list_page.tsx
+++ b/src/app_modules/admin/list_page.tsx
@@ -1,19 +1,23 @@
import { RouterAdminColab } from "@/app/lib/router_admin/router_admin_colab";
import { RouterAdminDeveloper } from "@/app/lib/router_admin/router_admin_developer";
+import { RouterAdminDonasi } from "@/app/lib/router_admin/router_admin_donasi";
import { RouterAdminEvent } from "@/app/lib/router_admin/router_admin_event";
import { RouterAdminForum } from "@/app/lib/router_admin/router_admin_forum";
+import { RouterAdminInvestasi } from "@/app/lib/router_admin/router_admin_investasi";
import { RouterAdminJob } from "@/app/lib/router_admin/router_admin_job";
import { RouterAdminVote } from "@/app/lib/router_admin/router_admin_vote";
import { RouterAdminUserAccess } from "@/app/lib/router_admin/router_admn_user_acces";
+import { RouterAdminAppInformation } from "@/app/lib/router_admin/router_app_information";
import {
RouterAdminDashboard,
- RouterAdminDonasi,
- RouterAdminInvestasi,
+ RouterAdminDonasi_OLD,
+ RouterAdminInvestasi_OLD,
} from "@/app/lib/router_hipmi/router_admin";
import {
IconAffiliate,
IconBriefcase,
IconDashboard,
+ IconDeviceMobile,
IconMessages,
IconUserCog,
} from "@tabler/icons-react";
@@ -26,6 +30,7 @@ import {
} from "@tabler/icons-react";
export const listAdminPage = [
+ // Main Dashboard
{
id: 1,
name: "Main Dashboard",
@@ -33,21 +38,73 @@ export const listAdminPage = [
icon: ,
child: [],
},
+
+ // Investasi
{
id: 2,
name: "Investasi",
- path: RouterAdminInvestasi.main_investasi,
+ path: "",
icon: ,
-
- child: [],
+ child: [
+ {
+ id: 21,
+ name: "Dashboard",
+ path: RouterAdminInvestasi.main,
+ },
+ {
+ id: 22,
+ name: "Table Publish",
+ path: RouterAdminInvestasi.table_publish,
+ },
+ {
+ id: 23,
+ name: "Table Review",
+ path: RouterAdminInvestasi.table_review,
+ },
+ {
+ id: 24,
+ name: "Table Reject",
+ path: RouterAdminInvestasi.table_reject,
+ },
+ ],
},
+
+ //Donasi
{
id: 3,
name: "Donasi",
- path: RouterAdminDonasi.main_donasi,
+ path: "",
icon: ,
- child: [],
+ child: [
+ {
+ id: 31,
+ name: "Dashboard",
+ path: RouterAdminDonasi.main,
+ },
+ {
+ id: 32,
+ name: "Table Publish",
+ path: RouterAdminDonasi.table_publish,
+ },
+ {
+ id: 33,
+ name: "Table Review",
+ path: RouterAdminDonasi.table_review,
+ },
+ {
+ id: 34,
+ name: "Table Reject",
+ path: RouterAdminDonasi.table_reject,
+ },
+ {
+ id: 35,
+ name: "Table Kategori",
+ path: RouterAdminDonasi.table_kategori,
+ },
+ ],
},
+
+ // Event
{
id: 4,
name: "Event",
@@ -86,6 +143,8 @@ export const listAdminPage = [
},
],
},
+
+ // Voting
{
id: 5,
name: "Voting",
@@ -119,6 +178,8 @@ export const listAdminPage = [
},
],
},
+
+ // Job Vacancy
{
id: 6,
name: "Job Vacancy",
@@ -152,6 +213,8 @@ export const listAdminPage = [
},
],
},
+
+ // Forum
{
id: 7,
name: "Forum",
@@ -180,6 +243,8 @@ export const listAdminPage = [
// },
],
},
+
+ // Project Collaboration
{
id: 8,
name: "Project Collaboration",
@@ -208,6 +273,16 @@ export const listAdminPage = [
},
],
},
+
+ {
+ id: 97,
+ name: "App Information",
+ path: RouterAdminAppInformation.main,
+ icon: ,
+ child: [],
+ },
+
+ // User Access
{
id: 98,
name: "User Access",
@@ -215,6 +290,8 @@ export const listAdminPage = [
icon: ,
child: [],
},
+
+ // Developer
{
id: 99,
name: "Developer",
diff --git a/src/app_modules/admin/user-access/fun/get/get_list_all_user.ts b/src/app_modules/admin/user-access/fun/get/get_list_all_user.ts
index ada9cdb1..55f8da17 100644
--- a/src/app_modules/admin/user-access/fun/get/get_list_all_user.ts
+++ b/src/app_modules/admin/user-access/fun/get/get_list_all_user.ts
@@ -1,13 +1,47 @@
"use server";
import prisma from "@/app/lib/prisma";
+import _, { ceil } from "lodash";
-export default async function adminUserAccess_getListUser() {
- const get = await prisma.user.findMany({
+export default async function adminUserAccess_getListUser({
+ search,
+ page,
+}: {
+ search?: string;
+ page: number;
+}) {
+ const dataSkip = _.toNumber(page) * 9 - 9;
+ const dataTake = 9;
+
+ const getData = await prisma.user.findMany({
+ skip: dataSkip,
+ take: 9,
+ orderBy: {
+ updatedAt: "asc",
+ },
where: {
masterUserRoleId: "1",
+ username: {
+ contains: search,
+ mode: "insensitive",
+ },
},
});
- return get;
+ const nCount = await prisma.user.count({
+ where: {
+ masterUserRoleId: "1",
+ username: {
+ contains: search,
+ mode: "insensitive",
+ },
+ },
+ });
+
+ const allData = {
+ data: getData,
+ nPage: ceil(nCount / dataTake),
+ };
+
+ return allData;
}
diff --git a/src/app_modules/admin/user-access/view/index.tsx b/src/app_modules/admin/user-access/view/index.tsx
index 8e266805..3180cda9 100644
--- a/src/app_modules/admin/user-access/view/index.tsx
+++ b/src/app_modules/admin/user-access/view/index.tsx
@@ -5,6 +5,7 @@ import {
Button,
Center,
Group,
+ Pagination,
Paper,
ScrollArea,
Stack,
@@ -19,17 +20,21 @@ import adminUserAccess_getListUser from "../fun/get/get_list_all_user";
import { ComponentGlobal_NotifikasiBerhasil } from "@/app_modules/component_global/notif_global/notifikasi_berhasil";
import { ComponentGlobal_NotifikasiGagal } from "@/app_modules/component_global/notif_global/notifikasi_gagal";
-export default function AdminUserAccess_View({
- listUser,
-}: {
- listUser: MODEL_USER[];
-}) {
- const [data, setData] = useState(listUser);
+export default function AdminUserAccess_View({ listUser }: { listUser: any }) {
+ const [data, setData] = useState(listUser.data);
+ const [isActivePage, setActivePage] = useState(1);
+ const [isNPage, setNPage] = useState(listUser.nPage);
+ const [isSearch, setSearch] = useState("");
+
async function onAccess(id: string) {
await adminUserAccess_funEditAccess(id, true).then(async (res) => {
if (res.status === 200) {
- const value = await adminUserAccess_getListUser();
- setData(value as any);
+ const value = await adminUserAccess_getListUser({
+ page: 1,
+ search: isSearch,
+ });
+ setData(value.data as any);
+ setNPage(value.nPage);
ComponentGlobal_NotifikasiBerhasil(res.message);
} else {
ComponentGlobal_NotifikasiGagal(res.message);
@@ -40,8 +45,12 @@ export default function AdminUserAccess_View({
async function onDelAccess(id: string) {
await adminUserAccess_funEditAccess(id, false).then(async (res) => {
if (res.status === 200) {
- const value = await adminUserAccess_getListUser();
- setData(value as any);
+ const value = await adminUserAccess_getListUser({
+ page: 1,
+ search: isSearch,
+ });
+ setData(value.data as any);
+ setNPage(value.nPage);
ComponentGlobal_NotifikasiBerhasil(res.message);
} else {
ComponentGlobal_NotifikasiGagal(res.message);
@@ -49,6 +58,27 @@ export default function AdminUserAccess_View({
});
}
+ async function onSearch(s: any) {
+ setSearch(s);
+ setActivePage(1);
+ const loadData = await adminUserAccess_getListUser({
+ search: s,
+ page: 1,
+ });
+ setData(loadData.data as any);
+ setNPage(loadData.nPage);
+ }
+
+ async function onPageClick(p: any) {
+ setActivePage(p);
+ const loadData = await adminUserAccess_getListUser({
+ search: isSearch,
+ page: p,
+ });
+ setData(loadData.data as any);
+ setNPage(loadData.nPage);
+ }
+
const tableBody = data.map((e, i) => (
|
@@ -86,9 +116,10 @@ export default function AdminUserAccess_View({
|
));
+
return (
<>
-
+
{/* {JSON.stringify(listUser, null, 2)} */}
Table User
- {/* }
- radius={"xl"}
- placeholder="Masukan username"
- /> */}
+ }
+ radius={"xl"}
+ placeholder="Masukan username"
+ onChange={(val) => {
+ onSearch(val.currentTarget.value);
+ }}
+ />
-
-
+
+
+
+
+ {
+ onPageClick(val);
+ }}
+ />
+
>
diff --git a/src/app_modules/colab/splash/index.tsx b/src/app_modules/colab/splash/index.tsx
index 6ad2d3f3..659b4d97 100644
--- a/src/app_modules/colab/splash/index.tsx
+++ b/src/app_modules/colab/splash/index.tsx
@@ -16,7 +16,7 @@ export default function Colab_Splash() {
setHotMenu(1);
// setStatus("Publish");
router.replace(RouterColab.beranda);
- }, 2000);
+ }, 1000);
}, []);
return (
diff --git a/src/app_modules/component_global/header_tamplate.tsx b/src/app_modules/component_global/header_tamplate.tsx
index af408f3d..485b0683 100644
--- a/src/app_modules/component_global/header_tamplate.tsx
+++ b/src/app_modules/component_global/header_tamplate.tsx
@@ -3,6 +3,7 @@
import { Header, Group, ActionIcon, Text, Title } from "@mantine/core";
import { IconArrowLeft, IconChevronLeft } from "@tabler/icons-react";
import { useRouter } from "next/navigation";
+import { useState } from "react";
export default function ComponentGlobal_HeaderTamplate({
route,
@@ -16,13 +17,18 @@ export default function ComponentGlobal_HeaderTamplate({
icon?: any;
}) {
const router = useRouter();
+ const [isLoading, setIsLoading] = useState(false);
+ const [isRightLoading, setRightLoading] = useState(false);
+
return (
<>
{
+ setIsLoading(true);
if (route === null || route === undefined) {
return router.back();
} else {
@@ -39,8 +45,12 @@ export default function ComponentGlobal_HeaderTamplate({
} else {
return (
router.push(route2)}
+ onClick={() => {
+ setRightLoading(true);
+ router.push(route2);
+ }}
>
{icon}
diff --git a/src/app_modules/component_global/variabel_global.ts b/src/app_modules/component_global/variabel_global.ts
new file mode 100644
index 00000000..b70605aa
--- /dev/null
+++ b/src/app_modules/component_global/variabel_global.ts
@@ -0,0 +1,18 @@
+import { ComponentGlobal_NotifikasiPeringatan } from "./notif_global/notifikasi_peringatan";
+
+/**
+ * @returns nilai maksimal untuk upload file di semua module
+ */
+export let maksimalUploadFile = 2000000;
+export const ComponentGlobal_WarningMaxUpload = ({
+ text,
+ time,
+}: {
+ text?: string;
+ time?: number;
+}) => {
+ ComponentGlobal_NotifikasiPeringatan(
+ text ? text : "Maaf, Ukuran file terlalu besar, maximum 2mb",
+ time ? time : 3000
+ );
+};
diff --git a/src/app_modules/crowd/main/layout.tsx b/src/app_modules/crowd/main/layout.tsx
index 93669ee0..fbde753b 100644
--- a/src/app_modules/crowd/main/layout.tsx
+++ b/src/app_modules/crowd/main/layout.tsx
@@ -16,7 +16,12 @@ export default function LayoutMainCrowd({
return (
<>
}
+ header={
+
+ }
>
{children}
diff --git a/src/app_modules/crowd/splash/view.tsx b/src/app_modules/crowd/splash/view.tsx
index 31514e8e..7bad5f81 100644
--- a/src/app_modules/crowd/splash/view.tsx
+++ b/src/app_modules/crowd/splash/view.tsx
@@ -1,7 +1,7 @@
"use client";
import { Warna } from "@/app/lib/warna";
-import { Center, Image, Stack, Text, Title } from "@mantine/core";
+import { Center, Image, Paper, Stack, Text, Title } from "@mantine/core";
import { useShallowEffect } from "@mantine/hooks";
import { useRouter } from "next/navigation";
@@ -9,15 +9,14 @@ export default function SplashCrowd() {
const router = useRouter();
useShallowEffect(() => {
- setTimeout(() => router.push("/dev/crowd/main"), 2000);
+ setTimeout(() => router.push("/dev/crowd/main"), 1000);
}, []);
return (
<>
-
- Welcome to
+
-
+
>
);
diff --git a/src/app_modules/donasi/component/box_publish.tsx b/src/app_modules/donasi/component/box_publish.tsx
index f6972dcd..35d32c2b 100644
--- a/src/app_modules/donasi/component/box_publish.tsx
+++ b/src/app_modules/donasi/component/box_publish.tsx
@@ -20,6 +20,8 @@ import { MODEL_DONASI } from "../model/interface";
import { useViewportSize } from "@mantine/hooks";
import { useRouter } from "next/navigation";
import { useState } from "react";
+import _ from "lodash";
+import ComponentDonasi_IsEmptyData from "./is_empty_data";
export default function ComponentDonasi_BoxPublish({
dataDonasi,
@@ -33,62 +35,66 @@ export default function ComponentDonasi_BoxPublish({
const [donasi, setDonasi] = useState(dataDonasi);
return (
<>
-
- {donasi.map((e, i) => (
- {
- router.push(path + `${e.id}`);
- }}
- >
-
-
-
-
-
-
-
-
-
-
-
-
-
- {e.title}
-
-
+ {_.isEmpty(dataDonasi) ? (
+
+ ) : (
+
+ {donasi.map((e, i) => (
+ {
+ router.push(path + `${e.id}`);
+ }}
+ >
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {e.title}
+
+
+
+
+
+ Terkumpul
+
+
+
+
-
-
- Terkumpul
-
-
-
-
-
-
-
- {width > 575 ? "" : }
-
-
- ))}
-
+
+
+ {width > 575 ? "" : }
+
+
+ ))}
+
+ )}
>
);
}
diff --git a/src/app_modules/donasi/component/detail_galang_dana/detail_data_donasi.tsx b/src/app_modules/donasi/component/detail_galang_dana/detail_data_donasi.tsx
index 13de26c9..7876a7c8 100644
--- a/src/app_modules/donasi/component/detail_galang_dana/detail_data_donasi.tsx
+++ b/src/app_modules/donasi/component/detail_galang_dana/detail_data_donasi.tsx
@@ -14,25 +14,25 @@ import {
} from "@mantine/core";
import TampilanRupiahDonasi from "../tampilan_rupiah";
-export default function ComponentDonasi_DetailDataGalangDana({ donasi }: { donasi: MODEL_DONASI }) {
+export default function ComponentDonasi_DetailDataGalangDana({
+ donasi,
+}: {
+ donasi: MODEL_DONASI;
+}) {
const router = useRouter();
return (
<>
-
+
-
-
-
-
-
+
+ {/*
+ */}
{donasi.title}
-
- Durasi: {donasi.DonasiMaster_Durasi.name} hari
-
+ Durasi: {donasi.DonasiMaster_Durasi.name} hari
diff --git a/src/app_modules/donasi/component/detail_main/cerita_penggalang.tsx b/src/app_modules/donasi/component/detail_main/cerita_penggalang.tsx
index 4363a543..e285b8d3 100644
--- a/src/app_modules/donasi/component/detail_main/cerita_penggalang.tsx
+++ b/src/app_modules/donasi/component/detail_main/cerita_penggalang.tsx
@@ -6,6 +6,7 @@ import { RouterDonasi } from "@/app/lib/router_hipmi/router_donasi";
import { Stack, Title, Paper, Group, ActionIcon, Text } from "@mantine/core";
import { IconCircleChevronRight } from "@tabler/icons-react";
import moment from "moment";
+import { useState } from "react";
export default function ComponentDonasi_CeritaPenggalangMain({
donasi,
@@ -13,6 +14,7 @@ export default function ComponentDonasi_CeritaPenggalangMain({
donasi: MODEL_DONASI;
}) {
const router = useRouter();
+ const [isLoading, setLoading] = useState(false);
return (
<>
@@ -20,12 +22,18 @@ export default function ComponentDonasi_CeritaPenggalangMain({
- {moment(donasi.createdAt).format("ll")}
+
+ {new Intl.DateTimeFormat("id-ID", { dateStyle: "full" }).format(
+ donasi.createdAt
+ )}
+
- router.push(RouterDonasi.cerita_penggalang + `${donasi.id}`)
- }
+ onClick={() => {
+ setLoading(true);
+ router.push(RouterDonasi.cerita_penggalang + `${donasi.id}`);
+ }}
>
diff --git a/src/app_modules/donasi/component/detail_main/detail_data_donasi.tsx b/src/app_modules/donasi/component/detail_main/detail_data_donasi.tsx
index 292c4f80..c274c661 100644
--- a/src/app_modules/donasi/component/detail_main/detail_data_donasi.tsx
+++ b/src/app_modules/donasi/component/detail_main/detail_data_donasi.tsx
@@ -14,6 +14,8 @@ import {
Divider,
Image,
Text,
+ Center,
+ Loader,
} from "@mantine/core";
import {
IconClover,
@@ -26,6 +28,8 @@ import { AppRouterInstance } from "next/dist/shared/lib/app-router-context.share
import { NotifPeringatan } from "../notifikasi/notif_peringatan";
import { NotifBerhasil } from "../notifikasi/notif_berhasil";
import { Donasi_findDonaturByTokenId } from "../../fun/get/get_donatur_by_token_id";
+import { useState } from "react";
+import ComponentGlobal_CardLoadingOverlay from "@/app_modules/component_global/loading_card";
export function ComponentDonasi_DetailDataMain({
donasi,
@@ -37,19 +41,28 @@ export function ComponentDonasi_DetailDataMain({
userLoginId?: string | any;
}) {
const router = useRouter();
+ const [isLoadingDonatur, setLoadingDonatur] = useState(false);
+ const [isLoadingKabar, setLoadingKabar] = useState(false);
+ const [isLoadingPencairan, setLoadingPencairan] = useState(false);
+
return (
<>
-
+
-
+
+
+
+ {/*
-
-
-
+ */}
+
{donasi.title}
router.push(RouterDonasi.donatur + `${donasi.id}`)}
+ onClick={() => {
+ setLoadingDonatur(true);
+ router.push(RouterDonasi.donatur + `${donasi.id}`);
+ }}
>
-
+ {isLoadingDonatur ? (
+
+ ) : (
+
+ )}
+
{countDonatur}
@@ -99,20 +120,34 @@ export function ComponentDonasi_DetailDataMain({
router.push(RouterDonasi.kabar + `${donasi.id}`)}
+ onClick={() => {
+ setLoadingKabar(true);
+ router.push(RouterDonasi.kabar + `${donasi.id}`);
+ }}
>
-
+ {isLoadingKabar ? (
+
+ ) : (
+
+ )}
Kabar Terbaru
onPencairanDana(router, donasi, userLoginId)}
+ onClick={() => {
+ setLoadingPencairan(true);
+ onPencairanDana(router, donasi, userLoginId);
+ }}
>
-
+ {isLoadingPencairan ? (
+
+ ) : (
+
+ )}
Pencairan Dana
@@ -132,10 +167,10 @@ async function onPencairanDana(
// console.log(donasi.authorId)
const cek = await Donasi_findDonaturByTokenId(donasi.id, userLoginId);
- if(userLoginId == donasi.authorId)
- return router.push(RouterDonasi.pencairan_dana + `${donasi.id}`);
+ if (userLoginId == donasi.authorId)
+ return router.push(RouterDonasi.pencairan_dana + `${donasi.id}`);
- if (!cek ) return NotifPeringatan("Halaman khusus donatur");
+ if (!cek) return NotifPeringatan("Halaman khusus donatur");
router.push(RouterDonasi.pencairan_dana + `${donasi.id}`);
// if (userLoginId != donasi.authorId)
diff --git a/src/app_modules/donasi/component/detail_main/informasi_penggalang.tsx b/src/app_modules/donasi/component/detail_main/informasi_penggalang.tsx
index ab07e72a..4e088959 100644
--- a/src/app_modules/donasi/component/detail_main/informasi_penggalang.tsx
+++ b/src/app_modules/donasi/component/detail_main/informasi_penggalang.tsx
@@ -1,50 +1,68 @@
-"use client"
+"use client";
import { RouterDonasi } from "@/app/lib/router_hipmi/router_donasi";
import { MODEL_USER } from "@/app_modules/home/model/interface";
-import { Stack, Title, Paper, Group, ActionIcon, Avatar, Text } from "@mantine/core";
+import {
+ Stack,
+ Title,
+ Paper,
+ Group,
+ ActionIcon,
+ Avatar,
+ Text,
+} from "@mantine/core";
import { IconCircleChevronRight } from "@tabler/icons-react";
import _ from "lodash";
import { useRouter } from "next/navigation";
import ComponentDonasi_NotedBox from "../noted_box";
+import { useState } from "react";
-export default function ComponentDonasi_InformasiPenggalangMain({ author }: { author: MODEL_USER}) {
- const router = useRouter();
- return (
- <>
+export default function ComponentDonasi_InformasiPenggalangMain({
+ author,
+}: {
+ author: MODEL_USER;
+}) {
+ const router = useRouter();
+ const [isLoading, setLoading] = useState(false);
+ return (
+ <>
{/* {JSON.stringify(author, null, 2)} */}
-
- Informasi Penggalang Dana
-
-
-
- Penggalang Dana
- router.push(RouterDonasi.penggalang_dana + `${author.id}`)}
- >
-
-
-
-
-
- {(() => {
- const usr = author.username;
- const splt = usr.split("");
- const Up = _.upperCase(splt[0]);
-
- return Up;
- })()}
-
- {author.username}
-
-
+ Informasi Penggalang Dana
+
+
+
+ Penggalang Dana
+ {
+ setLoading(true);
+ router.push(RouterDonasi.penggalang_dana + `${author.id}`);
+ }}
+ >
+
+
+
+
+
+ {(() => {
+ const usr = author.username;
+ const splt = usr.split("");
+ const Up = _.upperCase(splt[0]);
+
+ return Up;
+ })()}
+
+ {author.username}
+
+
-
-
-
- >
- );
- }
\ No newline at end of file
+ />
+
+
+
+ >
+ );
+}
diff --git a/src/app_modules/donasi/component/footer_button_donasi.tsx b/src/app_modules/donasi/component/footer_button_donasi.tsx
index 54727435..a55d4fa5 100644
--- a/src/app_modules/donasi/component/footer_button_donasi.tsx
+++ b/src/app_modules/donasi/component/footer_button_donasi.tsx
@@ -4,9 +4,11 @@ import { Footer, Center, Button } from "@mantine/core";
import { useAtom } from "jotai";
import { useRouter } from "next/navigation";
import { gs_proses_donasi } from "../global_state";
+import { useState } from "react";
export default function ButtonDonasi({ donasiId }: { donasiId: string }) {
const router = useRouter();
+ const [isLoading, setLoading] = useState(false);
const [prosesDonasi, setProsesDonasi] = useAtom(gs_proses_donasi);
async function onClick() {
@@ -16,6 +18,7 @@ export default function ButtonDonasi({ donasiId }: { donasiId: string }) {
nominal: "",
norek: "",
});
+ setLoading(true);
router.push(RouterDonasi.masukan_donasi + `${donasiId}`);
}
@@ -23,7 +26,13 @@ export default function ButtonDonasi({ donasiId }: { donasiId: string }) {
<>
-
diff --git a/src/app_modules/donasi/create/create_donasi.tsx b/src/app_modules/donasi/create/create_donasi.tsx
index 1f2c739b..c44d2974 100644
--- a/src/app_modules/donasi/create/create_donasi.tsx
+++ b/src/app_modules/donasi/create/create_donasi.tsx
@@ -29,6 +29,11 @@ import toast from "react-simple-toasts";
import _ from "lodash";
import { notifications } from "@mantine/notifications";
import { NotifPeringatan } from "../component/notifikasi/notif_peringatan";
+import {
+ ComponentGlobal_WarningMaxUpload,
+ maksimalUploadFile,
+} from "@/app_modules/component_global/variabel_global";
+import { gs_donasi_tabs_posting } from "../global_state";
export default function CreateDonasi({
masterKategori,
@@ -38,6 +43,8 @@ export default function CreateDonasi({
masterDurasi: MODEL_DONASI_ALL_MASTER[];
}) {
const router = useRouter();
+ const [isLoading, setLoading] = useState(false);
+
const [kategori, setKategori] = useState(masterKategori);
const [durasi, setDurasi] = useState(masterDurasi);
const [create, setCreate] = useState({
@@ -46,15 +53,19 @@ export default function CreateDonasi({
target: "",
durasiId: "",
});
+ const [targetDana, setTargetDana] = useState("");
const [file, setFile] = useState(null);
const [imageDonasi, setImageDonasi] = useState();
+ const [tabsPostingDonasi, setTabsPostingDonasi] = useAtom(
+ gs_donasi_tabs_posting
+ );
async function onCreate() {
const body = {
donasiMaster_KategoriId: create.kategoriId,
donasiMaster_DurasiId: create.durasiId,
title: create.title,
- target: create.target,
+ target: targetDana,
};
if (_.values(body).includes("")) return NotifPeringatan("Lengkapin Data");
@@ -65,6 +76,8 @@ export default function CreateDonasi({
await Donasi_funCreateTemporary(body as any, gambar).then((res) => {
if (res.status === 201) {
+ setLoading(true);
+ setTabsPostingDonasi("Review");
router.push(RouterDonasi.create_cerita_penggalang + `${res.donasiId}`);
} else {
toast(res.message);
@@ -97,18 +110,40 @@ export default function CreateDonasi({
withAsterisk
label="Judul Donasi"
placeholder="Contoh: Renovasi Masjid pada kampung, dll"
- onChange={(val) =>
- setCreate({ ...create, title: val.target.value })
- }
+ maxLength={100}
+ onChange={(val) => {
+ setCreate({ ...create, title: val.target.value });
+ }}
/>
Rp.}
+ min={0}
withAsterisk
label="Target Dana"
- placeholder="Masukan nominal angka"
- onChange={(val) =>
- setCreate({ ...create, target: val.target.value })
- }
+ placeholder="0"
+ value={create.target}
+ onChange={(val) => {
+ // console.log(val.currentTarget.value, "nilai");
+ const match = val.currentTarget.value
+ .replace(/\./g, "")
+ .match(/^[0-9]+$/);
+
+ if (val.currentTarget.value === "")
+ return setCreate({
+ ...create,
+ target: 0 + "",
+ });
+ if (!match?.[0]) return null;
+
+ const nilai = val.currentTarget.value.replace(/\./g, "");
+ const target = Intl.NumberFormat("id-ID").format(+nilai);
+
+ setTargetDana(nilai);
+ setCreate({
+ ...create,
+ target,
+ });
+ }}
/>
- onCreate()}>
+ onCreate()}
+ >
Selanjutnya
diff --git a/src/app_modules/donasi/detail/detail_draft/layout.tsx b/src/app_modules/donasi/detail/detail_draft/layout.tsx
index 8d586d60..9d42ade5 100644
--- a/src/app_modules/donasi/detail/detail_draft/layout.tsx
+++ b/src/app_modules/donasi/detail/detail_draft/layout.tsx
@@ -11,7 +11,7 @@ import {
Stack,
Title,
} from "@mantine/core";
-import React from "react";
+import React, { useState } from "react";
import ComponentDonasi_HeaderTamplate from "../../component/header_tamplate";
import {
IconChevronLeft,
@@ -28,13 +28,17 @@ import AppComponentGlobal_LayoutTamplate from "@/app_modules/component_global/co
export default function LayoutDetailDraftDonasi({
children,
- donasiId
+ donasiId,
}: {
children: React.ReactNode;
- donasiId: string
+ donasiId: string;
}) {
const [opened, { open, close }] = useDisclosure(false);
const router = useRouter();
+ const [isLoadingDonasi, setLoadingDonasi] = useState(false);
+ const [isLoadingCerita, setLoadingCerita] = useState(false);
+ const [isLoadingRekening, setLoadingRekening] = useState(false);
+
return (
<>
router.push(RouterDonasi.edit_donasi + `${donasiId}`)}
+ onClick={() => {
+ setLoadingDonasi(true);
+ router.push(RouterDonasi.edit_donasi + `${donasiId}`);
+ }}
>
Edit Donasi
router.push(RouterDonasi.edit_cerita_penggalang + `${donasiId}`)}
+ onClick={() => {
+ setLoadingCerita(true);
+ router.push(RouterDonasi.edit_cerita_penggalang + `${donasiId}`);
+ }}
>
Edit Cerita
router.push(RouterDonasi.edit_rekening + `${donasiId}`)}
+ onClick={() => {
+ setLoadingRekening(true);
+ router.push(RouterDonasi.edit_rekening + `${donasiId}`);
+ }}
>
Edit Rekening
diff --git a/src/app_modules/donasi/detail/detail_main/cerita_penggalang/index.tsx b/src/app_modules/donasi/detail/detail_main/cerita_penggalang/index.tsx
index e9c6681a..dc75ac58 100644
--- a/src/app_modules/donasi/detail/detail_main/cerita_penggalang/index.tsx
+++ b/src/app_modules/donasi/detail/detail_main/cerita_penggalang/index.tsx
@@ -15,11 +15,16 @@ export default function CeritaPenggalangDonasi({
return (
<>
{/* {JSON.stringify(data.imageCeritaDonasi, null, 2)} */}
-
- {moment(data.createdAt).format("ll")}
+
+
+ {new Intl.DateTimeFormat("id-ID", { dateStyle: "full" }).format(
+ data.createdAt
+ )}
+
#HaloOrangBaik
{data.pembukaan}
diff --git a/src/app_modules/donasi/detail/detail_main/donatur/index.tsx b/src/app_modules/donasi/detail/detail_main/donatur/index.tsx
index 1244f3b2..ce6c0a49 100644
--- a/src/app_modules/donasi/detail/detail_main/donatur/index.tsx
+++ b/src/app_modules/donasi/detail/detail_main/donatur/index.tsx
@@ -1,5 +1,6 @@
"use client";
+import ComponentDonasi_IsEmptyData from "@/app_modules/donasi/component/is_empty_data";
import TampilanRupiahDonasi from "@/app_modules/donasi/component/tampilan_rupiah";
import { MODEL_DONASI_INVOICE } from "@/app_modules/donasi/model/interface";
import {
@@ -14,12 +15,18 @@ import {
Title,
} from "@mantine/core";
import { IconMoodSmile, IconMoodSmileBeam } from "@tabler/icons-react";
-import { size } from "lodash";
+import _, { size } from "lodash";
import moment from "moment";
import { useState } from "react";
-export default function DonaturDonasi({listDonatur}: {listDonatur: MODEL_DONASI_INVOICE[]}) {
- const [donatur, setDonatur] = useState(listDonatur)
+export default function DonaturDonasi({
+ listDonatur,
+}: {
+ listDonatur: MODEL_DONASI_INVOICE[];
+}) {
+ const [donatur, setDonatur] = useState(listDonatur);
+ if (_.isEmpty(donatur)) return ;
+
return (
<>
- {donatur
- .map((e, i) => (
-
-
-
-
- {/* */}
-
-
-
-
-
- {e.Author.username}
-
- Berdonasi sebesar
-
-
-
-
- {moment(e.createdAt).format("ll")}
-
-
-
-
- ))}
+ {donatur.map((e, i) => (
+
+
+
+
+ {/* */}
+
+
+
+
+
+ {e.Author.username}
+
+ Berdonasi sebesar
+
+
+
+
+ {moment(e.createdAt).format("ll")}
+
+
+
+
+ ))}
>
);
diff --git a/src/app_modules/donasi/detail/detail_main/kabar/index.tsx b/src/app_modules/donasi/detail/detail_main/kabar/index.tsx
index b954ee16..0ccddd11 100644
--- a/src/app_modules/donasi/detail/detail_main/kabar/index.tsx
+++ b/src/app_modules/donasi/detail/detail_main/kabar/index.tsx
@@ -2,6 +2,7 @@
import { RouterDonasi } from "@/app/lib/router_hipmi/router_donasi";
import ComponentDonasi_ListKabar from "@/app_modules/donasi/component/detail_main/list_kabar";
+import ComponentDonasi_IsEmptyData from "@/app_modules/donasi/component/is_empty_data";
import { MODEL_DONASI_KABAR } from "@/app_modules/donasi/model/interface";
import {
ActionIcon,
@@ -16,6 +17,7 @@ import {
Title,
} from "@mantine/core";
import { IconCircleChevronRight } from "@tabler/icons-react";
+import _ from "lodash";
import moment from "moment";
import { useRouter } from "next/navigation";
import { useState } from "react";
@@ -27,6 +29,9 @@ export default function KabarDonasi({
}) {
const router = useRouter();
const [kabar, setKabar] = useState(listKabar);
+
+ if (_.isEmpty(kabar)) return ;
+
return (
<>
{kabar.map((e, i) => (
-
-
-
+
+
+
))}
>
diff --git a/src/app_modules/donasi/detail/detail_main/penggalang_dana/index.tsx b/src/app_modules/donasi/detail/detail_main/penggalang_dana/index.tsx
index f54cf318..257902f3 100644
--- a/src/app_modules/donasi/detail/detail_main/penggalang_dana/index.tsx
+++ b/src/app_modules/donasi/detail/detail_main/penggalang_dana/index.tsx
@@ -1,6 +1,7 @@
"use client";
import { RouterDonasi } from "@/app/lib/router_hipmi/router_donasi";
+import { RouterProfile } from "@/app/lib/router_hipmi/router_katalog";
import ComponentDonasi_BoxPublish from "@/app_modules/donasi/component/box_publish";
import TampilanRupiahDonasi from "@/app_modules/donasi/component/tampilan_rupiah";
import {
@@ -45,7 +46,7 @@ export default function PenggalangDanaDonasi({
return (
<>
-
+
+ {/* {JSON.stringify(value, null, 2)} */}
diff --git a/src/app_modules/donasi/detail/detail_review/index.tsx b/src/app_modules/donasi/detail/detail_review/index.tsx
index afb020f0..0e646828 100644
--- a/src/app_modules/donasi/detail/detail_review/index.tsx
+++ b/src/app_modules/donasi/detail/detail_review/index.tsx
@@ -42,6 +42,7 @@ export default function DetailReviewDonasi({
dataDonasi: MODEL_DONASI;
}) {
const [donasi, setDonasi] = useState(dataDonasi);
+
return (
<>
@@ -54,6 +55,7 @@ export default function DetailReviewDonasi({
}
function ButtonBatalReview({ donasi }: { donasi: MODEL_DONASI }) {
const router = useRouter();
+ const [isLoading, setLoading] = useState(false);
const [tabsPostingDonasi, setTabsPostingDonasi] = useAtom(
gs_donasi_tabs_posting
);
@@ -61,9 +63,10 @@ function ButtonBatalReview({ donasi }: { donasi: MODEL_DONASI }) {
async function onCLick() {
await Donasi_funGantiStatus(donasi.id, "3").then((res) => {
if (res.status === 200) {
- router.push(RouterDonasi.main_galang_dana);
setTabsPostingDonasi("Draft");
NotifBerhasil("Berhasil Dibatalkan");
+ setLoading(true);
+ router.push(RouterDonasi.main_galang_dana);
} else {
NotifPeringatan(res.message);
}
@@ -71,11 +74,19 @@ function ButtonBatalReview({ donasi }: { donasi: MODEL_DONASI }) {
}
return (
<>
- onCLick()}>
+ onCLick()}
+ >
Batalkan Review
>
);
}
-
-
diff --git a/src/app_modules/donasi/edit/edit_cerita_penggalang/index.tsx b/src/app_modules/donasi/edit/edit_cerita_penggalang/index.tsx
index d43a789e..60324962 100644
--- a/src/app_modules/donasi/edit/edit_cerita_penggalang/index.tsx
+++ b/src/app_modules/donasi/edit/edit_cerita_penggalang/index.tsx
@@ -22,6 +22,11 @@ import { NotifPeringatan } from "../../component/notifikasi/notif_peringatan";
import _ from "lodash";
import { Donasi_funUpdateCerita } from "../../fun/update/fun_update_cerita_donasi";
import { NotifBerhasil } from "../../component/notifikasi/notif_berhasil";
+import {
+ ComponentGlobal_WarningMaxUpload,
+ maksimalUploadFile,
+} from "@/app_modules/component_global/variabel_global";
+import ComponentGlobal_ErrorInput from "@/app_modules/component_global/error_input";
export default function EditCeritaPenggalangDonasi({
dataCerita,
@@ -29,6 +34,8 @@ export default function EditCeritaPenggalangDonasi({
dataCerita: MODEL_CERITA_DONASI;
}) {
const router = useRouter();
+ const [isLoading, setLoading] = useState(false);
+
const [tabsPostingDonasi, setTabsPostingDonasi] = useAtom(
gs_donasi_tabs_posting
);
@@ -48,6 +55,13 @@ export default function EditCeritaPenggalangDonasi({
label="Pembukaan"
placeholder="Pembuka dari isi cerita"
value={value.pembukaan}
+ error={
+ value.pembukaan === "" ? (
+
+ ) : (
+ ""
+ )
+ }
onChange={(val) =>
setValue({
...value,
@@ -64,8 +78,13 @@ export default function EditCeritaPenggalangDonasi({
const buffer = URL.createObjectURL(
new Blob([new Uint8Array(await files.arrayBuffer())])
);
- setUpdateImage(buffer);
- setFile(files);
+
+ if (files.size > maksimalUploadFile) {
+ ComponentGlobal_WarningMaxUpload({});
+ } else {
+ setUpdateImage(buffer);
+ setFile(files);
+ }
} catch (error) {
console.log(error);
}
@@ -74,6 +93,7 @@ export default function EditCeritaPenggalangDonasi({
>
{(props) => (
+ ) : (
+ ""
+ )
+ }
onChange={(val) =>
setValue({
...value,
@@ -117,6 +144,14 @@ export default function EditCeritaPenggalangDonasi({
/>
onUpdate(router, value, file as any)}
@@ -139,14 +174,14 @@ async function onUpdate(
id: value.id,
pembukaan: value.pembukaan,
cerita: value.cerita,
- imagesId: value.imageCeritaDonasi.id
+ imagesId: value.imageCeritaDonasi.id,
};
const gambar = new FormData();
gambar.append("file", file as any);
if (_.values(body).includes("")) return NotifPeringatan("Lengkapi Data");
- await Donasi_funUpdateCerita(body as any,gambar).then((res) => {
+ await Donasi_funUpdateCerita(body as any, gambar).then((res) => {
if (res.status === 200) {
NotifBerhasil(res.message);
router.back();
diff --git a/src/app_modules/donasi/edit/edit_donasi/index.tsx b/src/app_modules/donasi/edit/edit_donasi/index.tsx
index ddbab2ce..be3e595c 100644
--- a/src/app_modules/donasi/edit/edit_donasi/index.tsx
+++ b/src/app_modules/donasi/edit/edit_donasi/index.tsx
@@ -14,6 +14,7 @@ import {
Modal,
Group,
Title,
+ Text,
} from "@mantine/core";
import { IconCamera } from "@tabler/icons-react";
import { useAtom } from "jotai";
@@ -28,6 +29,11 @@ import { NotifBerhasil } from "../../component/notifikasi/notif_berhasil";
import { NotifPeringatan } from "../../component/notifikasi/notif_peringatan";
import _ from "lodash";
import { Donasi_getOneById } from "../../fun/get/get_one_donasi_by_id";
+import {
+ ComponentGlobal_WarningMaxUpload,
+ maksimalUploadFile,
+} from "@/app_modules/component_global/variabel_global";
+import ComponentGlobal_ErrorInput from "@/app_modules/component_global/error_input";
export default function EditDonasi({
dataDonasi,
@@ -39,6 +45,8 @@ export default function EditDonasi({
masterDurasi: MODEL_DONASI_ALL_MASTER[];
}) {
const router = useRouter();
+ const [isLoading, setLoading] = useState(false);
+
const [tabsPostingDonasi, setTabsPostingDonasi] = useAtom(
gs_donasi_tabs_posting
);
@@ -91,10 +99,13 @@ export default function EditDonasi({
const buffer = URL.createObjectURL(
new Blob([new Uint8Array(await files.arrayBuffer())])
);
- // console.log(buffer, "ini buffer");
- // console.log(files, " ini file");
- setUpdateImage(buffer);
- setFile(files);
+
+ if (files.size > maksimalUploadFile) {
+ ComponentGlobal_WarningMaxUpload({});
+ } else {
+ setUpdateImage(buffer);
+ setFile(files);
+ }
} catch (error) {
console.log(error);
}
@@ -103,11 +114,12 @@ export default function EditDonasi({
>
{(props) => (
}
+ w={150}
>
Upload
@@ -121,6 +133,14 @@ export default function EditDonasi({
label="Judul Donasi"
placeholder="Contoh: Renovasi Masjid pada kampung, dll"
value={value.title}
+ maxLength={100}
+ error={
+ value.title === "" ? (
+
+ ) : (
+ ""
+ )
+ }
onChange={(val) =>
setValue({
...value,
@@ -129,17 +149,39 @@ export default function EditDonasi({
}
/>
Rp.}
+ min={0}
withAsterisk
label="Target Dana"
- placeholder="Masukan nominal angka"
- value={+value.target ? +value.target : ""}
- onChange={(val) =>
+ placeholder="0"
+ value={value.target}
+ error={
+ value.target === "" || value.target === "0" ? (
+
+ ) : (
+ ""
+ )
+ }
+ onChange={(val) => {
+ const match = val.currentTarget.value
+ .replace(/\./g, "")
+ .match(/^[0-9]+$/);
+
+ if (val.currentTarget.value === "")
+ return setValue({
+ ...value,
+ target: 0 + "",
+ });
+ if (!match?.[0]) return null;
+
+ const nilai = val.currentTarget.value.replace(/\./g, "");
+ const target = Intl.NumberFormat("id-ID").format(+nilai);
+
setValue({
...value,
- target: val.target.value,
- })
- }
+ target: target,
+ });
+ }}
/>
{
@@ -169,29 +217,11 @@ export default function EditDonasi({
>
Update
- {/*
-
- */}
>
);
}
-// function ModalEdit() {
-// return (
-// <>
-//
-// Anda yakin menyimpan data ini ?
-//
-// Batal
-// Simpan
-//
-//
-
-// >
-// );
-// }
-
async function onUpdate(value: MODEL_DONASI, file: FormData, router: any) {
const body = {
id: value.id,
diff --git a/src/app_modules/donasi/edit/edit_rekening/index.tsx b/src/app_modules/donasi/edit/edit_rekening/index.tsx
index 23261bc4..d1217060 100644
--- a/src/app_modules/donasi/edit/edit_rekening/index.tsx
+++ b/src/app_modules/donasi/edit/edit_rekening/index.tsx
@@ -9,6 +9,7 @@ import { AppRouterInstance } from "next/dist/shared/lib/app-router-context.share
import { Donasi_funUpdateRekening } from "../../fun/update/fun_update_rekening";
import { NotifBerhasil } from "../../component/notifikasi/notif_berhasil";
import { NotifGagal } from "../../component/notifikasi/notif_gagal";
+import ComponentGlobal_ErrorInput from "@/app_modules/component_global/error_input";
export default function Donasi_EditRekening({
dataDonasi,
@@ -17,6 +18,7 @@ export default function Donasi_EditRekening({
}) {
const router = useRouter();
const [donasi, setDonasi] = useState(dataDonasi);
+ const [isLoading, setLoading] = useState(false);
return (
<>
@@ -27,6 +29,13 @@ export default function Donasi_EditRekening({
label="Nama Bank"
placeholder="Masukan Nama Bank"
value={donasi.namaBank}
+ error={
+ donasi.namaBank === "" ? (
+
+ ) : (
+ ""
+ )
+ }
onChange={(val) =>
setDonasi({
...donasi,
@@ -36,18 +45,37 @@ export default function Donasi_EditRekening({
/>
+ ) : (
+ ""
+ )
+ }
onChange={(val) =>
setDonasi({
...donasi,
- rekening: val.target.value,
+ rekening: val.currentTarget.value,
})
}
/>
- onUpdate(router, donasi)}>
+ onUpdate(router, donasi, setLoading)}
+ >
Update
@@ -55,9 +83,14 @@ export default function Donasi_EditRekening({
);
}
-async function onUpdate(router: AppRouterInstance, donasi: MODEL_DONASI) {
+async function onUpdate(
+ router: AppRouterInstance,
+ donasi: MODEL_DONASI,
+ setLoading: any
+) {
await Donasi_funUpdateRekening(donasi).then((res) => {
if (res.status === 200) {
+ setLoading(true);
router.back();
NotifBerhasil(res.message);
} else {
diff --git a/src/app_modules/donasi/fun/get/get_author_by_id.ts b/src/app_modules/donasi/fun/get/get_author_by_id.ts
index e80c8f73..b5255361 100644
--- a/src/app_modules/donasi/fun/get/get_author_by_id.ts
+++ b/src/app_modules/donasi/fun/get/get_author_by_id.ts
@@ -12,6 +12,13 @@ export async function Donasi_getAuthorById(authorId: string) {
id: true,
username: true,
nomor: true,
+ Profile: {
+ select: {
+ id: true,
+ name: true,
+ imagesId: true,
+ },
+ },
Donasi: {
where: {
donasiMaster_StatusDonasiId: "1",
diff --git a/src/app_modules/donasi/fun/master/get_ketegori.ts b/src/app_modules/donasi/fun/master/get_ketegori.ts
index f40127c5..f1a4215d 100644
--- a/src/app_modules/donasi/fun/master/get_ketegori.ts
+++ b/src/app_modules/donasi/fun/master/get_ketegori.ts
@@ -3,6 +3,13 @@
import prisma from "@/app/lib/prisma";
export async function Donasi_getMasterKategori() {
- const data = await prisma.donasiMaster_Kategori.findMany({});
+ const data = await prisma.donasiMaster_Kategori.findMany({
+ orderBy: {
+ createdAt: "asc",
+ },
+ where: {
+ active: true,
+ },
+ });
return data;
}
diff --git a/src/app_modules/donasi/main/beranda.tsx b/src/app_modules/donasi/main/beranda.tsx
index 44f42ec5..ed999749 100644
--- a/src/app_modules/donasi/main/beranda.tsx
+++ b/src/app_modules/donasi/main/beranda.tsx
@@ -3,6 +3,8 @@
import { RouterDonasi } from "@/app/lib/router_hipmi/router_donasi";
import { Warna } from "@/app/lib/warna";
import {
+ ActionIcon,
+ Affix,
AspectRatio,
Avatar,
Badge,
@@ -21,22 +23,51 @@ import {
Stack,
Text,
Title,
+ rem,
} from "@mantine/core";
-import { useViewportSize } from "@mantine/hooks";
+import { useViewportSize, useWindowScroll } from "@mantine/hooks";
import { useRouter } from "next/navigation";
import { MODEL_DONASI } from "../model/interface";
import { useState } from "react";
import ComponentDonasi_BoxPublish from "../component/box_publish";
+import { RouterInvestasi } from "@/app/lib/router_hipmi/router_investasi";
+import { IconPencilPlus } from "@tabler/icons-react";
export default function MainDonasi({
listDonasi,
}: {
listDonasi: MODEL_DONASI[];
}) {
-
+ const router = useRouter();
+ const [isLoading, setLoading] = useState(false);
+ const [scroll, scrollTo] = useWindowScroll();
+
return (
<>
-
+
+ 0 ? 0.5 : ""}
+ style={{
+ transition: "0.5s",
+ }}
+ size={"xl"}
+ radius={"xl"}
+ variant="transparent"
+ bg={"orange"}
+ onClick={() => {
+ setLoading(true);
+ router.push(RouterDonasi.create_donasi);
+ }}
+ >
+
+
+
+
+
>
);
}
diff --git a/src/app_modules/donasi/main/donasi_saya.tsx b/src/app_modules/donasi/main/donasi_saya.tsx
index ec465d55..b288b90b 100644
--- a/src/app_modules/donasi/main/donasi_saya.tsx
+++ b/src/app_modules/donasi/main/donasi_saya.tsx
@@ -30,6 +30,7 @@ import moment from "moment";
import toast from "react-simple-toasts";
import { AppRouterInstance } from "next/dist/shared/lib/app-router-context.shared-runtime";
import _ from "lodash";
+import ComponentDonasi_IsEmptyData from "../component/is_empty_data";
export default function DonasiSayaDonasi({
listInvoice,
@@ -39,12 +40,10 @@ export default function DonasiSayaDonasi({
const [invoice, setInvoice] = useState(listInvoice);
const router = useRouter();
const { height, width } = useViewportSize();
- if (_.isEmpty(invoice))
- return (
- <>
- Belum Ada Donasi
- >
- );
+
+ if (_.isEmpty(listInvoice))
+ return ;
+
return (
<>
-
+ {/*
Galang Dana
-
+ */}
;
+
return (
<>
{listDraft.map((e, i) => (
- router.push(RouterDonasi.detail_draft + `${e.id}`)}>
+ router.push(RouterDonasi.detail_draft + `${e.id}`)}
+ >
diff --git a/src/app_modules/donasi/main/galang_dana/reject.tsx b/src/app_modules/donasi/main/galang_dana/reject.tsx
index a1643432..dbb3c2a3 100644
--- a/src/app_modules/donasi/main/galang_dana/reject.tsx
+++ b/src/app_modules/donasi/main/galang_dana/reject.tsx
@@ -21,6 +21,8 @@ import { useRouter } from "next/navigation";
import toast from "react-simple-toasts";
import { MODEL_DONASI } from "../../model/interface";
import { useState } from "react";
+import ComponentDonasi_IsEmptyData from "../../component/is_empty_data";
+import _ from "lodash";
export default function PostingRejectDonasi({
listReject,
@@ -29,7 +31,11 @@ export default function PostingRejectDonasi({
}) {
const { height, width } = useViewportSize();
const router = useRouter();
- const [donasi, setDonasi] = useState(listReject)
+ const [donasi, setDonasi] = useState(listReject);
+
+ if (_.isEmpty(listReject))
+ return ;
+
return (
<>
- {donasi
- .map((e, i) => (
- router.push(RouterDonasi.detail_reject + `${e.id}`)}
- >
-
-
-
-
-
-
-
-
-
-
-
-
- {e.title}
+ {donasi.map((e, i) => (
+ router.push(RouterDonasi.detail_reject + `${e.id}`)}
+ >
+
+
+
+
+
+
+
+
+
+
+
+
+ {e.title}
+
+
+
+ Alasan ditolak
+
+
+ {e.catatan}
-
-
- Alasan ditolak
-
-
- {e.catatan}
-
-
-
-
- {width > 575 ? "" : }
-
-
- ))}
+
+
+
+ {width > 575 ? "" : }
+
+
+ ))}
>
);
diff --git a/src/app_modules/donasi/main/galang_dana/review.tsx b/src/app_modules/donasi/main/galang_dana/review.tsx
index 079661fc..f5cd0b6d 100644
--- a/src/app_modules/donasi/main/galang_dana/review.tsx
+++ b/src/app_modules/donasi/main/galang_dana/review.tsx
@@ -22,6 +22,8 @@ import { useRouter } from "next/navigation";
import toast from "react-simple-toasts";
import { MODEL_DONASI } from "../../model/interface";
+import _ from "lodash";
+import ComponentDonasi_IsEmptyData from "../../component/is_empty_data";
export default function PostingReviewDonasi({
listReview,
@@ -30,6 +32,10 @@ export default function PostingReviewDonasi({
}) {
const { height, width } = useViewportSize();
const router = useRouter();
+
+ if (_.isEmpty(listReview))
+ return ;
+
return (
<>
{listReview.map((e, i) => (
- router.push(RouterDonasi.detail_review + `${e.id}`)}>
+ router.push(RouterDonasi.detail_review + `${e.id}`)}
+ >
diff --git a/src/app_modules/donasi/main/layout.tsx b/src/app_modules/donasi/main/layout.tsx
index 995bce8e..aac8150e 100644
--- a/src/app_modules/donasi/main/layout.tsx
+++ b/src/app_modules/donasi/main/layout.tsx
@@ -47,6 +47,9 @@ export default function LayoutDonasi({
}) {
const router = useRouter();
const [active, setActive] = useAtom(gs_donasi_hot_menu);
+ const [isLoading, setLoading] = useState(false);
+ const [isRightLoading, setRightLoading] = useState(false);
+
const listPage = [
{
id: 1,
@@ -74,16 +77,26 @@ export default function LayoutDonasi({
header={
- router.push(RouterCrowd.main)}>
+ {
+ setLoading(true);
+ router.push(RouterCrowd.main);
+ }}
+ >
Donasi
- router.push(RouterDonasi.notif_page + `${userId}`)
- }
+ onClick={() => {
+ setRightLoading(true);
+ router.push(RouterDonasi.notif_page + `${userId}`);
+ }}
>
{_.isEmpty(isRead) ? (
diff --git a/src/app_modules/donasi/main/notif/notif_page.tsx b/src/app_modules/donasi/main/notif/notif_page.tsx
index 2aa9922f..58ac4d57 100644
--- a/src/app_modules/donasi/main/notif/notif_page.tsx
+++ b/src/app_modules/donasi/main/notif/notif_page.tsx
@@ -19,6 +19,8 @@ import { AppRouterInstance } from "next/dist/shared/lib/app-router-context.share
import { Donasi_funUpdateNotifById } from "../../fun/update/fun_update_notif_by_user_id";
import { NotifGagal } from "../../component/notifikasi/notif_gagal";
import { useRouter } from "next/navigation";
+import _ from "lodash";
+import ComponentDonasi_IsEmptyData from "../../component/is_empty_data";
export default function Donasi_NotifPage({
dataNotif,
@@ -27,6 +29,11 @@ export default function Donasi_NotifPage({
}) {
const router = useRouter();
const [notif, setNotif] = useState(dataNotif);
+
+ if (_.isEmpty(dataNotif)) {
+ return ;
+ }
+
return (
<>
diff --git a/src/app_modules/donasi/proses_donasi/invoice/index.tsx b/src/app_modules/donasi/proses_donasi/invoice/index.tsx
index 5a7f51de..192dcf17 100644
--- a/src/app_modules/donasi/proses_donasi/invoice/index.tsx
+++ b/src/app_modules/donasi/proses_donasi/invoice/index.tsx
@@ -15,7 +15,7 @@ import {
Title,
} from "@mantine/core";
import { useAtom } from "jotai";
-import { gs_proses_donasi } from "../../global_state";
+import { gs_donasi_hot_menu, gs_proses_donasi } from "../../global_state";
import { MODEL_DONASI, MODEL_DONASI_INVOICE } from "../../model/interface";
import { useState } from "react";
import TampilanRupiahDonasi from "../../component/tampilan_rupiah";
@@ -39,6 +39,7 @@ export default function Donasi_InvoiceProses({
const router = useRouter();
const [file, setFile] = useState(null);
const [image, setImage] = useState(null);
+ const [active, setActive] = useAtom(gs_donasi_hot_menu);
return (
<>
@@ -174,38 +175,12 @@ export default function Donasi_InvoiceProses({
- {/*
-
- Detail donasi
-
-
-
- {invoice.Donasi.title}
-
-
- Kategori
-
- {invoice.Donasi.DonasiMaster_Ketegori.name}
-
-
-
-
-
-
-
-
- */}
-
{file !== null ? (
onClick(router, invoice.id)}
+ onClick={() => onClick(router, invoice.id, setActive)}
>
Saya Sudah Transfer
@@ -225,10 +200,15 @@ export default function Donasi_InvoiceProses({
);
}
-async function onClick(router: AppRouterInstance, invoiceId: string) {
+async function onClick(
+ router: AppRouterInstance,
+ invoiceId: string,
+ setActive: any
+) {
await Donasi_funUpdateStatusInvoice(invoiceId, "2").then((res) => {
if (res.status === 200) {
NotifBerhasil(res.message);
+ setActive(2);
router.push(RouterDonasi.proses_transaksi + `${invoiceId}`);
} else {
NotifGagal(res.message);
diff --git a/src/app_modules/donasi/proses_donasi/masukan_donasi/index.tsx b/src/app_modules/donasi/proses_donasi/masukan_donasi/index.tsx
index 37e46798..fbadea31 100644
--- a/src/app_modules/donasi/proses_donasi/masukan_donasi/index.tsx
+++ b/src/app_modules/donasi/proses_donasi/masukan_donasi/index.tsx
@@ -51,7 +51,9 @@ const listNominal = [
export default function MasukanDonasi({ donasiId }: { donasiId: string }) {
const router = useRouter();
- const [nominal, setNominal] = useState(0);
+ const [isLoading, setLoading] = useState(false);
+ const [nominal, setNominal] = useState("");
+ const [value, setValue] = useState(0);
const [prosesDonasi, setProsesDonasi] = useAtom(gs_proses_donasi);
async function onProses(nominal: number) {
@@ -62,6 +64,7 @@ export default function MasukanDonasi({ donasiId }: { donasiId: string }) {
...prosesDonasi,
nominal: "" + nominal,
});
+ setLoading(true);
router.push(RouterDonasi.metode_pembayaran + `${donasiId}`);
}
@@ -97,24 +100,40 @@ export default function MasukanDonasi({ donasiId }: { donasiId: string }) {
Nominal Lainnya
-
-
- Rp.
-
-
- setNominal(val)}
- />
-
-
+ Rp.}
+ placeholder="0"
+ min={0}
+ value={nominal}
+ onChange={(val) => {
+ const match = val.currentTarget.value
+ .replace(/\./g, "")
+ .match(/^[0-9]+$/);
+
+ if (val.currentTarget.value === "") return setNominal(0 + "");
+
+ if (!match?.[0]) return null;
+
+ const nilai = val.currentTarget.value.replace(/\./g, "");
+ const target = Intl.NumberFormat("id-ID").format(+nilai);
+
+ setValue(+nilai);
+ setNominal(target);
+ }}
+ />
Minimal Donasi Rp. 10.000
- onProses(nominal)}>
+ onProses(value)}
+ >
Lanjutan Pembayaran
diff --git a/src/app_modules/donasi/proses_donasi/metode_pembayaran/index.tsx b/src/app_modules/donasi/proses_donasi/metode_pembayaran/index.tsx
index 49ecd757..3066c59a 100644
--- a/src/app_modules/donasi/proses_donasi/metode_pembayaran/index.tsx
+++ b/src/app_modules/donasi/proses_donasi/metode_pembayaran/index.tsx
@@ -39,13 +39,14 @@ const listBank = [
export default function Donasi_MetodePembayaran({
listBank,
donasiId,
- authorId
+ authorId,
}: {
listBank: Model_Nama_Bank[];
donasiId: string;
- authorId: string
+ authorId: string;
}) {
const router = useRouter();
+ const [isLoading, setLoading] = useState(false);
const [prosesDonasi, setProsesDonasi] = useAtom(gs_proses_donasi);
const [pilihBank, setPilihBank] = useState("1");
const [bank, setBank] = useState(listBank);
@@ -55,13 +56,14 @@ export default function Donasi_MetodePembayaran({
donasiId: donasiId,
donasiMaster_BankId: pilihBank,
nominal: prosesDonasi.nominal,
- authorId: authorId
+ authorId: authorId,
};
// console.log(body)
await Donasi_funCreateInvoice(body).then((res) => {
if (res.status === 200) {
+ setLoading(true);
NotifBerhasil(res.message);
router.push(RouterDonasi.invoice + `${res.invoiceId}`);
setProsesDonasi({
@@ -94,7 +96,13 @@ export default function Donasi_MetodePembayaran({
))}
- onProses()}>
+ onProses()}
+ >
Pilih
diff --git a/src/app_modules/event/component/box_list_status.tsx b/src/app_modules/event/component/box_list_status.tsx
index a53c04d7..a3266584 100644
--- a/src/app_modules/event/component/box_list_status.tsx
+++ b/src/app_modules/event/component/box_list_status.tsx
@@ -1,10 +1,12 @@
"use client";
import { RouterEvent } from "@/app/lib/router_hipmi/router_event";
-import { Paper, Stack, Group, Title, Text, Grid } from "@mantine/core";
+import { Paper, Stack, Group, Title, Text, Grid, Card } from "@mantine/core";
import moment from "moment";
import { MODEL_EVENT } from "../model/interface";
import { useRouter } from "next/navigation";
+import { useState } from "react";
+import ComponentGlobal_CardLoadingOverlay from "@/app_modules/component_global/loading_card";
export default function ComponentEvent_BoxListStatus({
data,
@@ -14,15 +16,22 @@ export default function ComponentEvent_BoxListStatus({
path: string;
}) {
const router = useRouter();
+ const [eventId, setEventId] = useState("");
+ const [visible, setVisible] = useState(false);
+
return (
<>
- router.push(path + data.id)}
+ onClick={() => {
+ setEventId(data?.id);
+ setVisible(true);
+ router.push(path + data.id);
+ }}
>
@@ -42,7 +51,12 @@ export default function ComponentEvent_BoxListStatus({
{data.deskripsi}
-
+ {visible && eventId !== "" ? (
+
+ ) : (
+ ""
+ )}
+
>
);
}
diff --git a/src/app_modules/event/component/detail/detail_main.tsx b/src/app_modules/event/component/detail/detail_main.tsx
index 08d49828..004c8ac9 100644
--- a/src/app_modules/event/component/detail/detail_main.tsx
+++ b/src/app_modules/event/component/detail/detail_main.tsx
@@ -16,74 +16,73 @@ export default function ComponentEvent_DetailMainData({
const jam = tgl.toLocaleTimeString([], {
hour: "2-digit",
minute: "2-digit",
- hour12: false,
});
return (
<>
-
-
-
- {data ? data.title : null}
-
-
+
+
+
+ {data ? data.title : null}
+
+
+
+ Lokasi
+
+
+ :
+
+ {data ? data.lokasi : null}
+
+
+
+
+
+ Tipe Acara
+
+
+ :
+
+ {data ? data.EventMaster_TipeAcara.name : null}
+
+
+
+
+
+ Tanggal
+
+
+ :
+ {hari}
+
+
+
+
+ Jam
+
+
+ :
+ {jam}
+
+
- Lokasi
+ Deskripsi
-
- :
-
- {data ? data.lokasi : null}
-
-
-
-
-
- Tipe Acara
-
-
- :
-
- {data ? data.EventMaster_TipeAcara.name : null}
-
-
-
-
-
- Tanggal
-
-
- :
- {hari}
-
-
-
-
- Jam
-
-
- :
- {jam}
-
-
-
- Deskripsi
-
-
- {data ? data.deskripsi : null}
-
+
+ {data ? data.deskripsi : null}
+
+
-
>
);
diff --git a/src/app_modules/event/create/create.tsx b/src/app_modules/event/create/create.tsx
index 13d82d53..d3245d41 100644
--- a/src/app_modules/event/create/create.tsx
+++ b/src/app_modules/event/create/create.tsx
@@ -27,7 +27,7 @@ import { AppRouterInstance } from "next/dist/shared/lib/app-router-context.share
import { useRouter } from "next/navigation";
import { useState } from "react";
import { gs_event_hotMenu, gs_event_status } from "../global_state";
-import { MODEL_DEFAULT_MASTER } from "@/app_modules/model_global/interface";
+import { MODEL_DEFAULT_MASTER_OLD } from "@/app_modules/model_global/interface";
import { Event_funCreate } from "../fun/create/fun_create";
import { ComponentGlobal_NotifikasiGagal } from "@/app_modules/component_global/notif_global/notifikasi_gagal";
import { kMaxLength } from "buffer";
@@ -36,12 +36,13 @@ import toast from "react-simple-toasts";
import moment from "moment";
import { ComponentGlobal_NotifikasiPeringatan } from "@/app_modules/component_global/notif_global/notifikasi_peringatan";
import ComponentEvent_ErrorMaximalInput from "../component/error_maksimal_input";
+import ComponentGlobal_InputCountDown from "@/app_modules/component_global/input_countdown";
export default function Event_Create({
listTipeAcara,
authorId,
}: {
- listTipeAcara: MODEL_DEFAULT_MASTER[];
+ listTipeAcara: MODEL_DEFAULT_MASTER_OLD[];
authorId: string;
}) {
const router = useRouter();
@@ -69,13 +70,6 @@ export default function Event_Create({
placeholder="Masukan judul"
withAsterisk
maxLength={100}
- error={
- value.title.length >= 100 ? (
-
- ) : (
- ""
- )
- }
onChange={(val) => {
setValue({
...value,
@@ -104,13 +98,6 @@ export default function Event_Create({
placeholder="Masukan lokasi acara"
withAsterisk
maxLength={100}
- error={
- value.lokasi.length >= 100 ? (
-
- ) : (
- ""
- )
- }
onChange={(val) => {
setValue({
...value,
@@ -146,33 +133,38 @@ export default function Event_Create({
});
}}
/>
- | |