diff --git a/.env b/.env deleted file mode 100644 index 85072cdf..00000000 --- a/.env +++ /dev/null @@ -1,10 +0,0 @@ -# Environment variables declared in this file are automatically made available to Prisma. -# See the documentation for more detail: https://pris.ly/d/prisma-schema#accessing-environment-variables-from-the-schema - -# Prisma supports the native connection string format for PostgreSQL, MySQL, SQLite, SQL Server, MongoDB and CockroachDB. -# See the documentation for all the connection string options: https://pris.ly/d/connection-strings - -DATABASE_URL="postgresql://bip:Production_123@localhost:5433/hipmi?schema=public" -PWD="QWERTYUIOPLKJHGFDSAZXCVBNMQAZWSXEDCRFVTGBYHNUJMIKOLPPOIUYTREWQLKJHGFDSAMNBVCXZlghvftyguhijknhbgvcfytguu8okjnhbgvfty7u8oilkjnhgvtygu7u8ojilnkhbgvhujnkhghvjhukjnhb" -Client_KEY="SB-Mid-client-9NDTxltqdZrEB9m-" -Server_KEY="SB-Mid-server-NyltU-U7fLVQd1nv1LWBKylr" \ No newline at end of file diff --git a/.gitignore b/.gitignore index 786b7c83..76fc4102 100644 --- a/.gitignore +++ b/.gitignore @@ -28,6 +28,9 @@ yarn-error.log* # local env files .env*.local +# env +.env + # vercel .vercel diff --git a/package.json b/package.json index 772a7593..f02d79c5 100644 --- a/package.json +++ b/package.json @@ -14,6 +14,7 @@ "dependencies": { "@emotion/react": "^11.11.1", "@emotion/server": "^11.11.0", + "@hookstate/core": "^4.0.1", "@mantine/carousel": "^7.1.5", "@mantine/core": "^6.0.17", "@mantine/dates": "^6.0.17", diff --git a/public/donasi/image/91771b2d-dbef-43ff-a346-0c1bde05dfdf.jpeg b/public/donasi/image/91771b2d-dbef-43ff-a346-0c1bde05dfdf.jpeg new file mode 100644 index 00000000..7ad2d286 Binary files /dev/null and b/public/donasi/image/91771b2d-dbef-43ff-a346-0c1bde05dfdf.jpeg differ diff --git a/public/donasi/image_cerita/247e0aa2-55bf-4034-921d-8e4c507048ff.jpeg b/public/donasi/image_cerita/247e0aa2-55bf-4034-921d-8e4c507048ff.jpeg new file mode 100644 index 00000000..e25549da Binary files /dev/null and b/public/donasi/image_cerita/247e0aa2-55bf-4034-921d-8e4c507048ff.jpeg differ diff --git a/public/donasi/invoice/022d0c53-d5c7-4b2c-a6a7-8dd1a9b7ac86.jpg b/public/donasi/invoice/022d0c53-d5c7-4b2c-a6a7-8dd1a9b7ac86.jpg new file mode 100644 index 00000000..1b3756ff Binary files /dev/null and b/public/donasi/invoice/022d0c53-d5c7-4b2c-a6a7-8dd1a9b7ac86.jpg differ diff --git a/public/donasi/invoice/5e4c18e4-06da-4e91-a2fa-b19ba1ab5fa8.png b/public/donasi/invoice/5e4c18e4-06da-4e91-a2fa-b19ba1ab5fa8.png new file mode 100644 index 00000000..827976fd Binary files /dev/null and b/public/donasi/invoice/5e4c18e4-06da-4e91-a2fa-b19ba1ab5fa8.png differ diff --git a/public/donasi/invoice/7293bb5a-df7e-4921-aae2-f525f3ebee3d.jpg b/public/donasi/invoice/7293bb5a-df7e-4921-aae2-f525f3ebee3d.jpg new file mode 100644 index 00000000..7d8e71ab Binary files /dev/null and b/public/donasi/invoice/7293bb5a-df7e-4921-aae2-f525f3ebee3d.jpg differ diff --git a/public/donasi/invoice/f25e58f5-6627-4e48-9a76-946f5e5db469.png b/public/donasi/invoice/f25e58f5-6627-4e48-9a76-946f5e5db469.png new file mode 100644 index 00000000..6f356546 Binary files /dev/null and b/public/donasi/invoice/f25e58f5-6627-4e48-9a76-946f5e5db469.png differ diff --git a/public/donasi/invoice/fc40104b-74e4-4ec6-a791-c7d33dee3446.jpg b/public/donasi/invoice/fc40104b-74e4-4ec6-a791-c7d33dee3446.jpg new file mode 100644 index 00000000..ea83eb05 Binary files /dev/null and b/public/donasi/invoice/fc40104b-74e4-4ec6-a791-c7d33dee3446.jpg differ diff --git a/public/donasi/kabar/0de92876-be7a-4d87-afcb-6ceba1586058.jpeg b/public/donasi/kabar/0de92876-be7a-4d87-afcb-6ceba1586058.jpeg new file mode 100644 index 00000000..de0ad98c Binary files /dev/null and b/public/donasi/kabar/0de92876-be7a-4d87-afcb-6ceba1586058.jpeg differ diff --git a/public/file/41ddf88e-01a7-4653-8217-4c7b9c2031af.jpg b/public/file/41ddf88e-01a7-4653-8217-4c7b9c2031af.jpg new file mode 100644 index 00000000..ee10af17 Binary files /dev/null and b/public/file/41ddf88e-01a7-4653-8217-4c7b9c2031af.jpg differ diff --git a/public/file/7f26ce38-ed31-45f8-aea8-4ff3cfebff2d.jpg b/public/file/7f26ce38-ed31-45f8-aea8-4ff3cfebff2d.jpg new file mode 100644 index 00000000..fe8a42f6 Binary files /dev/null and b/public/file/7f26ce38-ed31-45f8-aea8-4ff3cfebff2d.jpg differ diff --git a/public/file/b97bd66d-835d-4b85-9364-b6e7f829086b.pdf b/public/file/b97bd66d-835d-4b85-9364-b6e7f829086b.pdf new file mode 100644 index 00000000..92b2f709 Binary files /dev/null and b/public/file/b97bd66d-835d-4b85-9364-b6e7f829086b.pdf differ diff --git a/public/file/c75b1df8-7c20-4183-bacd-23e83a9e8396.pdf b/public/file/c75b1df8-7c20-4183-bacd-23e83a9e8396.pdf new file mode 100644 index 00000000..92b2f709 Binary files /dev/null and b/public/file/c75b1df8-7c20-4183-bacd-23e83a9e8396.pdf differ diff --git a/public/file/dccc6d8f-d2d5-430f-84e5-69b401466ed3.jpeg b/public/file/dccc6d8f-d2d5-430f-84e5-69b401466ed3.jpeg new file mode 100644 index 00000000..25a18f99 Binary files /dev/null and b/public/file/dccc6d8f-d2d5-430f-84e5-69b401466ed3.jpeg differ diff --git a/public/investasi/206ab5ea-015e-414f-888d-052a83b5069d.jpg b/public/investasi/206ab5ea-015e-414f-888d-052a83b5069d.jpg new file mode 100644 index 00000000..fe8a42f6 Binary files /dev/null and b/public/investasi/206ab5ea-015e-414f-888d-052a83b5069d.jpg differ diff --git a/public/investasi/b5dee9fb-ea68-4115-9a0a-068c26247ed7.jpg b/public/investasi/b5dee9fb-ea68-4115-9a0a-068c26247ed7.jpg new file mode 100644 index 00000000..ee10af17 Binary files /dev/null and b/public/investasi/b5dee9fb-ea68-4115-9a0a-068c26247ed7.jpg differ diff --git a/public/investasi/b988c656-c8b7-4065-a5a5-6813cbc9d077.jpeg b/public/investasi/b988c656-c8b7-4065-a5a5-6813cbc9d077.jpeg new file mode 100644 index 00000000..25a18f99 Binary files /dev/null and b/public/investasi/b988c656-c8b7-4065-a5a5-6813cbc9d077.jpeg differ diff --git a/public/profile/background/847a4fa4-837d-4abd-aef2-435d8f259b4c.jpeg b/public/profile/background/847a4fa4-837d-4abd-aef2-435d8f259b4c.jpeg new file mode 100644 index 00000000..b43c0679 Binary files /dev/null and b/public/profile/background/847a4fa4-837d-4abd-aef2-435d8f259b4c.jpeg differ diff --git a/public/profile/foto/6452c349-66fc-4db7-99ff-37a659f351bb.jpeg b/public/profile/foto/6452c349-66fc-4db7-99ff-37a659f351bb.jpeg new file mode 100644 index 00000000..4660498f Binary files /dev/null and b/public/profile/foto/6452c349-66fc-4db7-99ff-37a659f351bb.jpeg differ diff --git a/src/app/dev/colab/detail/group/[id]/page.tsx b/src/app/dev/colab/detail/group/[id]/page.tsx index 2fecdb0c..420aa361 100644 --- a/src/app/dev/colab/detail/group/[id]/page.tsx +++ b/src/app/dev/colab/detail/group/[id]/page.tsx @@ -1,5 +1,8 @@ import adminColab_getOneRoomChatById from "@/app_modules/admin/colab/fun/get/get_one_room_chat_by_id"; -import { Colab_GroupChatView } from "@/app_modules/colab"; +import { + Colab_DetailGrupDiskusi, + Colab_GroupChatView, +} from "@/app_modules/colab"; import colab_getMessageByRoomId from "@/app_modules/colab/fun/get/room_chat/get_message_by_room_id"; import { user_getOneUserId } from "@/app_modules/fun_global/get_user_token"; import { user_getOneByUserId } from "@/app_modules/home/fun/get/get_one_user_by_id"; @@ -16,14 +19,15 @@ export default async function Page({ params }: { params: { id: string } }) { ]); let listMsg = await colab_getMessageByRoomId({ roomId: roomId, page: 1 }); const dataUserLogin = await user_getOneByUserId(userLoginId); - // console.log(dataUserLogin); return ( <> - {/* */} - - - ); -} diff --git a/src/app/dev/donasi/detail/detail_publish/[id]/page.tsx b/src/app/dev/donasi/detail/detail_publish/[id]/page.tsx index 6fb25879..a283e6d2 100644 --- a/src/app/dev/donasi/detail/detail_publish/[id]/page.tsx +++ b/src/app/dev/donasi/detail/detail_publish/[id]/page.tsx @@ -8,7 +8,7 @@ export default async function Page({ params }: { params: { id: string } }) { const countDonatur= await Donasi_getCountDonatur(params.id) const userLoginId = await user_getOneUserId(); - console.log(userLoginId) + // console.log(userLoginId) return ( <> diff --git a/src/app/dev/donasi/donatur/[id]/loading.tsx b/src/app/dev/donasi/donatur/[id]/loading.tsx deleted file mode 100644 index 380b3fcd..00000000 --- a/src/app/dev/donasi/donatur/[id]/loading.tsx +++ /dev/null @@ -1,9 +0,0 @@ -import ComponentGlobal_V2_LoadingPage from "@/app_modules/_global/loading_page_v2"; - -export default async function Page() { - return ( - <> - - - ); -} diff --git a/src/app/dev/donasi/edit/update_kabar/[id]/loading.tsx b/src/app/dev/donasi/edit/update_kabar/[id]/loading.tsx deleted file mode 100644 index 380b3fcd..00000000 --- a/src/app/dev/donasi/edit/update_kabar/[id]/loading.tsx +++ /dev/null @@ -1,9 +0,0 @@ -import ComponentGlobal_V2_LoadingPage from "@/app_modules/_global/loading_page_v2"; - -export default async function Page() { - return ( - <> - - - ); -} diff --git a/src/app/dev/donasi/kabar/[id]/loading.tsx b/src/app/dev/donasi/kabar/[id]/loading.tsx deleted file mode 100644 index 380b3fcd..00000000 --- a/src/app/dev/donasi/kabar/[id]/loading.tsx +++ /dev/null @@ -1,9 +0,0 @@ -import ComponentGlobal_V2_LoadingPage from "@/app_modules/_global/loading_page_v2"; - -export default async function Page() { - return ( - <> - - - ); -} diff --git a/src/app/dev/donasi/list_kabar/[id]/loading.tsx b/src/app/dev/donasi/list_kabar/[id]/loading.tsx deleted file mode 100644 index 380b3fcd..00000000 --- a/src/app/dev/donasi/list_kabar/[id]/loading.tsx +++ /dev/null @@ -1,9 +0,0 @@ -import ComponentGlobal_V2_LoadingPage from "@/app_modules/_global/loading_page_v2"; - -export default async function Page() { - return ( - <> - - - ); -} diff --git a/src/app/dev/donasi/proses_donasi/proses_transaksi/[id]/page.tsx b/src/app/dev/donasi/proses_donasi/proses_transaksi/[id]/page.tsx index b74a91c0..3976b1aa 100644 --- a/src/app/dev/donasi/proses_donasi/proses_transaksi/[id]/page.tsx +++ b/src/app/dev/donasi/proses_donasi/proses_transaksi/[id]/page.tsx @@ -1,16 +1,18 @@ import { Donasi_ProsesTransaksi } from "@/app_modules/donasi"; import { Donasi_getOneInvoiceById } from "@/app_modules/donasi/fun/get/get_one_invoice_by_id"; +import { donasi_getOneStatusInvoiceById } from "@/app_modules/donasi/fun/get/get_one_status_invoice_by_id"; import donasi_getMasterNomorAdmin from "@/app_modules/donasi/fun/master/get_nomor_admin"; export default async function Page({ params }: { params: { id: string } }) { - // console.log(params.id) - const dataInvoice = await Donasi_getOneInvoiceById(params.id); + let invoiceId = params.id; const nomorAdmin = await donasi_getMasterNomorAdmin(); + const statusInvoice = await donasi_getOneStatusInvoiceById({invoiceId: invoiceId}) + // console.log(statusInvoice) return ( <> diff --git a/src/app/dev/event/detail/publish/[id]/loading.tsx b/src/app/dev/event/detail/publish/[id]/loading.tsx deleted file mode 100644 index 380b3fcd..00000000 --- a/src/app/dev/event/detail/publish/[id]/loading.tsx +++ /dev/null @@ -1,9 +0,0 @@ -import ComponentGlobal_V2_LoadingPage from "@/app_modules/_global/loading_page_v2"; - -export default async function Page() { - return ( - <> - - - ); -} diff --git a/src/app/dev/event/detail/publish/[id]/page.tsx b/src/app/dev/event/detail/publish/[id]/page.tsx index 2e3de6da..e3f7347d 100644 --- a/src/app/dev/event/detail/publish/[id]/page.tsx +++ b/src/app/dev/event/detail/publish/[id]/page.tsx @@ -1,9 +1,20 @@ import { Event_DetailPublish } from "@/app_modules/event"; +import { Event_countTotalPesertaById } from "@/app_modules/event/fun/count/count_total_peserta_by_id"; +import { Event_getListPesertaById } from "@/app_modules/event/fun/get/get_list_peserta_by_id"; import { Event_getOneById } from "@/app_modules/event/fun/get/get_one_by_id"; export default async function Page({ params }: { params: { id: string } }) { let eventId = params.id; const dataEvent = await Event_getOneById(eventId); + const listPeserta = await Event_getListPesertaById(eventId); + const totalPeserta = await Event_countTotalPesertaById(eventId); - return ; + + return ( + + ); } diff --git a/src/app/dev/investasi/create/loading.tsx b/src/app/dev/investasi/create/loading.tsx deleted file mode 100644 index d8a1c040..00000000 --- a/src/app/dev/investasi/create/loading.tsx +++ /dev/null @@ -1,9 +0,0 @@ -import ComponentGlobal_V2_LoadingPage from "@/app_modules/_global/loading_page_v2"; - -export default async function Page() { - return ( - <> - - - ); -} diff --git a/src/app/dev/investasi/create/page.tsx b/src/app/dev/investasi/create/page.tsx index 35ed259c..dbc7342e 100644 --- a/src/app/dev/investasi/create/page.tsx +++ b/src/app/dev/investasi/create/page.tsx @@ -24,7 +24,6 @@ export default async function Page() { const pembagianDeviden = await getPembagianDeviden(); const statusInvestasi = await getStatusInvestasi(); - return ( <> - - - ); -} diff --git a/src/app/dev/investasi/detail_dokumen/[id]/loading.tsx b/src/app/dev/investasi/detail_dokumen/[id]/loading.tsx deleted file mode 100644 index d8a1c040..00000000 --- a/src/app/dev/investasi/detail_dokumen/[id]/loading.tsx +++ /dev/null @@ -1,9 +0,0 @@ -import ComponentGlobal_V2_LoadingPage from "@/app_modules/_global/loading_page_v2"; - -export default async function Page() { - return ( - <> - - - ); -} diff --git a/src/app/dev/investasi/detail_portofolio/draft/[id]/loading.tsx b/src/app/dev/investasi/detail_portofolio/draft/[id]/loading.tsx deleted file mode 100644 index d8a1c040..00000000 --- a/src/app/dev/investasi/detail_portofolio/draft/[id]/loading.tsx +++ /dev/null @@ -1,9 +0,0 @@ -import ComponentGlobal_V2_LoadingPage from "@/app_modules/_global/loading_page_v2"; - -export default async function Page() { - return ( - <> - - - ); -} diff --git a/src/app/dev/investasi/detail_portofolio/publish/[id]/loading.tsx b/src/app/dev/investasi/detail_portofolio/publish/[id]/loading.tsx deleted file mode 100644 index d8a1c040..00000000 --- a/src/app/dev/investasi/detail_portofolio/publish/[id]/loading.tsx +++ /dev/null @@ -1,9 +0,0 @@ -import ComponentGlobal_V2_LoadingPage from "@/app_modules/_global/loading_page_v2"; - -export default async function Page() { - return ( - <> - - - ); -} diff --git a/src/app/dev/investasi/detail_portofolio/reject/[id]/loading.tsx b/src/app/dev/investasi/detail_portofolio/reject/[id]/loading.tsx deleted file mode 100644 index d8a1c040..00000000 --- a/src/app/dev/investasi/detail_portofolio/reject/[id]/loading.tsx +++ /dev/null @@ -1,9 +0,0 @@ -import ComponentGlobal_V2_LoadingPage from "@/app_modules/_global/loading_page_v2"; - -export default async function Page() { - return ( - <> - - - ); -} diff --git a/src/app/dev/investasi/detail_portofolio/review/[id]/loading.tsx b/src/app/dev/investasi/detail_portofolio/review/[id]/loading.tsx deleted file mode 100644 index d8a1c040..00000000 --- a/src/app/dev/investasi/detail_portofolio/review/[id]/loading.tsx +++ /dev/null @@ -1,9 +0,0 @@ -import ComponentGlobal_V2_LoadingPage from "@/app_modules/_global/loading_page_v2"; - -export default async function Page() { - return ( - <> - - - ); -} diff --git a/src/app/dev/investasi/detail_prospektus/[id]/loading.tsx b/src/app/dev/investasi/detail_prospektus/[id]/loading.tsx deleted file mode 100644 index d8a1c040..00000000 --- a/src/app/dev/investasi/detail_prospektus/[id]/loading.tsx +++ /dev/null @@ -1,9 +0,0 @@ -import ComponentGlobal_V2_LoadingPage from "@/app_modules/_global/loading_page_v2"; - -export default async function Page() { - return ( - <> - - - ); -} diff --git a/src/app/dev/investasi/edit_dokumen/[id]/loading.tsx b/src/app/dev/investasi/edit_dokumen/[id]/loading.tsx deleted file mode 100644 index d8a1c040..00000000 --- a/src/app/dev/investasi/edit_dokumen/[id]/loading.tsx +++ /dev/null @@ -1,9 +0,0 @@ -import ComponentGlobal_V2_LoadingPage from "@/app_modules/_global/loading_page_v2"; - -export default async function Page() { - return ( - <> - - - ); -} diff --git a/src/app/dev/investasi/edit_intro/[id]/loading.tsx b/src/app/dev/investasi/edit_intro/[id]/loading.tsx deleted file mode 100644 index d8a1c040..00000000 --- a/src/app/dev/investasi/edit_intro/[id]/loading.tsx +++ /dev/null @@ -1,9 +0,0 @@ -import ComponentGlobal_V2_LoadingPage from "@/app_modules/_global/loading_page_v2"; - -export default async function Page() { - return ( - <> - - - ); -} diff --git a/src/app/dev/investasi/edit_prospektus/[id]/loading.tsx b/src/app/dev/investasi/edit_prospektus/[id]/loading.tsx deleted file mode 100644 index d8a1c040..00000000 --- a/src/app/dev/investasi/edit_prospektus/[id]/loading.tsx +++ /dev/null @@ -1,9 +0,0 @@ -import ComponentGlobal_V2_LoadingPage from "@/app_modules/_global/loading_page_v2"; - -export default async function Page() { - return ( - <> - - - ); -} diff --git a/src/app/dev/investasi/list_edit_berita/[id]/loading.tsx b/src/app/dev/investasi/list_edit_berita/[id]/loading.tsx deleted file mode 100644 index d8a1c040..00000000 --- a/src/app/dev/investasi/list_edit_berita/[id]/loading.tsx +++ /dev/null @@ -1,9 +0,0 @@ -import ComponentGlobal_V2_LoadingPage from "@/app_modules/_global/loading_page_v2"; - -export default async function Page() { - return ( - <> - - - ); -} diff --git a/src/app/dev/investasi/main/loading.tsx b/src/app/dev/investasi/main/loading.tsx deleted file mode 100644 index d8a1c040..00000000 --- a/src/app/dev/investasi/main/loading.tsx +++ /dev/null @@ -1,9 +0,0 @@ -import ComponentGlobal_V2_LoadingPage from "@/app_modules/_global/loading_page_v2"; - -export default async function Page() { - return ( - <> - - - ); -} diff --git a/src/app/dev/investasi/upload_dokumen/[id]/loading.tsx b/src/app/dev/investasi/upload_dokumen/[id]/loading.tsx deleted file mode 100644 index d8a1c040..00000000 --- a/src/app/dev/investasi/upload_dokumen/[id]/loading.tsx +++ /dev/null @@ -1,9 +0,0 @@ -import ComponentGlobal_V2_LoadingPage from "@/app_modules/_global/loading_page_v2"; - -export default async function Page() { - return ( - <> - - - ); -} diff --git a/src/app/dev/investasi/upload_prospektus/[id]/loading.tsx b/src/app/dev/investasi/upload_prospektus/[id]/loading.tsx deleted file mode 100644 index d8a1c040..00000000 --- a/src/app/dev/investasi/upload_prospektus/[id]/loading.tsx +++ /dev/null @@ -1,9 +0,0 @@ -import ComponentGlobal_V2_LoadingPage from "@/app_modules/_global/loading_page_v2"; - -export default async function Page() { - return ( - <> - - - ); -} diff --git a/src/app_modules/admin/donasi/detail/detail_review.tsx b/src/app_modules/admin/donasi/detail/detail_review.tsx index 12429dc7..a24ee397 100644 --- a/src/app_modules/admin/donasi/detail/detail_review.tsx +++ b/src/app_modules/admin/donasi/detail/detail_review.tsx @@ -35,6 +35,8 @@ import { AdminDonasi_funUpdateStatusReject } from "../fun/update/fun_status_reje import ComponentAdminGlobal_BackButton from "../../component_global/back_button"; import ComponentAdminDonasi_TampilanDetailDonasi from "../component/tampilan_detail_donasi"; import ComponentAdminDonasi_CeritaPenggalangDana from "../component/tampilan_detail_cerita"; +import mqtt_client from "@/util/mqtt_client"; +import adminNotifikasi_funCreateToUser from "../../notifikasi/fun/create/fun_create_notif_user"; export default function AdminDonasi_DetailReview({ dataReview, @@ -80,22 +82,36 @@ function ButtonOnHeader({ const [catatan, setCatatan] = useState(""); async function onPulish() { - await AdminDonasi_funUpdateStatusPublish(donasi.id, "1").then( - async (res) => { - if (res.status === 200) { - const newData = await AdminDonasi_getOneById(donasi?.id); - setData(newData); - ComponentAdminGlobal_NotifikasiBerhasil( - "Berhasil Mengubah Status Donasi" - ); - setLoadingPublish(true); - } else { - ComponentAdminGlobal_NotifikasiPeringatan( - "Gagal Mengubah Status Donasi" - ); - } + const res = await AdminDonasi_funUpdateStatusPublish(donasi.id, "1"); + if (res.status === 200) { + const dataNotif = { + appId: res.data?.id, + status: res.data?.DonasiMaster_Status?.name as any, + userId: res.data?.authorId as any, + pesan: res.data?.title as any, + kategoriApp: "DONASI", + title: "Donasi publish", + }; + + const notif = await adminNotifikasi_funCreateToUser({ + data: dataNotif as any, + }); + + if (notif.status === 201) { + mqtt_client.publish( + "USER", + JSON.stringify({ userId: res?.data?.authorId, count: 1 }) + ); + const newData = await AdminDonasi_getOneById(donasi?.id); + setData(newData); + ComponentAdminGlobal_NotifikasiBerhasil( + "Berhasil Mengubah Status Donasi" + ); + setLoadingPublish(true); } - ); + } else { + ComponentAdminGlobal_NotifikasiPeringatan("Gagal Mengubah Status Donasi"); + } } async function onReject() { @@ -104,19 +120,40 @@ function ButtonOnHeader({ "Lengkapi Alasan Penolakan" ); - await AdminDonasi_funUpdateStatusReject(donasi.id, "4", catatan).then( - async (res) => { - if (res.status === 200) { - const newData = await AdminDonasi_getOneById(donasi?.id); - setData(newData); - close(); - ComponentAdminGlobal_NotifikasiBerhasil(res.message); - setLoadingReject(true); - } else { - ComponentAdminGlobal_NotifikasiGagal(res.message); - } - } + const res = await AdminDonasi_funUpdateStatusReject( + donasi.id, + "4", + catatan ); + if (res.status === 200) { + const dataNotif = { + appId: res.data?.id, + status: res.data?.DonasiMaster_Status?.name as any, + userId: res.data?.authorId as any, + pesan: res.data?.title as any, + kategoriApp: "DONASI", + title: "Donasi anda di tolak !", + }; + + const notif = await adminNotifikasi_funCreateToUser({ + data: dataNotif as any, + }); + + if (notif.status === 201) { + mqtt_client.publish( + "USER", + JSON.stringify({ userId: res?.data?.authorId, count: 1 }) + ); + } + + const newData = await AdminDonasi_getOneById(donasi?.id); + setData(newData); + close(); + ComponentAdminGlobal_NotifikasiBerhasil(res.message); + setLoadingReject(true); + } else { + ComponentAdminGlobal_NotifikasiGagal(res.message); + } } return ( @@ -190,5 +227,3 @@ function ButtonOnHeader({ ); } - - diff --git a/src/app_modules/admin/donasi/detail/publish/detail_publish.tsx b/src/app_modules/admin/donasi/detail/publish/detail_publish.tsx index a3e6bbe7..03c811d4 100644 --- a/src/app_modules/admin/donasi/detail/publish/detail_publish.tsx +++ b/src/app_modules/admin/donasi/detail/publish/detail_publish.tsx @@ -55,6 +55,8 @@ import { RouterAdminDonasi } from "@/app/lib/router_admin/router_admin_donasi"; import adminDonasi_funUpdateStatusDanTotal from "../../fun/update/fun_update_status_dan_total"; import { ComponentAdminGlobal_NotifikasiBerhasil } from "@/app_modules/admin/component_global/admin_notifikasi/notifikasi_berhasil"; import { ComponentAdminGlobal_NotifikasiGagal } from "@/app_modules/admin/component_global/admin_notifikasi/notifikasi_gagal"; +import mqtt_client from "@/util/mqtt_client"; +import adminNotifikasi_funCreateToUser from "@/app_modules/admin/notifikasi/fun/create/fun_create_notif_user"; export default function AdminDonasi_DetailPublish({ dataPublish, @@ -266,7 +268,6 @@ function TampilanListDonatur({ donatur: any; listMasterStatus: MODEL_NEW_DEFAULT_MASTER[]; dataDonasi: MODEL_DONASI; - onSuccessDonasi: (val: any) => void; }) { const router = useRouter(); @@ -509,6 +510,57 @@ function ButtonAccept({ target: target, }); if (updateStatus.status == 200) { + const dataNotif = { + appId: updateStatus.data?.id, + userId: updateStatus.data?.authorId, + pesan: updateStatus.data?.Donasi?.title, + status: updateStatus.data?.DonasiMaster_StatusInvoice?.name, + kategoriApp: "DONASI", + title: "Terimakasih, Donasi anda telah diterima", + }; + + const notif = await adminNotifikasi_funCreateToUser({ + data: dataNotif as any, + }); + + if (notif.status === 201) { + mqtt_client.publish( + "USER", + JSON.stringify({ userId: updateStatus?.data?.authorId, count: 1 }) + ); + + mqtt_client.publish( + "donasi_invoice", + JSON.stringify({ + invoiceId: invoiceId, + statusInvoiceId: "1", + }) + ); + } + + const dataNotifToAuthorDonasi = { + appId: updateStatus.data?.Donasi?.id, + userId: updateStatus.data?.Donasi?.authorId, + pesan: updateStatus.data?.Donasi?.title, + status: "Donatur Baru", + kategoriApp: "DONASI", + title: "Ada donatur baru", + }; + + const notifToAuthorDonasi = await adminNotifikasi_funCreateToUser({ + data: dataNotifToAuthorDonasi as any, + }); + + if (notifToAuthorDonasi.status === 201) { + mqtt_client.publish( + "USER", + JSON.stringify({ + userId: updateStatus?.data?.Donasi?.authorId, + count: 1, + }) + ); + } + const updateData = await AdminDonasi_getOneById(donasiId); onSuccessDonasi(updateData as any); const updatelistDonatur = await adminDonasi_getListDonatur({ @@ -516,7 +568,6 @@ function ButtonAccept({ page: 1, }); onSuccessDonatur(updatelistDonatur); - ComponentAdminGlobal_NotifikasiBerhasil(updateStatus.message); } else { ComponentAdminGlobal_NotifikasiGagal(updateStatus.message); diff --git a/src/app_modules/admin/donasi/fun/count/fun_count_donatur.ts b/src/app_modules/admin/donasi/fun/count/fun_count_donatur.ts index 1d08b6ba..3dc1e78f 100644 --- a/src/app_modules/admin/donasi/fun/count/fun_count_donatur.ts +++ b/src/app_modules/admin/donasi/fun/count/fun_count_donatur.ts @@ -5,7 +5,8 @@ import prisma from "@/app/lib/prisma"; export async function AdminDonasi_funCountDonatur(donasiId: string) { const donatur = await prisma.donasi_Invoice.count({ where: { - donasiId: donasiId + donasiId: donasiId, + donasiMaster_StatusInvoiceId: "1" } }); diff --git a/src/app_modules/admin/donasi/fun/get/get_list_review.ts b/src/app_modules/admin/donasi/fun/get/get_list_review.ts index 316f4898..676a890a 100644 --- a/src/app_modules/admin/donasi/fun/get/get_list_review.ts +++ b/src/app_modules/admin/donasi/fun/get/get_list_review.ts @@ -20,7 +20,7 @@ export default async function adminDonasi_getListReview({ skip: skipData, take: takeData, orderBy: { - createdAt: "desc", + updatedAt: "desc", }, where: { donasiMaster_StatusDonasiId: "2", diff --git a/src/app_modules/admin/donasi/fun/get/get_one_by_id.ts b/src/app_modules/admin/donasi/fun/get/get_one_by_id.ts index cc0d6049..6dcdc912 100644 --- a/src/app_modules/admin/donasi/fun/get/get_one_by_id.ts +++ b/src/app_modules/admin/donasi/fun/get/get_one_by_id.ts @@ -33,7 +33,6 @@ export async function AdminDonasi_getOneById(id: string) { DonasiMaster_Ketegori: true, DonasiMaster_Durasi: true, DonasiMaster_Status: true, - }, }); return res; diff --git a/src/app_modules/admin/donasi/fun/update/fun_status_publish.ts b/src/app_modules/admin/donasi/fun/update/fun_status_publish.ts index 0c3f4756..03643576 100644 --- a/src/app_modules/admin/donasi/fun/update/fun_status_publish.ts +++ b/src/app_modules/admin/donasi/fun/update/fun_status_publish.ts @@ -1,6 +1,7 @@ "use server"; import prisma from "@/app/lib/prisma"; +import { RouterAdminDonasi } from "@/app/lib/router_admin/router_admin_donasi"; import { RouterAdminDonasi_OLD } from "@/app/lib/router_hipmi/router_admin"; import { RouterDonasi } from "@/app/lib/router_hipmi/router_donasi"; import { revalidatePath } from "next/cache"; @@ -19,11 +20,22 @@ export async function AdminDonasi_funUpdateStatusPublish( donasiMaster_StatusDonasiId: statusId, publishTime: new Date(publishTime), }, + select: { + id: true, + title: true, + authorId: true, + DonasiMaster_Status: { + select: { + name: true, + }, + }, + }, }); if (!data) return { status: 400, message: "Data tidak ditemukan" }; - revalidatePath("/dev/admin/donasi/table/review"); + revalidatePath(RouterAdminDonasi.table_review); return { + data: data, status: 200, message: "Status berhasil diganti", }; diff --git a/src/app_modules/admin/donasi/fun/update/fun_status_reject.ts b/src/app_modules/admin/donasi/fun/update/fun_status_reject.ts index da707f7d..2cd07824 100644 --- a/src/app_modules/admin/donasi/fun/update/fun_status_reject.ts +++ b/src/app_modules/admin/donasi/fun/update/fun_status_reject.ts @@ -19,11 +19,22 @@ export async function AdminDonasi_funUpdateStatusReject( donasiMaster_StatusDonasiId: statusId, catatan: catatan, }, + select: { + id: true, + title: true, + authorId: true, + DonasiMaster_Status: { + select: { + name: true, + }, + }, + }, }); if (!data) return { status: 400, message: "Data tidak ditemukan" }; revalidatePath(RouterAdminDonasi.table_review); return { + data: data, status: 200, message: "Status berhasil diganti", }; diff --git a/src/app_modules/admin/donasi/fun/update/fun_update_status_dan_total.ts b/src/app_modules/admin/donasi/fun/update/fun_update_status_dan_total.ts index abedc57d..ee157f56 100644 --- a/src/app_modules/admin/donasi/fun/update/fun_update_status_dan_total.ts +++ b/src/app_modules/admin/donasi/fun/update/fun_update_status_dan_total.ts @@ -30,6 +30,23 @@ export default async function adminDonasi_funUpdateStatusDanTotal({ data: { donasiMaster_StatusInvoiceId: statusInvoiceId, }, + select: { + id: true, + authorId: true, + Donasi: { + select: { + id: true, + title: true, + authorId: true, + + }, + }, + DonasiMaster_StatusInvoice: { + select: { + name: true, + }, + }, + }, }); if (!updateInvoice) return { status: 400, message: "Update invoice gagal" }; @@ -45,5 +62,5 @@ export default async function adminDonasi_funUpdateStatusDanTotal({ if (!updateDonasi) return { status: 400, message: "Update donasi gagal" }; revalidatePath(RouterAdminDonasi_OLD.detail_publish + donasiId); - return { status: 200, message: "Update Berhasil" }; + return { data: updateInvoice, status: 200, message: "Update Berhasil" }; } diff --git a/src/app_modules/admin/event/fun/edit/fun_edit_status_publish_by_id.ts b/src/app_modules/admin/event/fun/edit/fun_edit_status_publish_by_id.ts index 05e8baab..01d85962 100644 --- a/src/app_modules/admin/event/fun/edit/fun_edit_status_publish_by_id.ts +++ b/src/app_modules/admin/event/fun/edit/fun_edit_status_publish_by_id.ts @@ -7,7 +7,6 @@ export async function AdminEvent_funEditStatusPublishById( eventId: string, statusId: string ) { - console.log(eventId); const updt = await prisma.event.update({ where: { id: eventId, @@ -15,11 +14,22 @@ export async function AdminEvent_funEditStatusPublishById( data: { eventMaster_StatusId: statusId, }, + select: { + id: true, + title: true, + authorId: true, + EventMaster_Status: { + select: { + name: true, + }, + }, + } }); if (!updt) return { status: 400, message: "Update Gagal" }; revalidatePath("/dev/admin/event/main"); return { + data: updt, status: 200, message: "Berhasil Update Status", }; diff --git a/src/app_modules/admin/event/fun/edit/fun_edit_status_reject_by_id.ts b/src/app_modules/admin/event/fun/edit/fun_edit_status_reject_by_id.ts index ba8603c8..28961c33 100644 --- a/src/app_modules/admin/event/fun/edit/fun_edit_status_reject_by_id.ts +++ b/src/app_modules/admin/event/fun/edit/fun_edit_status_reject_by_id.ts @@ -14,13 +14,24 @@ export async function AdminEvent_funEditCatatanById( }, data: { eventMaster_StatusId: statudId, - catatan: data.catatan + catatan: data.catatan, + }, + select: { + id: true, + title: true, + authorId: true, + EventMaster_Status: { + select: { + name: true, + }, + }, }, }); if (!updt) return { status: 400, message: "Update Gagal" }; revalidatePath("/dev/admin/event/main"); return { + data: updt, status: 200, message: "Berhasil Update Status", }; diff --git a/src/app_modules/admin/event/fun/get/get_list_table_by_status_id.ts b/src/app_modules/admin/event/fun/get/get_list_table_by_status_id.ts index 5e04a9a6..56cb6cc5 100644 --- a/src/app_modules/admin/event/fun/get/get_list_table_by_status_id.ts +++ b/src/app_modules/admin/event/fun/get/get_list_table_by_status_id.ts @@ -11,9 +11,8 @@ export async function AdminEvent_getListTableByStatusId(statudId: string) { where: { eventMaster_StatusId: "1", tanggal: { - gte: new Date - } - + gte: new Date(), + }, }, select: { id: true, @@ -52,10 +51,11 @@ export async function AdminEvent_getListTableByStatusId(statudId: string) { if (statudId === "2") { const getReview = await prisma.event.findMany({ orderBy: { - createdAt: "desc", + updatedAt: "desc", }, where: { eventMaster_StatusId: "2", + active: true, }, select: { id: true, diff --git a/src/app_modules/admin/event/main/index.tsx b/src/app_modules/admin/event/main/index.tsx index acb7a734..1f4cb67e 100644 --- a/src/app_modules/admin/event/main/index.tsx +++ b/src/app_modules/admin/event/main/index.tsx @@ -3,18 +3,13 @@ import { RouterAdminEvent } from "@/app/lib/router_admin/router_admin_event"; import { - Stack, - Title, - Divider, - SimpleGrid, - Paper, - Center, - Text, - Box, Group, - ActionIcon, + Paper, + SimpleGrid, + Stack, + Text, + Title } from "@mantine/core"; -import { IconChevronsRight } from "@tabler/icons-react"; import { useRouter } from "next/navigation"; import ComponentAdminGlobal_HeaderTamplate from "../../component_global/header_tamplate"; 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 01a8dbdc..19bb5c0f 100644 --- a/src/app_modules/admin/event/table_status/table_review.tsx +++ b/src/app_modules/admin/event/table_status/table_review.tsx @@ -1,8 +1,6 @@ "use client"; -import { RouterAdminDonasi_OLD } from "@/app/lib/router_hipmi/router_admin"; import { - ActionIcon, Box, Button, Center, @@ -11,37 +9,27 @@ import { Spoiler, Stack, Table, - Text, - TextInput, Textarea, Title, } from "@mantine/core"; -import { - IconBan, - IconChevronLeft, - IconEyeCheck, - IconEyeShare, - IconShare, -} from "@tabler/icons-react"; +import { IconBan, IconEyeShare } from "@tabler/icons-react"; import { useRouter } from "next/navigation"; import { useDisclosure } from "@mantine/hooks"; -import { useState } from "react"; -import TampilanRupiahDonasi from "@/app_modules/donasi/component/tampilan_rupiah"; -import ComponentAdminDonasi_TombolKembali from "../../donasi/component/tombol_kembali"; -import { MODEL_EVENT } from "@/app_modules/event/model/interface"; -import ComponentAdminGlobal_HeaderTamplate from "../../component_global/header_tamplate"; -import moment from "moment"; -import _ from "lodash"; -import { AppRouterInstance } from "next/dist/shared/lib/app-router-context.shared-runtime"; -import { AdminEvent_funEditStatusPublishById } from "../fun/edit/fun_edit_status_publish_by_id"; -import { AdminEvent_getListTableByStatusId } from "../fun/get/get_list_table_by_status_id"; import { ComponentGlobal_NotifikasiBerhasil } from "@/app_modules/_global/notif_global/notifikasi_berhasil"; import { ComponentGlobal_NotifikasiGagal } from "@/app_modules/_global/notif_global/notifikasi_gagal"; -import { AdminEvent_funEditCatatanById } from "../fun/edit/fun_edit_status_reject_by_id"; import { ComponentGlobal_NotifikasiPeringatan } from "@/app_modules/_global/notif_global/notifikasi_peringatan"; - +import { MODEL_EVENT } from "@/app_modules/event/model/interface"; +import mqtt_client from "@/util/mqtt_client"; +import _ from "lodash"; +import moment from "moment"; +import { useState } from "react"; +import ComponentAdminGlobal_HeaderTamplate from "../../component_global/header_tamplate"; +import adminNotifikasi_funCreateToUser from "../../notifikasi/fun/create/fun_create_notif_user"; +import { AdminEvent_funEditStatusPublishById } from "../fun/edit/fun_edit_status_publish_by_id"; +import { AdminEvent_funEditCatatanById } from "../fun/edit/fun_edit_status_reject_by_id"; +import { AdminEvent_getListTableByStatusId } from "../fun/get/get_list_table_by_status_id"; export default function AdminEvent_TableReview({ listReview, }: { @@ -197,16 +185,35 @@ async function onPublish(eventId: string, setData: any, tanggal: Date) { "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) => { - setData(res); - ComponentGlobal_NotifikasiBerhasil("Berhasil update status"); - }); - } else { - ComponentGlobal_NotifikasiGagal(res.message); + const res = await AdminEvent_funEditStatusPublishById(eventId, "1"); + if (res.status === 200) { + const dataNotif = { + appId: res.data?.id, + status: res.data?.EventMaster_Status?.name as any, + userId: res.data?.authorId as any, + pesan: res.data?.title as any, + kategoriApp: "EVENT", + title: "Event publish", + }; + + const notif = await adminNotifikasi_funCreateToUser({ + data: dataNotif as any, + }); + + if (notif.status === 201) { + mqtt_client.publish( + "USER", + JSON.stringify({ userId: res?.data?.authorId, count: 1 }) + ); } - }); + + await AdminEvent_getListTableByStatusId("2").then((res) => { + setData(res); + ComponentGlobal_NotifikasiBerhasil("Berhasil update status"); + }); + } else { + ComponentGlobal_NotifikasiGagal(res.message); + } } async function onReject( @@ -222,15 +229,34 @@ async function onReject( catatan: catatan, }; - await AdminEvent_funEditCatatanById(body as any, "4").then(async (res) => { - if (res.status === 200) { - await AdminEvent_getListTableByStatusId("2").then((val) => { - setData(val); - ComponentGlobal_NotifikasiBerhasil(res.message); - close(); - }); - } else { - ComponentGlobal_NotifikasiGagal(res.message); + const res = await AdminEvent_funEditCatatanById(body as any, "4"); + if (res.status === 200) { + const dataNotif = { + appId: res.data?.id, + status: res.data?.EventMaster_Status?.name as any, + userId: res.data?.authorId as any, + pesan: res.data?.title as any, + kategoriApp: "EVENT", + title: "Event anda di tolak !", + }; + + const notif = await adminNotifikasi_funCreateToUser({ + data: dataNotif as any, + }); + + if (notif.status === 201) { + mqtt_client.publish( + "USER", + JSON.stringify({ userId: res?.data?.authorId, count: 1 }) + ); } - }); + + await AdminEvent_getListTableByStatusId("2").then((val) => { + setData(val); + ComponentGlobal_NotifikasiBerhasil(res.message); + close(); + }); + } else { + ComponentGlobal_NotifikasiGagal(res.message); + } } diff --git a/src/app_modules/admin/layout.tsx b/src/app_modules/admin/layout.tsx index 8f5e261b..040f6f47 100644 --- a/src/app_modules/admin/layout.tsx +++ b/src/app_modules/admin/layout.tsx @@ -52,6 +52,8 @@ import adminNotifikasi_funUpdateIsReadById from "./notifikasi/fun/update/fun_upd import adminNotifikasi_findRouterJob from "./notifikasi/route_setting/job"; import adminNotifikasi_findRouterForum from "./notifikasi/route_setting/forum"; import { adminNotifikasi_findRouterVoting } from "./notifikasi/route_setting/voting"; +import { adminNotifikasi_findRouterEvent } from "./notifikasi/route_setting/event"; +import adminNotifikasi_findRouterDonasi from "./notifikasi/route_setting/donasi"; export default function AdminLayout({ children, @@ -428,6 +430,29 @@ function DrawerNotifikasi({ }, }); + e?.kategoriApp === "EVENT" && + adminNotifikasi_findRouterEvent({ + data: e, + router: router, + onChangeNavbar(val) { + onChangeNavbar(val); + }, + onToggleNavbar(val) { + onToggleNavbar(val); + }, + }); + + e.kategoriApp === "DONASI" && adminNotifikasi_findRouterDonasi({ + data: e, + router: router, + onChangeNavbar(val) { + onChangeNavbar(val); + }, + onToggleNavbar(val) { + onToggleNavbar(val); + }, + }) + const updateIsRead = await adminNotifikasi_funUpdateIsReadById({ notifId: e?.id, }); diff --git a/src/app_modules/admin/list_page.tsx b/src/app_modules/admin/list_page.tsx index d7e09358..8fdd5160 100644 --- a/src/app_modules/admin/list_page.tsx +++ b/src/app_modules/admin/list_page.tsx @@ -9,24 +9,20 @@ 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_OLD, - RouterAdminInvestasi_OLD, + RouterAdminDashboard } from "@/app/lib/router_hipmi/router_admin"; import { IconAffiliate, IconBriefcase, IconDashboard, IconDeviceMobile, - IconMessages, - IconUserCog, -} from "@tabler/icons-react"; -import { IconHeartHandshake, IconHome, + IconMessages, IconMoneybag, IconPackageImport, IconPresentation, + IconUserCog, } from "@tabler/icons-react"; export const listAdminPage = [ diff --git a/src/app_modules/admin/notifikasi/route_setting/donasi.ts b/src/app_modules/admin/notifikasi/route_setting/donasi.ts new file mode 100644 index 00000000..323ea08a --- /dev/null +++ b/src/app_modules/admin/notifikasi/route_setting/donasi.ts @@ -0,0 +1,50 @@ +import { RouterAdminDonasi } from "@/app/lib/router_admin/router_admin_donasi"; +import { RouterAdminDonasi_OLD } from "@/app/lib/router_hipmi/router_admin"; +import { MODEL_NOTIFIKASI } from "@/app_modules/notifikasi/model/interface"; +import _ from "lodash"; +import { AppRouterInstance } from "next/dist/shared/lib/app-router-context.shared-runtime"; + +export default async function adminNotifikasi_findRouterDonasi({ + data, + router, + onChangeNavbar, + onToggleNavbar, +}: { + data: MODEL_NOTIFIKASI; + router: AppRouterInstance; + onChangeNavbar: (val: any) => void; + onToggleNavbar: (val: any) => void; +}) { + if (data.status === "Review") { + const path = RouterAdminDonasi.table_review; + router.push(path); + onChangeNavbar({ + id: 3, + childId: 33, + }); + } + + if ( + data.status === "Menunggu" || + data.status === "Berhasil" || + data.status === "Proses" || + data.status === "Gagal" + ) { + const path = RouterAdminDonasi_OLD.detail_publish + data.appId; + router.push(path, { scroll: false }); + onChangeNavbar({ + id: 3, + childId: 32, + }); + } + + // if (data.status === "Draft") { + // router.push(routeName + "review"); + // onChangeNavbar({ + // id: 6, + // childId: 63, + // }); + // } + + onToggleNavbar(true); +} diff --git a/src/app_modules/admin/notifikasi/route_setting/event.ts b/src/app_modules/admin/notifikasi/route_setting/event.ts new file mode 100644 index 00000000..15f55fd0 --- /dev/null +++ b/src/app_modules/admin/notifikasi/route_setting/event.ts @@ -0,0 +1,28 @@ +import { RouterAdminEvent } from "@/app/lib/router_admin/router_admin_event"; +import { RouterAdminVote } from "@/app/lib/router_admin/router_admin_vote"; +import { MODEL_NOTIFIKASI } from "@/app_modules/notifikasi/model/interface"; +import { AppRouterInstance } from "next/dist/shared/lib/app-router-context.shared-runtime"; + +export async function adminNotifikasi_findRouterEvent({ + data, + router, + onChangeNavbar, + onToggleNavbar, +}: { + data: MODEL_NOTIFIKASI; + router: AppRouterInstance; + onChangeNavbar: (val: any) => void; + onToggleNavbar: (val: any) => void; +}) { + const path = RouterAdminEvent.table_review + + if (data.status === "Review") { + router.push(path, { scroll: false }); + onChangeNavbar({ + id: 4, + childId: 43, + }); + } + + onToggleNavbar(true); +} diff --git a/src/app_modules/auth/fun/fun_validasi.ts b/src/app_modules/auth/fun/fun_validasi.ts index 1b646700..84b64306 100644 --- a/src/app_modules/auth/fun/fun_validasi.ts +++ b/src/app_modules/auth/fun/fun_validasi.ts @@ -18,7 +18,7 @@ export async function auth_funValidasi(nomor: string) { id: true, nomor: true, username: true, - masterUserRoleId: true + masterUserRoleId: true, }, }); @@ -37,13 +37,15 @@ export async function auth_funValidasi(nomor: string) { cookies().set({ name: "ssn", value: res, - maxAge: 60 * 60 * 24 * 7, + maxAge: 60 * 60 * 24 * 30, }); revalidatePath(RouterHome.main_home); } - - - return { status: 200, message: "Nomor Terverifikasi", role: cek.masterUserRoleId }; + return { + status: 200, + message: "Nomor Terverifikasi", + role: cek.masterUserRoleId, + }; } diff --git a/src/app_modules/auth/validasi/view.tsx b/src/app_modules/auth/validasi/view.tsx index 502b62c7..40398736 100644 --- a/src/app_modules/auth/validasi/view.tsx +++ b/src/app_modules/auth/validasi/view.tsx @@ -48,7 +48,7 @@ export default function Validasi({ dataOtp }: { dataOtp: any }) { if (res.role === "1") { ComponentGlobal_NotifikasiBerhasil(res.message); setLoading(true); - router.push(RouterHome.main_home, {scroll: false}); + router.push(RouterHome.main_home, { scroll: false }); } else { router.push(RouterAdminDashboard.splash_admin); } @@ -102,6 +102,7 @@ export default function Validasi({ dataOtp }: { dataOtp: any }) {
void; + setIsNewPost: any; +}) { + const [isLoading, setIsLoading] = useState(false); + + async function onLoadData() { + const loadData = await colab_getListAllProyek({ page: 1 }); + onLoad(loadData); + setIsNewPost(false); + } + + return ( + <> + +
+ +
+
+ + ); +} diff --git a/src/app_modules/colab/component/detail/header_author_list_partisipan.tsx b/src/app_modules/colab/component/detail/header_author_list_partisipan.tsx index e9577049..ca448347 100644 --- a/src/app_modules/colab/component/detail/header_author_list_partisipan.tsx +++ b/src/app_modules/colab/component/detail/header_author_list_partisipan.tsx @@ -128,7 +128,7 @@ export default function ComponentColab_AuthorNameOnListPartisipan({ radius={"xl"} variant="transparent" > - + ) : ( "" diff --git a/src/app_modules/colab/component/detail/list_partisipasi_user.tsx b/src/app_modules/colab/component/detail/list_partisipasi_user.tsx index 6f9f4153..aab5568a 100644 --- a/src/app_modules/colab/component/detail/list_partisipasi_user.tsx +++ b/src/app_modules/colab/component/detail/list_partisipasi_user.tsx @@ -19,18 +19,17 @@ import { Stack, Text, Textarea, - Title + Title, } from "@mantine/core"; import { useDisclosure } from "@mantine/hooks"; import { IconX } from "@tabler/icons-react"; import { useState } from "react"; import colab_funCreatePartisipan from "../../fun/create/fun_create_partisipan_by_user_id"; import colab_getListPartisipanByColabId from "../../fun/get/get_list_partisipan_by_id"; -import { - MODEL_COLLABORATION_PARTISIPASI -} from "../../model/interface"; +import { MODEL_COLLABORATION_PARTISIPASI } from "../../model/interface"; import ComponentColab_AuthorNameOnListPartisipan from "./header_author_list_partisipan"; - +import notifikasiToUser_funCreate from "@/app_modules/notifikasi/fun/create/create_notif_to_user"; +import mqtt_client from "@/util/mqtt_client"; export default function ComponentColab_DetailListPartisipasiUser({ listPartisipan, userLoginId, @@ -50,22 +49,43 @@ export default function ComponentColab_DetailListPartisipasiUser({ const [deskripsi, setDeskripsi] = useState(""); async function onJoin() { - await colab_funCreatePartisipan( + const res = await colab_funCreatePartisipan( colabId as any, userLoginId as any, deskripsi - ).then(async (res) => { - if (res.status === 201) { - await colab_getListPartisipanByColabId(colabId as any).then((val) => { - setApply(true); - close(); - setData(val as any); - ComponentGlobal_NotifikasiBerhasil(res.message); - }); - } else { - ComponentGlobal_NotifikasiGagal(res.message); + ); + if (res.status === 201) { + const dataNotif = { + appId: res?.data?.ProjectCollaboration?.id, + userId: res?.data?.ProjectCollaboration?.userId, + pesan: res?.data?.ProjectCollaboration?.title, + status: "Partisipan Project", + kategoriApp: "COLLABORATION", + title: "Partisipan baru telah bergabung !", + }; + + const createNotifikasi = await notifikasiToUser_funCreate({ + data: dataNotif as any, + }); + + if (createNotifikasi.status === 201) { + mqtt_client.publish( + "USER", + JSON.stringify({ + userId: dataNotif.userId, + count: 1, + }) + ); } - }); + + const resList = await colab_getListPartisipanByColabId(colabId as any); + setApply(true); + close(); + setData(resList as any); + ComponentGlobal_NotifikasiBerhasil(res.message); + } else { + ComponentGlobal_NotifikasiGagal(res.message); + } } return ( @@ -104,7 +124,7 @@ export default function ComponentColab_DetailListPartisipasiUser({