diff --git a/src/app/dev/admin/donasi/detail/review/[id]/page.tsx b/src/app/dev/admin/donasi/detail/review/[id]/page.tsx
index 4b8424f5..230bfefc 100644
--- a/src/app/dev/admin/donasi/detail/review/[id]/page.tsx
+++ b/src/app/dev/admin/donasi/detail/review/[id]/page.tsx
@@ -1,9 +1,8 @@
import { AdminDonasi_DetailReview } from "@/app_modules/admin/donasi";
import { AdminDonasi_getOneById } from "@/app_modules/admin/donasi/fun/get/get_one_by_id";
-export default async function Page({params}: {params: {id: string}}) {
- // console.log(params.id)
- const dataReview = await AdminDonasi_getOneById(params.id)
- // console.log(dataReview)
- return
-}
\ No newline at end of file
+export default async function Page({ params }: { params: { id: string } }) {
+ const dataReview = await AdminDonasi_getOneById(params.id);
+
+ return ;
+}
diff --git a/src/app/lib/global_state.ts b/src/app/lib/global_state.ts
index f359610f..59259c1c 100644
--- a/src/app/lib/global_state.ts
+++ b/src/app/lib/global_state.ts
@@ -1,16 +1,30 @@
import { atom } from "jotai";
-export type IRealtimeData = {
- status?:
- | "Publish"
- | "Review"
- | "Draft"
- | "Reject"
- // EVNET
- | "Peserta Event"
- // VOTING
- | "Voting Masuk";
+/**
+ * @param status | status jika perlu acc admin > "Publish", "Review", "Draft", "Reject"
+ * @param status | khusus kategori | EVENT > "Peserta Event" | VOTING > "Voting Masuk" | DONASI > "Berhasil", "Proses", "Menunggu", "Gagal"
+ */
+export type ITypeStatusNotifikasi =
+ | "Publish"
+ | "Review"
+ | "Draft"
+ | "Reject"
+ // EVENT
+ | "Peserta Event"
+ // VOTING
+ | "Voting Masuk"
+ // DONASI
+ | "Berhasil"
+ | "Proses"
+ | "Menunggu"
+ | "Gagal";
+/**
+ * @param kategoriApp | "JOB", "VOTING", "EVENT", "DONASI", "INVESTASI", "COLLABORATION", "FORUM"
+ * @type string
+ */
+export type IRealtimeData = {
+ status?: ITypeStatusNotifikasi;
appId: string;
userId: string;
pesan: string;
@@ -44,4 +58,4 @@ export const gs_votingTiggerBeranda = atom(false);
// donasi
export const gs_adminDonasi_triggerReview = atom(false);
-export const gs_donasiTriggerBeranda = atom(false);
\ No newline at end of file
+export const gs_donasiTriggerBeranda = atom(false);
diff --git a/src/app/lib/realtime_provider.tsx b/src/app/lib/realtime_provider.tsx
index 3661028e..6468a0a0 100644
--- a/src/app/lib/realtime_provider.tsx
+++ b/src/app/lib/realtime_provider.tsx
@@ -185,10 +185,18 @@ export default function RealtimeProvider({
data.dataMessage?.kategoriApp == "DONASI" &&
data.dataMessage.status == "Publish"
) {
- console.log("masuk trigger ");
setIsTriggerDonasiBeranda(true);
}
+ // if (
+ // data.type == "notification" &&
+ // data.pushNotificationTo == "ADMIN" &&
+ // data.dataMessage?.status == "Menunggu" &&
+ // userLoginId !== data.dataMessage?.userId
+ // ) {
+ // console.log("yes");
+ // }
+
// ---------------------- DONASI ------------------------- //
},
});
diff --git a/src/app_modules/admin/notifikasi/route_setting/donasi.ts b/src/app_modules/admin/notifikasi/route_setting/donasi.ts
index 527607a4..467184e4 100644
--- a/src/app_modules/admin/notifikasi/route_setting/donasi.ts
+++ b/src/app_modules/admin/notifikasi/route_setting/donasi.ts
@@ -10,10 +10,12 @@ import adminNotifikasi_funUpdateIsReadById from "../fun/update/fun_update_is_rea
import adminNotifikasi_countNotifikasi from "../fun/count/count_is_read";
import adminNotifikasi_getByUserId from "../fun/get/get_notifikasi_by_user_id";
import { ComponentAdminGlobal_NotifikasiPeringatan } from "../../_admin_global/admin_notifikasi/notifikasi_peringatan";
+import { ITypeStatusNotifikasi } from "@/app/lib/global_state";
export default async function adminNotifikasi_findRouterDonasi({
appId,
notifikasiId,
+ status,
router,
onLoadCountNotif,
onLoadDataNotifikasi,
@@ -21,6 +23,7 @@ export default async function adminNotifikasi_findRouterDonasi({
}: {
appId: string;
notifikasiId: string;
+ status: ITypeStatusNotifikasi;
router: AppRouterInstance;
onLoadCountNotif: (val: any) => void;
onLoadDataNotifikasi: (val: any) => void;
@@ -29,54 +32,69 @@ export default async function adminNotifikasi_findRouterDonasi({
childId: IAdmin_ActiveChildId;
}) => void;
}) {
- const check = await admin_funDonasiCheckStatus({ id: appId });
-
- if (check.status == 200) {
- const udpateReadNotifikasi = await adminNotifikasi_funUpdateIsReadById({
- notifId: notifikasiId,
+ if (
+ status == "Menunggu" ||
+ status == "Berhasil" ||
+ status == "Proses" ||
+ status == "Gagal"
+ ) {
+ const path = RouterAdminDonasi_OLD.detail_publish + appId;
+ router.push(path, { scroll: false });
+ onChangeNavbar({
+ id: "Donasi",
+ childId: "Donasi_2",
});
- if (udpateReadNotifikasi.status == 200) {
- const loadCountNotif = await adminNotifikasi_countNotifikasi();
- onLoadCountNotif(loadCountNotif);
-
- const loadListNotifikasi = await adminNotifikasi_getByUserId({
- page: 1,
+ return true;
+ } else {
+ const check = await admin_funDonasiCheckStatus({ id: appId });
+ if (check.status == 200) {
+ const udpateReadNotifikasi = await adminNotifikasi_funUpdateIsReadById({
+ notifId: notifikasiId,
});
- onLoadDataNotifikasi(loadListNotifikasi);
- const path = `/dev/admin/donasi/sub-menu/${check.statusName}`;
+ if (udpateReadNotifikasi.status == 200) {
+ const loadCountNotif = await adminNotifikasi_countNotifikasi();
+ onLoadCountNotif(loadCountNotif);
- if (check.statusName == "draft") {
- ComponentAdminGlobal_NotifikasiPeringatan(
- "Status telah dirubah oleh user"
- );
- } else {
- if (check.statusName == "publish") {
- onChangeNavbar({
- id: "Donasi",
- childId: "Donasi_2",
- });
+ const loadListNotifikasi = await adminNotifikasi_getByUserId({
+ page: 1,
+ });
+ onLoadDataNotifikasi(loadListNotifikasi);
+
+ const path = `/dev/admin/donasi/sub-menu/${check.statusName}`;
+
+ if (check.statusName == "draft") {
+ ComponentAdminGlobal_NotifikasiPeringatan(
+ "Status telah dirubah oleh user"
+ );
+ } else {
+ if (check.statusName == "publish") {
+ onChangeNavbar({
+ id: "Donasi",
+ childId: "Donasi_2",
+ });
+ }
+
+ if (check.statusName == "review") {
+ onChangeNavbar({
+ id: "Donasi",
+ childId: "Donasi_3",
+ });
+ }
+
+ if (check.statusName == "reject") {
+ onChangeNavbar({
+ id: "Donasi",
+ childId: "Donasi_4",
+ });
+ }
+
+ router.push(path, { scroll: false });
}
- if (check.statusName == "review") {
- onChangeNavbar({
- id: "Donasi",
- childId: "Donasi_3",
- });
- }
-
- if (check.statusName == "reject") {
- onChangeNavbar({
- id: "Donasi",
- childId: "Donasi_4",
- });
- }
-
- router.push(path, { scroll: false });
+ return true;
}
-
- return true;
} else {
ComponentAdminGlobal_NotifikasiPeringatan("Status tidak ditemukan");
return false;
diff --git a/src/app_modules/admin/notifikasi/view_card_drawer.tsx b/src/app_modules/admin/notifikasi/view_card_drawer.tsx
index 26406590..37120d27 100644
--- a/src/app_modules/admin/notifikasi/view_card_drawer.tsx
+++ b/src/app_modules/admin/notifikasi/view_card_drawer.tsx
@@ -3,6 +3,7 @@ import {
gs_adminEvent_triggerReview,
gs_adminJob_triggerReview,
gs_adminVoting_triggerReview,
+ ITypeStatusNotifikasi,
} from "@/app/lib/global_state";
import { AccentColor } from "@/app_modules/_global/color";
import { ComponentGlobal_CardLoadingOverlay } from "@/app_modules/_global/component";
@@ -169,6 +170,7 @@ export default function AdminNotifikasi_ViewCardDrawer({
appId: data.appId,
notifikasiId: data.id,
router: router,
+ status: data.status as ITypeStatusNotifikasi,
onLoadCountNotif(val) {
onLoadCountNotif(val);
},
diff --git a/src/app_modules/donasi/proses_donasi/invoice/index.tsx b/src/app_modules/donasi/proses_donasi/invoice/index.tsx
index 87532024..9ae48559 100644
--- a/src/app_modules/donasi/proses_donasi/invoice/index.tsx
+++ b/src/app_modules/donasi/proses_donasi/invoice/index.tsx
@@ -1,6 +1,7 @@
"use client";
import { DIRECTORY_ID } from "@/app/lib";
+import { IRealtimeData } from "@/app/lib/global_state";
import { RouterDonasi } from "@/app/lib/router_hipmi/router_donasi";
import {
AccentColor,
@@ -11,7 +12,6 @@ import { ComponentGlobal_NotifikasiPeringatan } from "@/app_modules/_global/noti
import { ComponentGlobal_NotifikasiBerhasil } from "@/app_modules/_global/notif_global/notifikasi_berhasil";
import { ComponentGlobal_NotifikasiGagal } from "@/app_modules/_global/notif_global/notifikasi_gagal";
import notifikasiToAdmin_funCreate from "@/app_modules/notifikasi/fun/create/create_notif_to_admin";
-import mqtt_client from "@/util/mqtt_client";
import {
Button,
Center,
@@ -28,6 +28,7 @@ import { IconCamera, IconCircleCheck } from "@tabler/icons-react";
import { useAtom } from "jotai";
import { useRouter } from "next/navigation";
import { useState } from "react";
+import { WibuRealtime } from "wibu-pkg";
import TampilanRupiahDonasi from "../../component/tampilan_rupiah";
import { Donasi_funUpdateStatusInvoice } from "../../fun/update/fun_update_status_invoice";
import { gs_donasi_hot_menu } from "../../global_state";
@@ -63,26 +64,34 @@ export default function Donasi_InvoiceProses({
fileId: uploadImage.data.id,
});
if (res.status === 200) {
- const dataNotif: any = {
+ // const dataNotif: any = {
+ // appId: res.data?.Donasi?.id as any,
+ // userId: res.data?.Donasi?.authorId as any,
+ // pesan: res.data?.Donasi?.title as any,
+ // status: res.data?.DonasiMaster_StatusInvoice?.name,
+ // kategoriApp: "DONASI",
+ // title: "Donatur melakukan transfer",
+ // };
+
+ const dataNotifikasi: IRealtimeData = {
appId: res.data?.Donasi?.id as any,
+ status: res.data?.DonasiMaster_StatusInvoice?.name as any,
userId: res.data?.Donasi?.authorId as any,
pesan: res.data?.Donasi?.title as any,
- status: res.data?.DonasiMaster_StatusInvoice?.name,
kategoriApp: "DONASI",
- title: "Donatur melakukan transfer",
+ title: "Donatur telah melakukan transfer",
};
const notif = await notifikasiToAdmin_funCreate({
- data: dataNotif as any,
+ data: dataNotifikasi as any,
});
if (notif.status === 201) {
- mqtt_client.publish(
- "ADMIN",
- JSON.stringify({
- count: 1,
- })
- );
+ WibuRealtime.setData({
+ type: "notification",
+ pushNotificationTo: "ADMIN",
+ });
+
ComponentGlobal_NotifikasiBerhasil(res.message);
setActive(2);
router.push(RouterDonasi.proses_transaksi + `${invoice.id}`);
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 ec621060..710dae87 100644
--- a/src/app_modules/donasi/proses_donasi/metode_pembayaran/index.tsx
+++ b/src/app_modules/donasi/proses_donasi/metode_pembayaran/index.tsx
@@ -1,5 +1,6 @@
"use client";
+import { IRealtimeData } from "@/app/lib/global_state";
import { RouterDonasi } from "@/app/lib/router_hipmi/router_donasi";
import {
AccentColor,
@@ -9,13 +10,13 @@ import { ComponentGlobal_NotifikasiBerhasil } from "@/app_modules/_global/notif_
import { ComponentGlobal_NotifikasiGagal } from "@/app_modules/_global/notif_global/notifikasi_gagal";
import { MODEL_MASTER_BANK } from "@/app_modules/investasi/_lib/interface";
import notifikasiToAdmin_funCreate from "@/app_modules/notifikasi/fun/create/create_notif_to_admin";
-import mqtt_client from "@/util/mqtt_client";
import { Button, Paper, Radio, Stack, Title } from "@mantine/core";
import { useAtom } from "jotai";
import { useRouter } from "next/navigation";
import { useState } from "react";
import { Donasi_funCreateInvoice } from "../../fun/create/fun_create_invoice";
-import { gs_proses_donasi } from "../../global_state";
+import { gs_donasi_hot_menu, gs_proses_donasi } from "../../global_state";
+import { WibuRealtime } from "wibu-pkg";
export default function Donasi_MetodePembayaran({
listBank,
@@ -31,6 +32,7 @@ export default function Donasi_MetodePembayaran({
const [prosesDonasi, setProsesDonasi] = useAtom(gs_proses_donasi);
const [pilihBank, setPilihBank] = useState("");
const [bank, setBank] = useState(listBank);
+ const [activeHotMenu, setActiveHotMenu] = useAtom(gs_donasi_hot_menu);
async function onProses() {
const body = {
@@ -40,31 +42,31 @@ export default function Donasi_MetodePembayaran({
authorId: authorId,
};
- // console.log(body)
const res = await Donasi_funCreateInvoice(body);
if (res.status === 200) {
- const dataNotif = {
+
+ const dataNotifikasi: IRealtimeData = {
appId: res.data?.Donasi?.id as any,
+ status: res.data?.DonasiMaster_StatusInvoice?.name as any,
userId: res.data?.Donasi?.authorId as any,
pesan: res.data?.Donasi?.title as any,
- status: res.data?.DonasiMaster_StatusInvoice?.name,
kategoriApp: "DONASI",
- title: "Donatur mengirim invoice",
+ title: "Donatur membuat invoice donasi",
};
const notif = await notifikasiToAdmin_funCreate({
- data: dataNotif as any,
+ data: dataNotifikasi as any,
});
if (notif.status === 201) {
- mqtt_client.publish(
- "ADMIN",
- JSON.stringify({
- count: 1,
- })
- );
+ WibuRealtime.setData({
+ type: "notification",
+ pushNotificationTo: "ADMIN",
+ });
+
setLoading(true);
+ setActiveHotMenu(2);
ComponentGlobal_NotifikasiBerhasil(res.message);
setProsesDonasi({
...prosesDonasi,