diff --git a/package.json b/package.json index c1cd1e9b..772a7593 100644 --- a/package.json +++ b/package.json @@ -2,6 +2,9 @@ "name": "hipmi", "version": "0.1.0", "private": true, + "prisma": { + "seed": "npx tsx ./prisma/seed.ts" + }, "scripts": { "dev": "next dev", "build": "next build", diff --git a/prisma/seed.ts b/prisma/seed.ts new file mode 100644 index 00000000..51655147 --- /dev/null +++ b/prisma/seed.ts @@ -0,0 +1,10 @@ +import prisma from "@/app/lib/prisma"; +import { generate_seeder } from "@/app_modules/_global/fun/generate_seeder"; + +(async () => { + console.log("start"); + await generate_seeder(); +})().finally(() => { + console.log("success"); + prisma.$disconnect(); +}); diff --git a/public/donasi/image/0aed0def-3278-41eb-be5c-9ba8f0ebdf6f.jpeg b/public/donasi/image/0aed0def-3278-41eb-be5c-9ba8f0ebdf6f.jpeg new file mode 100644 index 00000000..22cb9a6e Binary files /dev/null and b/public/donasi/image/0aed0def-3278-41eb-be5c-9ba8f0ebdf6f.jpeg differ diff --git a/public/donasi/image/70df004f-eeb0-4469-8f76-41897e712d97.jpeg b/public/donasi/image/70df004f-eeb0-4469-8f76-41897e712d97.jpeg new file mode 100644 index 00000000..d3ea1214 Binary files /dev/null and b/public/donasi/image/70df004f-eeb0-4469-8f76-41897e712d97.jpeg differ diff --git a/public/donasi/image/b832bd30-2c30-4fa2-b8bf-13ceebcbac1c.jpeg b/public/donasi/image/b832bd30-2c30-4fa2-b8bf-13ceebcbac1c.jpeg new file mode 100644 index 00000000..d0b9edda Binary files /dev/null and b/public/donasi/image/b832bd30-2c30-4fa2-b8bf-13ceebcbac1c.jpeg differ diff --git a/public/donasi/image/e85805b1-353d-4f5b-b016-226ba10e58c5.jpeg b/public/donasi/image/e85805b1-353d-4f5b-b016-226ba10e58c5.jpeg new file mode 100644 index 00000000..83e6366e Binary files /dev/null and b/public/donasi/image/e85805b1-353d-4f5b-b016-226ba10e58c5.jpeg differ diff --git a/public/donasi/image/ebba534b-7a83-4e67-abac-08da8482fcde.jpeg b/public/donasi/image/ebba534b-7a83-4e67-abac-08da8482fcde.jpeg new file mode 100644 index 00000000..6453d730 Binary files /dev/null and b/public/donasi/image/ebba534b-7a83-4e67-abac-08da8482fcde.jpeg differ diff --git a/public/donasi/image_cerita/16fc767f-18de-4390-93eb-cfc94f7620e3.jpeg b/public/donasi/image_cerita/16fc767f-18de-4390-93eb-cfc94f7620e3.jpeg new file mode 100644 index 00000000..22cb9a6e Binary files /dev/null and b/public/donasi/image_cerita/16fc767f-18de-4390-93eb-cfc94f7620e3.jpeg differ diff --git a/public/donasi/image_cerita/353d2dec-50eb-4b3a-8778-11256f57a644.jpeg b/public/donasi/image_cerita/353d2dec-50eb-4b3a-8778-11256f57a644.jpeg new file mode 100644 index 00000000..5652497a Binary files /dev/null and b/public/donasi/image_cerita/353d2dec-50eb-4b3a-8778-11256f57a644.jpeg differ diff --git a/public/donasi/image_cerita/58969439-ea34-4738-b4a3-df22f6da019b.jpeg b/public/donasi/image_cerita/58969439-ea34-4738-b4a3-df22f6da019b.jpeg new file mode 100644 index 00000000..d040a767 Binary files /dev/null and b/public/donasi/image_cerita/58969439-ea34-4738-b4a3-df22f6da019b.jpeg differ diff --git a/public/donasi/image_cerita/8f28ee52-1fef-47cb-a011-ade48aa025dd.jpeg b/public/donasi/image_cerita/8f28ee52-1fef-47cb-a011-ade48aa025dd.jpeg new file mode 100644 index 00000000..d3ea1214 Binary files /dev/null and b/public/donasi/image_cerita/8f28ee52-1fef-47cb-a011-ade48aa025dd.jpeg differ diff --git a/public/donasi/image_cerita/927e0798-4722-40f5-b7d1-e73d1d03d304.jpg b/public/donasi/image_cerita/927e0798-4722-40f5-b7d1-e73d1d03d304.jpg new file mode 100644 index 00000000..b71d094e Binary files /dev/null and b/public/donasi/image_cerita/927e0798-4722-40f5-b7d1-e73d1d03d304.jpg differ diff --git a/public/donasi/image_cerita/b1cd4f75-00b5-45f0-b132-e4714bfbffa8.jpg b/public/donasi/image_cerita/b1cd4f75-00b5-45f0-b132-e4714bfbffa8.jpg new file mode 100644 index 00000000..b71d094e Binary files /dev/null and b/public/donasi/image_cerita/b1cd4f75-00b5-45f0-b132-e4714bfbffa8.jpg differ diff --git a/public/donasi/image_cerita/f6192006-f93b-4222-8e89-41388732e970.jpeg b/public/donasi/image_cerita/f6192006-f93b-4222-8e89-41388732e970.jpeg new file mode 100644 index 00000000..6453d730 Binary files /dev/null and b/public/donasi/image_cerita/f6192006-f93b-4222-8e89-41388732e970.jpeg differ diff --git a/public/donasi/invoice/49823a9a-0a6f-4098-85f9-25fa20b235e1.jpg b/public/donasi/invoice/49823a9a-0a6f-4098-85f9-25fa20b235e1.jpg new file mode 100644 index 00000000..ea83eb05 Binary files /dev/null and b/public/donasi/invoice/49823a9a-0a6f-4098-85f9-25fa20b235e1.jpg differ diff --git a/src/app/api/seeder/route.ts b/src/app/api/seeder/route.ts index cb0dffd5..2f2ff12f 100644 --- a/src/app/api/seeder/route.ts +++ b/src/app/api/seeder/route.ts @@ -29,6 +29,7 @@ import nomor_admin from "../../../bin/seeder/nomor_admin.json"; export async function GET(req: Request) { const dev = new URL(req.url).searchParams.get("dev"); if (dev === "DEV-HIPMI") { + for (let i of userRole) { const data = await prisma.masterUserRole.upsert({ where: { diff --git a/src/app/dev/crowd/main/loading.tsx b/src/app/dev/crowd/main/loading.tsx deleted file mode 100644 index 380b3fcd..00000000 --- a/src/app/dev/crowd/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/donasi/cerita_penggalang/[id]/loading.tsx b/src/app/dev/donasi/cerita_penggalang/[id]/loading.tsx deleted file mode 100644 index 380b3fcd..00000000 --- a/src/app/dev/donasi/cerita_penggalang/[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/create/cerita_penggalang/[id]/loading.tsx b/src/app/dev/donasi/create/cerita_penggalang/[id]/loading.tsx deleted file mode 100644 index 380b3fcd..00000000 --- a/src/app/dev/donasi/create/cerita_penggalang/[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/create/create_donasi/loading.tsx b/src/app/dev/donasi/create/create_donasi/loading.tsx deleted file mode 100644 index 380b3fcd..00000000 --- a/src/app/dev/donasi/create/create_donasi/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/detail/detail_draft/[id]/loading.tsx b/src/app/dev/donasi/detail/detail_draft/[id]/loading.tsx deleted file mode 100644 index 380b3fcd..00000000 --- a/src/app/dev/donasi/detail/detail_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/donasi/detail/detail_draft/[id]/page.tsx b/src/app/dev/donasi/detail/detail_draft/[id]/page.tsx index 4439b3ae..f15353f6 100644 --- a/src/app/dev/donasi/detail/detail_draft/[id]/page.tsx +++ b/src/app/dev/donasi/detail/detail_draft/[id]/page.tsx @@ -2,7 +2,8 @@ import { DetailDraftDonasi } from "@/app_modules/donasi"; import { Donasi_getOneById } from "@/app_modules/donasi/fun/get/get_one_donasi_by_id"; export default async function Page({ params }: { params: { id: string } }) { - const dataDonasi = await Donasi_getOneById(params.id); + const donasiId = params.id + const dataDonasi = await Donasi_getOneById(donasiId); return ( <> diff --git a/src/app/dev/donasi/detail/detail_main/[id]/loading.tsx b/src/app/dev/donasi/detail/detail_main/[id]/loading.tsx deleted file mode 100644 index 380b3fcd..00000000 --- a/src/app/dev/donasi/detail/detail_main/[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/detail/detail_publish/[id]/loading.tsx b/src/app/dev/donasi/detail/detail_publish/[id]/loading.tsx deleted file mode 100644 index 380b3fcd..00000000 --- a/src/app/dev/donasi/detail/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/donasi/detail/detail_reject/[id]/loading.tsx b/src/app/dev/donasi/detail/detail_reject/[id]/loading.tsx deleted file mode 100644 index 380b3fcd..00000000 --- a/src/app/dev/donasi/detail/detail_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/donasi/detail/detail_review/[id]/loading.tsx b/src/app/dev/donasi/detail/detail_review/[id]/loading.tsx deleted file mode 100644 index 380b3fcd..00000000 --- a/src/app/dev/donasi/detail/detail_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/donasi/edit/edit_cerita/[id]/loading.tsx b/src/app/dev/donasi/edit/edit_cerita/[id]/loading.tsx deleted file mode 100644 index 380b3fcd..00000000 --- a/src/app/dev/donasi/edit/edit_cerita/[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/edit_donasi/[id]/loading.tsx b/src/app/dev/donasi/edit/edit_donasi/[id]/loading.tsx deleted file mode 100644 index 380b3fcd..00000000 --- a/src/app/dev/donasi/edit/edit_donasi/[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/edit_rekening/[id]/loading.tsx b/src/app/dev/donasi/edit/edit_rekening/[id]/loading.tsx deleted file mode 100644 index 380b3fcd..00000000 --- a/src/app/dev/donasi/edit/edit_rekening/[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/main/loading.tsx b/src/app/dev/donasi/main/loading.tsx deleted file mode 100644 index 380b3fcd..00000000 --- a/src/app/dev/donasi/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/donasi/page_pop_up/create/loading.tsx b/src/app/dev/donasi/page_pop_up/create/loading.tsx deleted file mode 100644 index 380b3fcd..00000000 --- a/src/app/dev/donasi/page_pop_up/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/donasi/proses_donasi/invoice/[id]/loading.tsx b/src/app/dev/donasi/proses_donasi/invoice/[id]/loading.tsx deleted file mode 100644 index 380b3fcd..00000000 --- a/src/app/dev/donasi/proses_donasi/invoice/[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/masukan_donasi/[id]/loading.tsx b/src/app/dev/donasi/proses_donasi/masukan_donasi/[id]/loading.tsx deleted file mode 100644 index 380b3fcd..00000000 --- a/src/app/dev/donasi/proses_donasi/masukan_donasi/[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/metode_pembayaran/[id]/loading.tsx b/src/app/dev/donasi/proses_donasi/metode_pembayaran/[id]/loading.tsx deleted file mode 100644 index 380b3fcd..00000000 --- a/src/app/dev/donasi/proses_donasi/metode_pembayaran/[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]/loading.tsx b/src/app/dev/donasi/proses_donasi/proses_transaksi/[id]/loading.tsx deleted file mode 100644 index 380b3fcd..00000000 --- a/src/app/dev/donasi/proses_donasi/proses_transaksi/[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 e9c2f0ed..b74a91c0 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 @@ -6,7 +6,6 @@ export default async function Page({ params }: { params: { id: string } }) { // console.log(params.id) const dataInvoice = await Donasi_getOneInvoiceById(params.id); const nomorAdmin = await donasi_getMasterNomorAdmin(); - console.log(nomorAdmin); return ( <> diff --git a/src/app/dev/vote/detail/main/[id]/page.tsx b/src/app/dev/vote/detail/main/[id]/page.tsx index cbdfffe3..c85e4ab3 100644 --- a/src/app/dev/vote/detail/main/[id]/page.tsx +++ b/src/app/dev/vote/detail/main/[id]/page.tsx @@ -1,3 +1,4 @@ +import { user_getOneUserId } from "@/app_modules/fun_global/get_user_token"; import { Vote_MainDetail } from "@/app_modules/vote"; import { Vote_cekKontributorById } from "@/app_modules/vote/fun/get/cek_kontributor_by_id"; import { Vote_getHasilVoteById } from "@/app_modules/vote/fun/get/get_list_hasil_by_id"; @@ -12,7 +13,7 @@ export default async function Page({ params }: { params: { id: string } }) { const isKontributor = await Vote_cekKontributorById(voteId); const pilihanKontributor = await Vote_getOnePilihanVotingByUserId(voteId); const listKontributor = await Vote_getListKontributorById(voteId); - + const userLoginId = await user_getOneUserId(); return ( <> @@ -22,6 +23,7 @@ export default async function Page({ params }: { params: { id: string } }) { isKontributor={isKontributor} pilihanKontributor={pilihanKontributor as any} listKontributor={listKontributor as any} + userLoginId={userLoginId} /> ); diff --git a/src/app_modules/_global/fun/generate_seeder.ts b/src/app_modules/_global/fun/generate_seeder.ts new file mode 100644 index 00000000..837c2f12 --- /dev/null +++ b/src/app_modules/_global/fun/generate_seeder.ts @@ -0,0 +1,408 @@ +import prisma from "@/app/lib/prisma"; +import bidangBisnis from "../../../bin/seeder/bidang_bisnis.json"; +import collaboration_industri from "../../../bin/seeder/colab/master_industri.json"; +import collaboration_status from "../../../bin/seeder/colab/master_status.json"; +import donasi_namaBank from "../../../bin/seeder/donasi/master_bank.json"; +import donasi_durasi from "../../../bin/seeder/donasi/master_durasi.json"; +import donasi_kategori from "../../../bin/seeder/donasi/master_kategori.json"; +import donasi_status from "../../../bin/seeder/donasi/master_status.json"; +import donasi_status_invoice from "../../../bin/seeder/donasi/master_status_invoice.json"; +import event_status from "../../../bin/seeder/event/master_status.json"; +import event_tipe_acara from "../../../bin/seeder/event/master_tipe_acara.json"; +import forum_kategori_report from "../../../bin/seeder/forum/master_report.json"; +import forum_status_posting from "../../../bin/seeder/forum/master_status.json"; +import jenisProgres from "../../../bin/seeder/investasi/master_progres.json"; +import namaBank from "../../../bin/seeder/investasi/nama_bank.json"; +import pembagianDeviden from "../../../bin/seeder/investasi/pembagian_deviden.json"; +import pencarianInvestor from "../../../bin/seeder/investasi/pencarian_investor.json"; +import periodeDeviden from "../../../bin/seeder/investasi/periode_deviden.json"; +import statusInvestasi from "../../../bin/seeder/investasi/status_investasi.json"; +import statusTransaksiInvestasi from "../../../bin/seeder/investasi/status_transaksi_investasi.json"; +import master_status from "../../../bin/seeder/master_status.json"; +import nomor_admin from "../../../bin/seeder/nomor_admin.json"; +import userRole from "../../../bin/seeder/user_role.json"; +import userSeeder from "../../../bin/seeder/user_seeder.json"; +import voting_status from "../../../bin/seeder/voting/master_status.json"; + +export async function generate_seeder() { + for (let i of userRole) { + await prisma.masterUserRole.upsert({ + where: { + id: i.id.toString(), + }, + update: { + id: i.id.toString(), + name: i.name, + }, + create: { + id: i.id.toString(), + name: i.name, + }, + }); + } + + for (let i of userSeeder) { + await prisma.user.upsert({ + where: { + nomor: i.nomor, + }, + create: { + nomor: i.nomor, + username: i.name, + masterUserRoleId: i.masterUserRoleId, + }, + update: { + nomor: i.nomor, + username: i.name, + masterUserRoleId: i.masterUserRoleId, + }, + }); + } + + for (let i of bidangBisnis) { + await prisma.masterBidangBisnis.upsert({ + where: { + id: i.id.toString(), + }, + update: { + id: i.id.toString(), + name: i.name, + }, + create: { + id: i.id.toString(), + name: i.name, + }, + }); + } + + for (let i of pencarianInvestor) { + await prisma.masterPencarianInvestor.upsert({ + where: { + id: i.id.toString(), + }, + update: { + id: i.id.toString(), + name: i.name, + }, + create: { + id: i.id.toString(), + name: i.name, + }, + }); + } + + for (let i of pembagianDeviden) { + await prisma.masterPembagianDeviden.upsert({ + where: { + id: i.id.toString(), + }, + update: { + id: i.id.toString(), + name: i.name, + }, + create: { + id: i.id.toString(), + name: i.name, + }, + }); + } + + for (let i of periodeDeviden) { + await prisma.masterPeriodeDeviden.upsert({ + where: { + id: i.id.toString(), + }, + update: { + id: i.id.toString(), + name: i.name, + }, + create: { + id: i.id.toString(), + name: i.name, + }, + }); + } + + for (let i of statusInvestasi) { + await prisma.masterStatusInvestasi.upsert({ + where: { + id: i.id, + }, + create: { + id: i.id, + name: i.name, + color: i.color, + }, + update: { + id: i.id, + name: i.name, + color: i.color, + }, + }); + } + + for (let i of namaBank) { + await prisma.masterBank.upsert({ + where: { + id: i.id.toString(), + }, + create: { + id: i.id.toString(), + name: i.name, + norek: i.norek.toString(), + }, + update: { + id: i.id.toString(), + name: i.name, + norek: i.norek.toString(), + }, + }); + } + + for (let i of statusTransaksiInvestasi) { + await prisma.masterStatusTransaksiInvestasi.upsert({ + where: { + id: i.id, + }, + create: { + id: i.id, + name: i.name, + color: i.color, + }, + update: { + id: i.id, + name: i.name, + color: i.color, + }, + }); + } + + for (let i of jenisProgres) { + await prisma.masterProgresInvestasi.upsert({ + where: { + id: i.id, + }, + create: { + id: i.id, + name: i.name, + }, + update: { + name: i.name, + }, + }); + } + + for (let d of donasi_status) { + await prisma.donasiMaster_StatusDonasi.upsert({ + where: { + id: d.id, + }, + create: { + id: d.id, + name: d.name, + }, + update: { + name: d.name, + }, + }); + } + + for (let d of donasi_kategori) { + await prisma.donasiMaster_Kategori.upsert({ + where: { + id: d.id, + }, + create: { + id: d.id, + name: d.name, + }, + update: { + name: d.name, + }, + }); + } + + for (let d of donasi_durasi) { + await prisma.donasiMaster_Durasi.upsert({ + where: { + id: d.id, + }, + create: { + id: d.id, + name: d.name, + }, + update: { + name: d.name, + }, + }); + } + + for (let i of donasi_namaBank) { + await prisma.donasiMaster_Bank.upsert({ + where: { + id: i.id, + }, + create: { + id: i.id, + name: i.name, + norek: i.norek, + }, + update: { + id: i.id, + name: i.name, + norek: i.norek, + }, + }); + } + + for (let d of donasi_status_invoice) { + await prisma.donasiMaster_StatusInvoice.upsert({ + where: { + id: d.id, + }, + create: { + id: d.id, + name: d.name, + }, + update: { + name: d.name, + }, + }); + } + + for (let e of event_status) { + await prisma.eventMaster_Status.upsert({ + where: { + id: e.id, + }, + create: { + id: e.id, + name: e.name, + }, + update: { + name: e.name, + }, + }); + } + + for (let e of event_tipe_acara) { + await prisma.eventMaster_TipeAcara.upsert({ + where: { + id: e.id, + }, + create: { + id: e.id, + name: e.name, + }, + update: { + name: e.name, + }, + }); + } + + for (let v of voting_status) { + await prisma.voting_Status.upsert({ + where: { + id: v.id, + }, + create: { + id: v.id, + name: v.name, + }, + update: { + name: v.name, + }, + }); + } + + for (let m of master_status) { + await prisma.masterStatus.upsert({ + where: { + id: m.id, + }, + create: { + id: m.id, + name: m.name, + }, + update: { + name: m.name, + }, + }); + } + + for (let m of forum_kategori_report) { + await prisma.forumMaster_KategoriReport.upsert({ + where: { + id: m.id as number, + }, + create: { + title: m.title, + deskripsi: m.deskripsi, + }, + update: { + title: m.title, + deskripsi: m.deskripsi, + }, + }); + } + + for (let s of forum_status_posting) { + await prisma.forumMaster_StatusPosting.upsert({ + where: { + id: s.id, + }, + create: { + status: s.status, + }, + update: { + status: s.status, + }, + }); + } + + for (let p of collaboration_industri) { + await prisma.projectCollaborationMaster_Industri.upsert({ + where: { + id: p.id, + }, + create: { + name: p.name, + }, + update: { + name: p.name, + }, + }); + } + + for (let p of collaboration_status) { + await prisma.projectCollaborationMaster_Status.upsert({ + where: { + id: p.id, + }, + create: { + name: p.name, + }, + update: { + name: p.name, + }, + }); + } + + for (let a of nomor_admin) { + await prisma.nomorAdmin.upsert({ + where: { + id: a.id, + }, + create: { + id: a.id, + nomor: a.nomor, + }, + update: { + id: a.id, + nomor: a.nomor, + }, + }); + } + + return { status: 200, success: true }; +} diff --git a/src/app_modules/_global/notif_global/notifikasi_berhasil.tsx b/src/app_modules/_global/notif_global/notifikasi_berhasil.tsx index 92b8c785..55a1749d 100644 --- a/src/app_modules/_global/notif_global/notifikasi_berhasil.tsx +++ b/src/app_modules/_global/notif_global/notifikasi_berhasil.tsx @@ -21,7 +21,9 @@ export async function ComponentGlobal_NotifikasiBerhasil( return notifications.show({ message: (
- {text} + + {text} +
), color: "green", diff --git a/src/app_modules/_global/notif_global/notifikasi_gagal.tsx b/src/app_modules/_global/notif_global/notifikasi_gagal.tsx index 64e97ead..16b2fdbd 100644 --- a/src/app_modules/_global/notif_global/notifikasi_gagal.tsx +++ b/src/app_modules/_global/notif_global/notifikasi_gagal.tsx @@ -12,7 +12,7 @@ export async function ComponentGlobal_NotifikasiGagal(text: string) { return notifications.show({ message: (
- {text} + {text}
), color: "red", diff --git a/src/app_modules/_global/notif_global/notifikasi_peringatan.tsx b/src/app_modules/_global/notif_global/notifikasi_peringatan.tsx index 73783e33..682465da 100644 --- a/src/app_modules/_global/notif_global/notifikasi_peringatan.tsx +++ b/src/app_modules/_global/notif_global/notifikasi_peringatan.tsx @@ -15,7 +15,9 @@ export async function ComponentGlobal_NotifikasiPeringatan( return notifications.show({ message: (
- {text} + + {text} +
), color: "yellow.1", @@ -24,9 +26,7 @@ export async function ComponentGlobal_NotifikasiPeringatan( style: { borderWidth: "0.5px", borderStyle: "solid", - borderColor: "red" - - + borderColor: "red", }, icon: ( diff --git a/src/app_modules/admin/layout.tsx b/src/app_modules/admin/layout.tsx index 429adf0c..8f5e261b 100644 --- a/src/app_modules/admin/layout.tsx +++ b/src/app_modules/admin/layout.tsx @@ -51,6 +51,7 @@ import adminNotifikasi_getByUserId from "./notifikasi/fun/get/get_notifikasi_by_ import adminNotifikasi_funUpdateIsReadById from "./notifikasi/fun/update/fun_update_is_read_by_id"; import adminNotifikasi_findRouterJob from "./notifikasi/route_setting/job"; import adminNotifikasi_findRouterForum from "./notifikasi/route_setting/forum"; +import { adminNotifikasi_findRouterVoting } from "./notifikasi/route_setting/voting"; export default function AdminLayout({ children, @@ -297,6 +298,7 @@ export default function AdminLayout({ > {children} + {/* Drawer Mobile View */} setOpened(false)} size={"50%"}> @@ -389,6 +391,7 @@ function DrawerNotifikasi({ }, }} onClick={async () => { + // JOB e?.kategoriApp === "JOB" && adminNotifikasi_findRouterJob({ data: e, @@ -399,6 +402,7 @@ function DrawerNotifikasi({ onToggleNavbar: onToggleNavbar, }); + // FORUM e?.kategoriApp === "FORUM" && adminNotifikasi_findRouterForum({ data: e, @@ -411,6 +415,19 @@ function DrawerNotifikasi({ }, }); + // VOTE + e?.kategoriApp === "VOTING" && + adminNotifikasi_findRouterVoting({ + 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/main_dashboard/main/view.tsx b/src/app_modules/admin/main_dashboard/main/view.tsx index d47cb52d..e4d27390 100644 --- a/src/app_modules/admin/main_dashboard/main/view.tsx +++ b/src/app_modules/admin/main_dashboard/main/view.tsx @@ -1,22 +1,14 @@ "use client"; import { - ActionIcon, - Box, - Center, Divider, Grid, Group, Paper, Stack, Text, - Title, + Title } from "@mantine/core"; -import Admin_Investasi from "../../investasi/main/view"; -import { IconChevronsRight } from "@tabler/icons-react"; -import router from "next/router"; -import * as echarts from 'echarts'; -import EChartsReact from "echarts-for-react"; export default function AdminMain({countUser, countPorto}: {countUser: number, countPorto: number} ) { diff --git a/src/app_modules/admin/notifikasi/fun/get/get_notifikasi_by_user_id.ts b/src/app_modules/admin/notifikasi/fun/get/get_notifikasi_by_user_id.ts index 5f2bfc74..d60b0047 100644 --- a/src/app_modules/admin/notifikasi/fun/get/get_notifikasi_by_user_id.ts +++ b/src/app_modules/admin/notifikasi/fun/get/get_notifikasi_by_user_id.ts @@ -8,10 +8,14 @@ export default async function adminNotifikasi_getByUserId() { const adminId = await user_getOneUserId(); const data = await prisma.notifikasi.findMany({ - - orderBy: { - createdAt: "desc", - }, + orderBy: [ + { + isRead: "asc", + }, + { + createdAt: "desc", + }, + ], where: { adminId: adminId, userRoleId: "2", diff --git a/src/app_modules/admin/notifikasi/route_setting/voting.ts b/src/app_modules/admin/notifikasi/route_setting/voting.ts new file mode 100644 index 00000000..5e8bcc07 --- /dev/null +++ b/src/app_modules/admin/notifikasi/route_setting/voting.ts @@ -0,0 +1,27 @@ +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_findRouterVoting({ + data, + router, + onChangeNavbar, + onToggleNavbar, +}: { + data: MODEL_NOTIFIKASI; + router: AppRouterInstance; + onChangeNavbar: (val: any) => void; + onToggleNavbar: (val: any) => void; +}) { + const path = RouterAdminVote.table_review; + + if (data.status === "Review") { + router.push(path, { scroll: false }); + onChangeNavbar({ + id: 5, + childId: 53, + }); + } + + onToggleNavbar(true); +} diff --git a/src/app_modules/admin/vote/child/table_review/index.tsx b/src/app_modules/admin/vote/child/table_review/index.tsx index db8463bf..f14023a2 100644 --- a/src/app_modules/admin/vote/child/table_review/index.tsx +++ b/src/app_modules/admin/vote/child/table_review/index.tsx @@ -1,19 +1,13 @@ "use client"; -import { RouterProfile } from "@/app/lib/router_hipmi/router_katalog"; import ComponentAdminGlobal_HeaderTamplate from "@/app_modules/admin/component_global/header_tamplate"; -import { AdminEvent_getListPesertaById } from "@/app_modules/admin/event/fun/get/get_list_peserta_by_id"; import { MODEL_VOTING } from "@/app_modules/vote/model/interface"; import { - Avatar, Box, Button, Center, - Divider, - Grid, Group, Modal, - Paper, ScrollArea, Spoiler, Stack, @@ -23,20 +17,20 @@ import { Title, } from "@mantine/core"; import { useDisclosure } from "@mantine/hooks"; -import { IconBan } from "@tabler/icons-react"; -import { IconEyeShare } from "@tabler/icons-react"; +import { IconBan, IconEyeShare } from "@tabler/icons-react"; import _ from "lodash"; import { useRouter } from "next/navigation"; -import { useState } from "react"; -import { AdminVote_funEditStatusPublishById } from "../../fun/edit/fun_edit_status_publish_by_id"; -import toast from "react-simple-toasts"; -import { AdminVote_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 moment from "moment"; +import { useState } from "react"; +import { AdminVote_funEditStatusPublishById } from "../../fun/edit/fun_edit_status_publish_by_id"; +import { AdminEvent_funEditCatatanById } from "../../fun/edit/fun_edit_status_reject_by_id"; +import { AdminVote_getListTableByStatusId } from "../../fun/get/get_list_table_by_status_id"; +import mqtt_client from "@/util/mqtt_client"; +import adminNotifikasi_funCreateToUser from "@/app_modules/admin/notifikasi/fun/create/fun_create_notif_user"; export default function AdminVote_TableReview({ listVote, @@ -255,17 +249,36 @@ async function onPublish( return ComponentGlobal_NotifikasiPeringatan("Tanggal Voting Lewat"); setVotingId(voteId); - await AdminVote_funEditStatusPublishById(voteId).then(async (res) => { - if (res.status === 200) { - await AdminVote_getListTableByStatusId("2").then((val) => { - setData(val); - ComponentGlobal_NotifikasiBerhasil(res.message); - setLoadingPublish(true); - }); - } else { - ComponentGlobal_NotifikasiGagal(res.message); + const res = await AdminVote_funEditStatusPublishById(voteId); + if (res.status === 200) { + const dataNotif = { + appId: res.data?.id, + status: res.data?.Voting_Status?.name as any, + userId: res.data?.authorId as any, + pesan: res.data?.title as any, + kategoriApp: "VOTING", + title: "Voting 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 AdminVote_getListTableByStatusId("2").then((val) => { + setData(val); + ComponentGlobal_NotifikasiBerhasil(res.message); + setLoadingPublish(true); + }); + } else { + ComponentGlobal_NotifikasiGagal(res.message); + } } async function onReject( @@ -279,16 +292,36 @@ async function onReject( id: voteId, catatan: catatan, }; - await AdminEvent_funEditCatatanById(data as any).then(async (res) => { - if (res.status === 200) { - await AdminVote_getListTableByStatusId("2").then((val) => { - setData(val); - setSaveLoading(true); - ComponentGlobal_NotifikasiBerhasil(res.message); - close(); - }); - } else { - ComponentGlobal_NotifikasiGagal(res.message); + + const res = await AdminEvent_funEditCatatanById(data as any); + if (res.status === 200) { + const dataNotif = { + appId: res.data?.id, + status: res.data?.Voting_Status?.name as any, + userId: res.data?.authorId as any, + pesan: res.data?.title as any, + kategoriApp: "VOTING", + title: "Voting 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 AdminVote_getListTableByStatusId("2").then((val) => { + setData(val); + setSaveLoading(true); + ComponentGlobal_NotifikasiBerhasil(res.message); + close(); + }); + } else { + ComponentGlobal_NotifikasiGagal(res.message); + } } diff --git a/src/app_modules/admin/vote/fun/edit/fun_edit_status_publish_by_id.ts b/src/app_modules/admin/vote/fun/edit/fun_edit_status_publish_by_id.ts index 1614b610..59c61a14 100644 --- a/src/app_modules/admin/vote/fun/edit/fun_edit_status_publish_by_id.ts +++ b/src/app_modules/admin/vote/fun/edit/fun_edit_status_publish_by_id.ts @@ -4,20 +4,31 @@ import prisma from "@/app/lib/prisma"; import { revalidatePath } from "next/cache"; export async function AdminVote_funEditStatusPublishById(voteId: string) { - - const updt = await prisma.voting.update({ - where: { - id: voteId, + const updt = await prisma.voting.update({ + where: { + id: voteId, + }, + data: { + voting_StatusId: "1", + }, + select: { + id: true, + title: true, + authorId: true, + Voting_Status: { + select: { + name: true, + }, }, - data: { - voting_StatusId: "1", - }, - }); + }, + }); - if (!updt) return { status: 400, message: "Update Gagal" }; - revalidatePath("/dev/admin/vote/main"); - return { - status: 200, - message: "Berhasil Update Status", - }; + if (!updt) return { status: 400, message: "Update Gagal" }; + revalidatePath("/dev/admin/vote/main"); + + return { + data: updt, + status: 200, + message: "Berhasil Update Status", + }; } diff --git a/src/app_modules/admin/vote/fun/edit/fun_edit_status_reject_by_id.ts b/src/app_modules/admin/vote/fun/edit/fun_edit_status_reject_by_id.ts index 5cb8cd46..66800203 100644 --- a/src/app_modules/admin/vote/fun/edit/fun_edit_status_reject_by_id.ts +++ b/src/app_modules/admin/vote/fun/edit/fun_edit_status_reject_by_id.ts @@ -15,11 +15,22 @@ export async function AdminEvent_funEditCatatanById( voting_StatusId: "4", catatan: data.catatan, }, + select: { + id: true, + title: true, + authorId: true, + Voting_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/colab/create/index.tsx b/src/app_modules/colab/create/index.tsx index 2628621b..58597789 100644 --- a/src/app_modules/colab/create/index.tsx +++ b/src/app_modules/colab/create/index.tsx @@ -23,6 +23,7 @@ import _ from "lodash"; import { ComponentGlobal_NotifikasiPeringatan } from "@/app_modules/_global/notif_global/notifikasi_peringatan"; import { MainColor } from "@/app_modules/_global/color/color_pallet"; import ComponentGlobal_InputCountDown from "@/app_modules/_global/component/input_countdown"; +import mqtt_client from "@/util/mqtt_client"; export default function Colab_Create({ listIndustri, @@ -184,18 +185,24 @@ function ButtonAction({ value }: { value: any }) { return ComponentGlobal_NotifikasiPeringatan("Lengkapi Data"); if (value.projectCollaborationMaster_IndustriId === 0) return ComponentGlobal_NotifikasiPeringatan("Pilih Industri"); - // if (value.jumlah_partisipan < 2) - // return ComponentGlobal_NotifikasiPeringatan("Minimal Ada 2 Partisipan"); - await colab_funCreateProyek(value).then((res) => { - if (res.status === 201) { - setLoading(true); - router.back(); - ComponentGlobal_NotifikasiBerhasil(res.message); - } else { - ComponentGlobal_NotifikasiGagal(res.message); - } - }); + const res = await colab_funCreateProyek(value); + if (res.status === 201) { + // const dataNotif: any = { + // appId: res.data?.id as any, + // kategoriApp: "VOTING", + // status: create.data?.MasterStatus?.name as any, + // userId: create.data?.authorId as any, + // pesan: create.data?.title as any, + // title: "Job baru", + // }; + + setLoading(true); + router.back(); + ComponentGlobal_NotifikasiBerhasil(res.message); + } else { + ComponentGlobal_NotifikasiGagal(res.message); + } } // console.log(value); diff --git a/src/app_modules/colab/fun/create/fun_create_proyek.ts b/src/app_modules/colab/fun/create/fun_create_proyek.ts index f09bd685..5a194ed2 100644 --- a/src/app_modules/colab/fun/create/fun_create_proyek.ts +++ b/src/app_modules/colab/fun/create/fun_create_proyek.ts @@ -12,7 +12,7 @@ export default async function colab_funCreateProyek( ) { const AuthorId = await user_getOneUserId(); - const create = await prisma.projectCollaboration.create({ + const data = await prisma.projectCollaboration.create({ data: { title: value.title, lokasi: value.lokasi, @@ -25,7 +25,7 @@ export default async function colab_funCreateProyek( }, }); - if (!create) return { status: 400, message: "Gagal Membuat Proyek" }; + if (!data) return { status: 400, message: "Gagal Membuat Proyek" }; revalidatePath(RouterColab.beranda); - return { status: 201, message: "Berhasil Membuar Proyek" }; + return { data, status: 201, message: "Berhasil Membuar Proyek" }; } diff --git a/src/app_modules/crowd/main/layout.tsx b/src/app_modules/crowd/main/layout.tsx index 230e5ca1..3484fa77 100644 --- a/src/app_modules/crowd/main/layout.tsx +++ b/src/app_modules/crowd/main/layout.tsx @@ -1,8 +1,8 @@ "use client"; -import AppComponentGlobal_LayoutTamplate from "@/app_modules/_global/component_layout_tamplate"; -import ComponentGlobal_HeaderTamplate from "@/app_modules/_global/header_tamplate"; -import { useRouter } from "next/navigation"; +import { RouterHome } from "@/app/lib/router_hipmi/router_home"; +import UIGlobal_LayoutHeaderTamplate from "@/app_modules/_global/ui/ui_header_tamplate"; +import UIGlobal_LayoutTamplate from "@/app_modules/_global/ui/ui_layout_tamplate"; import React from "react"; export default function LayoutMainCrowd({ @@ -10,19 +10,18 @@ export default function LayoutMainCrowd({ }: { children: React.ReactNode; }) { - const router = useRouter(); return ( <> - } > {children} - + ); } diff --git a/src/app_modules/crowd/main/view.tsx b/src/app_modules/crowd/main/view.tsx index 92675a41..283ca741 100644 --- a/src/app_modules/crowd/main/view.tsx +++ b/src/app_modules/crowd/main/view.tsx @@ -1,14 +1,16 @@ "use client"; import { RouterCrowd } from "@/app/lib/router_hipmi/router_crowd"; -import { Warna } from "@/app/lib/warna"; +import { + AccentColor, + MainColor, +} from "@/app_modules/_global/color/color_pallet"; +import ComponentGlobal_Loader from "@/app_modules/_global/component/loader"; +import { ComponentGlobal_NotifikasiPeringatan } from "@/app_modules/_global/notif_global/notifikasi_peringatan"; import { gs_donasi_hot_menu } from "@/app_modules/donasi/global_state"; import { gs_investasiFooter } from "@/app_modules/investasi/g_state"; import { AspectRatio, - Button, - Center, - Flex, Grid, Image, Loader, @@ -21,7 +23,6 @@ import { IconChevronRight } from "@tabler/icons-react"; import { useAtom } from "jotai"; import { useRouter } from "next/navigation"; import { useState } from "react"; -import toast from "react-simple-toasts"; export default function MainCrowd() { const router = useRouter(); @@ -29,26 +30,46 @@ export default function MainCrowd() { const [donasiHotMenu, setDonasiHotMenu] = useAtom(gs_donasi_hot_menu); const [loadingInv, setLoadingInv] = useState(false); const [loadingDon, setLoadingDon] = useState(false); + return ( <> - + {/* - - + */} + Logo + + {/* INVESTASI */} { - setLoadingInv(true); - router.push(RouterCrowd.investasi); - setChangeColor(0); + // setLoadingInv(true); + // router.push(RouterCrowd.investasi); + // setChangeColor(0); + ComponentGlobal_NotifikasiPeringatan( + "Sementara ini sedang maintenance", + 3000 + ); }} > @@ -61,20 +82,34 @@ export default function MainCrowd() { - {loadingInv ? : } + {loadingInv ? ( + + ) : ( + + )} + + {/* DONASI */} { - setLoadingDon(true); - router.push(RouterCrowd.donasi); - setDonasiHotMenu(0); + // setLoadingDon(true); + // router.push(RouterCrowd.donasi); + // setDonasiHotMenu(0); + ComponentGlobal_NotifikasiPeringatan( + "Sementara ini sedang maintenance", + 3000 + ); }} > @@ -87,7 +122,11 @@ export default function MainCrowd() { - {loadingDon ? : } + {loadingDon ? ( + + ) : ( + + )} diff --git a/src/app_modules/crowd/splash/view.tsx b/src/app_modules/crowd/splash/view.tsx index 7bad5f81..65e4e84f 100644 --- a/src/app_modules/crowd/splash/view.tsx +++ b/src/app_modules/crowd/splash/view.tsx @@ -1,23 +1,20 @@ "use client"; -import { Warna } from "@/app/lib/warna"; -import { Center, Image, Paper, Stack, Text, Title } from "@mantine/core"; +import { RouterCrowd } from "@/app/lib/router_hipmi/router_crowd"; +import UIGlobal_SplashScreen from "@/app_modules/_global/ui/ui_splash"; import { useShallowEffect } from "@mantine/hooks"; +import { IconHeartHandshake } from "@tabler/icons-react"; import { useRouter } from "next/navigation"; export default function SplashCrowd() { const router = useRouter(); useShallowEffect(() => { - setTimeout(() => router.push("/dev/crowd/main"), 1000); + setTimeout(() => router.push(RouterCrowd.main), 1000); }, []); return ( <> -
- - - -
+ } /> ); } diff --git a/src/app_modules/donasi/component/box_publish.tsx b/src/app_modules/donasi/component/box_publish.tsx deleted file mode 100644 index 35d32c2b..00000000 --- a/src/app_modules/donasi/component/box_publish.tsx +++ /dev/null @@ -1,100 +0,0 @@ -"use client"; - -import { RouterDonasi } from "@/app/lib/router_hipmi/router_donasi"; -import { - SimpleGrid, - Box, - Stack, - Grid, - AspectRatio, - Paper, - Progress, - Divider, - Image, - Text, -} from "@mantine/core"; -import router from "next/router"; -import ComponentDonasi_TampilanHitungMundur from "./tampilan_hitung_mundur"; -import TampilanRupiahDonasi from "./tampilan_rupiah"; -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, - path, -}: { - dataDonasi: MODEL_DONASI[]; - path: string; -}) { - const { height, width } = useViewportSize(); - const router = useRouter(); - const [donasi, setDonasi] = useState(dataDonasi); - return ( - <> - {_.isEmpty(dataDonasi) ? ( - - ) : ( - - {donasi.map((e, i) => ( - { - router.push(path + `${e.id}`); - }} - > - - - - - - Foto - - - - - - - - {e.title} - - - - - - Terkumpul - - - - - - - - {width > 575 ? "" : } - - - ))} - - )} - - ); -} diff --git a/src/app_modules/donasi/component/card_view/box_publish.tsx b/src/app_modules/donasi/component/card_view/box_publish.tsx new file mode 100644 index 00000000..1e4ff58e --- /dev/null +++ b/src/app_modules/donasi/component/card_view/box_publish.tsx @@ -0,0 +1,84 @@ +"use client"; + +import { RouterDonasi } from "@/app/lib/router_hipmi/router_donasi"; +import { AccentColor } from "@/app_modules/_global/color/color_pallet"; +import { + AspectRatio, + Box, + Grid, + Image, + Paper, + Progress, + Stack, + Text +} from "@mantine/core"; +import { useRouter } from "next/navigation"; +import ComponentDonasi_TampilanHitungMundur from "../tampilan_hitung_mundur"; +import TampilanRupiahDonasi from "../tampilan_rupiah"; + +export default function ComponentDonasi_CardPublish({ + data, + path, +}: { + data: any; + path: string; +}) { + + const router = useRouter(); + + return ( + <> + { + router.push(path + `${data.id}`); + }} + > + + + + + + Foto + + + + + + + + {data.title} + + + + + + Terkumpul + + + + + + + + {/* {width > 575 ? "" : } */} + + + + ); +} diff --git a/src/app_modules/donasi/component/card_view/card_status.tsx b/src/app_modules/donasi/component/card_view/card_status.tsx new file mode 100644 index 00000000..9577b339 --- /dev/null +++ b/src/app_modules/donasi/component/card_view/card_status.tsx @@ -0,0 +1,71 @@ +import { RouterDonasi } from "@/app/lib/router_hipmi/router_donasi"; +import { AccentColor } from "@/app_modules/_global/color/color_pallet"; +import { + Box, + Stack, + Grid, + AspectRatio, + Paper, + Image, + Text, +} from "@mantine/core"; +import { useRouter } from "next/navigation"; +import { MODEL_DONASI } from "../../model/interface"; + +export function ComponentDonasi_CardStatus({ + data, + path, +}: { + data: MODEL_DONASI; + path: string; +}) { + const router = useRouter(); + return ( + <> + router.push(path + `${data.id}`)} + > + + + + + + Foto + + + + + + + {data.title} + + + Terget Dana + + Rp.{" "} + {new Intl.NumberFormat("id-ID", { + maximumFractionDigits: 10, + }).format(+data.target)} + + + + + + {/* {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 7876a7c8..0343271b 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 @@ -13,6 +13,7 @@ import { Text, } from "@mantine/core"; import TampilanRupiahDonasi from "../tampilan_rupiah"; +import { AccentColor, MainColor } from "@/app_modules/_global/color/color_pallet"; export default function ComponentDonasi_DetailDataGalangDana({ donasi, @@ -22,14 +23,30 @@ export default function ComponentDonasi_DetailDataGalangDana({ const router = useRouter(); return ( <> - + - Foto - {/* - */} + + Foto + {donasi.title} Durasi: {donasi.DonasiMaster_Durasi.name} hari @@ -38,13 +55,17 @@ export default function ComponentDonasi_DetailDataGalangDana({ Dana dibutuhkan - + <Title order={4} style={{ + color: MainColor.yellow + }}> <TampilanRupiahDonasi nominal={+donasi.target} /> Kategori - + <Title order={4} style={{ + color: MainColor.yellow + }}> {donasi.DonasiMaster_Ketegori.name} 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 e285b8d3..c84e81ee 100644 --- a/src/app_modules/donasi/component/detail_main/cerita_penggalang.tsx +++ b/src/app_modules/donasi/component/detail_main/cerita_penggalang.tsx @@ -7,6 +7,11 @@ import { Stack, Title, Paper, Group, ActionIcon, Text } from "@mantine/core"; import { IconCircleChevronRight } from "@tabler/icons-react"; import moment from "moment"; import { useState } from "react"; +import { + AccentColor, + MainColor, +} from "@/app_modules/_global/color/color_pallet"; +import ComponentGlobal_Loader from "@/app_modules/_global/component/loader"; export default function ComponentDonasi_CeritaPenggalangMain({ donasi, @@ -17,9 +22,22 @@ export default function ComponentDonasi_CeritaPenggalangMain({ const [isLoading, setLoading] = useState(false); return ( <> - + Cerita Penggalang Dana - + @@ -28,14 +46,21 @@ export default function ComponentDonasi_CeritaPenggalangMain({ )} { setLoading(true); router.push(RouterDonasi.cerita_penggalang + `${donasi.id}`); }} > - + {isLoading ? ( + + ) : ( + + )} {donasi.CeritaDonasi.cerita} 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 cecc2204..0e4fdb30 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 @@ -30,6 +30,11 @@ 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/_global/loading_card"; +import { + AccentColor, + MainColor, +} from "@/app_modules/_global/color/color_pallet"; +import ComponentGlobal_Loader from "@/app_modules/_global/component/loader"; export function ComponentDonasi_DetailDataMain({ donasi, @@ -47,13 +52,20 @@ export function ComponentDonasi_DetailDataMain({ return ( <> - +
Foto @@ -86,7 +98,12 @@ export function ComponentDonasi_DetailDataMain({ Kategori - + <Title + order={4} + style={{ + color: MainColor.yellow, + }} + > {donasi.DonasiMaster_Ketegori.name} @@ -102,19 +119,25 @@ export function ComponentDonasi_DetailDataMain({ router.push(RouterDonasi.donatur + `${donasi.id}`); }} > - - + + {isLoadingDonatur ? ( - + ) : ( - + )} - - {countDonatur} - + {countDonatur} - Donatur + + Donatur + @@ -127,9 +150,13 @@ export function ComponentDonasi_DetailDataMain({ > {isLoadingKabar ? ( - + ) : ( - + )} Kabar Terbaru @@ -144,9 +171,13 @@ export function ComponentDonasi_DetailDataMain({ > {isLoadingPencairan ? ( - + ) : ( - + )} Pencairan Dana 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 4e088959..e29e934a 100644 --- a/src/app_modules/donasi/component/detail_main/informasi_penggalang.tsx +++ b/src/app_modules/donasi/component/detail_main/informasi_penggalang.tsx @@ -16,6 +16,12 @@ import _ from "lodash"; import { useRouter } from "next/navigation"; import ComponentDonasi_NotedBox from "../noted_box"; import { useState } from "react"; +import { + AccentColor, + MainColor, +} from "@/app_modules/_global/color/color_pallet"; +import ComponentGlobal_Loader from "@/app_modules/_global/component/loader"; +import ComponentGlobal_BoxInformation from "@/app_modules/_global/component/box_information"; export default function ComponentDonasi_InformasiPenggalangMain({ author, @@ -27,21 +33,41 @@ export default function ComponentDonasi_InformasiPenggalangMain({ return ( <> {/*
{JSON.stringify(author, null, 2)}
*/} - + Informasi Penggalang Dana - + Penggalang Dana { setLoading(true); router.push(RouterDonasi.penggalang_dana + `${author.id}`); }} > - + {isLoading ? ( + + ) : ( + + )} @@ -56,7 +82,7 @@ export default function ComponentDonasi_InformasiPenggalangMain({ {author.username} - diff --git a/src/app_modules/donasi/component/footer_button_donasi.tsx b/src/app_modules/donasi/component/footer_button_donasi.tsx index a55d4fa5..597d278f 100644 --- a/src/app_modules/donasi/component/footer_button_donasi.tsx +++ b/src/app_modules/donasi/component/footer_button_donasi.tsx @@ -5,6 +5,7 @@ import { useAtom } from "jotai"; import { useRouter } from "next/navigation"; import { gs_proses_donasi } from "../global_state"; import { useState } from "react"; +import { MainColor } from "@/app_modules/_global/color/color_pallet"; export default function ButtonDonasi({ donasiId }: { donasiId: string }) { const router = useRouter(); @@ -24,7 +25,11 @@ export default function ButtonDonasi({ donasiId }: { donasiId: string }) { return ( <> -