From 4374def1e92f80884a00f283b705b3229ca47d4d Mon Sep 17 00:00:00 2001 From: nico Date: Thu, 16 Jan 2025 14:35:00 +0800 Subject: [PATCH 01/32] Add Proses Transaksi, Metode Pembayaran, Invoice --- .../sponsor/metode_pembayaran/layout.tsx | 14 ++ .../detail/sponsor/metode_pembayaran/page.tsx | 14 ++ .../detail/sponsor/nominal_sponsor/layout.tsx | 12 ++ .../detail/sponsor/nominal_sponsor/page.tsx | 12 ++ .../{ => sponsor}/tambah_sponsor/layout.tsx | 0 .../{ => sponsor}/tambah_sponsor/page.tsx | 3 +- src/app/dev/event/invoice/layout.tsx | 14 ++ src/app/dev/event/invoice/page.tsx | 12 ++ src/app/lib/router_hipmi/router_event.ts | 2 +- .../comp_button_delete_donasi_by_id.tsx | 4 +- .../event/component/detail/create_sponsor.tsx | 4 +- .../event/detail/detail_sponsor/layout.tsx | 7 +- .../event/detail/invoice/index.tsx | 150 ++++++++++++++++++ .../event/detail/invoice/layout.tsx | 24 +++ .../sponsor/metode_pembayaran/index.tsx | 83 ++++++++++ .../sponsor/metode_pembayaran/layout.tsx | 14 ++ .../detail/sponsor/nominal_sponsor/index.tsx | 99 ++++++++++++ .../detail/sponsor/nominal_sponsor/layout.tsx | 17 ++ .../detail/sponsor/tambah_sponsor/index.tsx | 14 ++ .../event/detail/tambah_sponsor/index.tsx | 5 +- 20 files changed, 495 insertions(+), 9 deletions(-) create mode 100644 src/app/dev/event/detail/sponsor/metode_pembayaran/layout.tsx create mode 100644 src/app/dev/event/detail/sponsor/metode_pembayaran/page.tsx create mode 100644 src/app/dev/event/detail/sponsor/nominal_sponsor/layout.tsx create mode 100644 src/app/dev/event/detail/sponsor/nominal_sponsor/page.tsx rename src/app/dev/event/detail/{ => sponsor}/tambah_sponsor/layout.tsx (100%) rename src/app/dev/event/detail/{ => sponsor}/tambah_sponsor/page.tsx (60%) create mode 100644 src/app/dev/event/invoice/layout.tsx create mode 100644 src/app/dev/event/invoice/page.tsx create mode 100644 src/app_modules/event/detail/invoice/index.tsx create mode 100644 src/app_modules/event/detail/invoice/layout.tsx create mode 100644 src/app_modules/event/detail/sponsor/metode_pembayaran/index.tsx create mode 100644 src/app_modules/event/detail/sponsor/metode_pembayaran/layout.tsx create mode 100644 src/app_modules/event/detail/sponsor/nominal_sponsor/index.tsx create mode 100644 src/app_modules/event/detail/sponsor/nominal_sponsor/layout.tsx create mode 100644 src/app_modules/event/detail/sponsor/tambah_sponsor/index.tsx diff --git a/src/app/dev/event/detail/sponsor/metode_pembayaran/layout.tsx b/src/app/dev/event/detail/sponsor/metode_pembayaran/layout.tsx new file mode 100644 index 00000000..4874c821 --- /dev/null +++ b/src/app/dev/event/detail/sponsor/metode_pembayaran/layout.tsx @@ -0,0 +1,14 @@ +import Event_LayoutMetodePembayaran from '@/app_modules/event/detail/sponsor/metode_pembayaran/layout'; +import React from 'react'; + +function Layout({ children } : { children: React.ReactNode }) { + return ( + <> + + {children} + + + ); +} + +export default Layout; diff --git a/src/app/dev/event/detail/sponsor/metode_pembayaran/page.tsx b/src/app/dev/event/detail/sponsor/metode_pembayaran/page.tsx new file mode 100644 index 00000000..7ebc92bf --- /dev/null +++ b/src/app/dev/event/detail/sponsor/metode_pembayaran/page.tsx @@ -0,0 +1,14 @@ + +import Event_MetodePembayaran from '@/app_modules/event/detail/sponsor/metode_pembayaran'; +import { MODEL_MASTER_BANK } from '@/app_modules/investasi/_lib/interface'; +import React from 'react'; + +function Page() { + return ( + <> + + + ); +} + +export default Page; diff --git a/src/app/dev/event/detail/sponsor/nominal_sponsor/layout.tsx b/src/app/dev/event/detail/sponsor/nominal_sponsor/layout.tsx new file mode 100644 index 00000000..d3fedd39 --- /dev/null +++ b/src/app/dev/event/detail/sponsor/nominal_sponsor/layout.tsx @@ -0,0 +1,12 @@ +import Event_LayoutNominalSponsor from '@/app_modules/event/detail/sponsor/nominal_sponsor/layout'; +import React from 'react'; + +function Layout({ children }: { children: React.ReactNode }) { + return ( + <> + {children} + + ); +} + +export default Layout; diff --git a/src/app/dev/event/detail/sponsor/nominal_sponsor/page.tsx b/src/app/dev/event/detail/sponsor/nominal_sponsor/page.tsx new file mode 100644 index 00000000..1ca80c55 --- /dev/null +++ b/src/app/dev/event/detail/sponsor/nominal_sponsor/page.tsx @@ -0,0 +1,12 @@ +import Event_PilihNominalSponsor from '@/app_modules/event/detail/sponsor/nominal_sponsor'; +import React from 'react'; + +function Page() { + return ( + <> + + + ); +} + +export default Page; diff --git a/src/app/dev/event/detail/tambah_sponsor/layout.tsx b/src/app/dev/event/detail/sponsor/tambah_sponsor/layout.tsx similarity index 100% rename from src/app/dev/event/detail/tambah_sponsor/layout.tsx rename to src/app/dev/event/detail/sponsor/tambah_sponsor/layout.tsx diff --git a/src/app/dev/event/detail/tambah_sponsor/page.tsx b/src/app/dev/event/detail/sponsor/tambah_sponsor/page.tsx similarity index 60% rename from src/app/dev/event/detail/tambah_sponsor/page.tsx rename to src/app/dev/event/detail/sponsor/tambah_sponsor/page.tsx index f47e4cd3..176d527c 100644 --- a/src/app/dev/event/detail/tambah_sponsor/page.tsx +++ b/src/app/dev/event/detail/sponsor/tambah_sponsor/page.tsx @@ -1,4 +1,5 @@ -import Event_TambahSponsor from '@/app_modules/event/detail/tambah_sponsor'; + +import Event_TambahSponsor from '@/app_modules/event/detail/sponsor/tambah_sponsor'; import React from 'react'; function Page() { diff --git a/src/app/dev/event/invoice/layout.tsx b/src/app/dev/event/invoice/layout.tsx new file mode 100644 index 00000000..ec04b66b --- /dev/null +++ b/src/app/dev/event/invoice/layout.tsx @@ -0,0 +1,14 @@ +import Event_LayoutInvoice from '@/app_modules/event/detail/invoice/layout'; +import React from 'react'; + +function Layout({ children }: { children: React.ReactNode }) { + return ( + <> + + {children} + + + ); +} + +export default Layout; diff --git a/src/app/dev/event/invoice/page.tsx b/src/app/dev/event/invoice/page.tsx new file mode 100644 index 00000000..9c6a990b --- /dev/null +++ b/src/app/dev/event/invoice/page.tsx @@ -0,0 +1,12 @@ +import Event_Invoice from '@/app_modules/event/detail/invoice'; +import React from 'react'; + +function Page() { + return ( + <> + + + ); +} + +export default Page; diff --git a/src/app/lib/router_hipmi/router_event.ts b/src/app/lib/router_hipmi/router_event.ts index 8dcd2de6..07c56d25 100644 --- a/src/app/lib/router_hipmi/router_event.ts +++ b/src/app/lib/router_hipmi/router_event.ts @@ -40,7 +40,7 @@ export const RouterEvent = { //sponsor daftar_sponsor: ({ id }: { id: string }) => `/dev/event/detail/sponsor/${id}`, - tambah_sponsor: "/dev/event/detail/tambah_sponsor/", + tambah_sponsor: "/dev/event/detail/sponsor/tambah_sponsor/", detail_sponsor: ({ id }: { id: string }) => `/dev/event/detail/detail_sponsor/${id}`, diff --git a/src/app_modules/donasi/component/button/comp_button_delete_donasi_by_id.tsx b/src/app_modules/donasi/component/button/comp_button_delete_donasi_by_id.tsx index 572eb3d1..3028c777 100644 --- a/src/app_modules/donasi/component/button/comp_button_delete_donasi_by_id.tsx +++ b/src/app_modules/donasi/component/button/comp_button_delete_donasi_by_id.tsx @@ -85,12 +85,12 @@ export function Donasi_ComponentButtonDeleteDonasiById({ close={() => setOpenModal(false)} buttonKiri={ } buttonKanan={ - } diff --git a/src/app_modules/event/component/detail/create_sponsor.tsx b/src/app_modules/event/component/detail/create_sponsor.tsx index 13b6b86c..d075f137 100644 --- a/src/app_modules/event/component/detail/create_sponsor.tsx +++ b/src/app_modules/event/component/detail/create_sponsor.tsx @@ -4,9 +4,11 @@ import { ComponentGlobal_BoxInformation, ComponentGlobal_BoxUploadImage } from ' import { Investasi_ComponentButtonCreateNewInvestasi } from '@/app_modules/investasi/_component'; import { Box, Stack, Loader, AspectRatio, Image, Button, TextInput, Group, Title } from '@mantine/core'; import { IconCamera, IconPhoto } from '@tabler/icons-react'; +import { useRouter } from 'next/navigation'; import React, { useState } from 'react'; function Event_CreateSponsor() { + const router = useRouter(); const [img, setImg] = useState(null); const [isLoadingImg, setIsLoadingImg] = useState(false); return ( @@ -95,7 +97,7 @@ function Event_CreateSponsor() { placeholder="Masukan whatsapp" /> - diff --git a/src/app_modules/event/detail/detail_sponsor/layout.tsx b/src/app_modules/event/detail/detail_sponsor/layout.tsx index 52cd6fbe..ebdb5751 100644 --- a/src/app_modules/event/detail/detail_sponsor/layout.tsx +++ b/src/app_modules/event/detail/detail_sponsor/layout.tsx @@ -1,4 +1,5 @@ 'use client'; +import { RouterEvent } from '@/app/lib/router_hipmi/router_event'; import { UIGlobal_Drawer, UIGlobal_LayoutHeaderTamplate, UIGlobal_LayoutTamplate } from '@/app_modules/_global/ui'; import { ActionIcon } from '@mantine/core'; import { IconDotsVertical, IconEdit, IconTrash } from '@tabler/icons-react'; @@ -23,15 +24,17 @@ function LayoutEvent_DetailSponsor({ children }: { children: React.ReactNode }) id: 1, name: 'Edit Sponsor', icon: , - // path: RouterEvent.tambah_sponsor, + path: RouterEvent.tambah_sponsor, }, { id: 2, name: 'Hapus Sponsor', - icon: + icon: , + } ]} /> + ); } diff --git a/src/app_modules/event/detail/invoice/index.tsx b/src/app_modules/event/detail/invoice/index.tsx new file mode 100644 index 00000000..127b1fd5 --- /dev/null +++ b/src/app_modules/event/detail/invoice/index.tsx @@ -0,0 +1,150 @@ +'use client'; +import { AccentColor, MainColor } from '@/app_modules/_global/color'; +import { ActionIcon, Button, Grid, Group, Paper, Stack, Text, Title } from '@mantine/core'; +import { IconCamera } from '@tabler/icons-react'; +import React from 'react'; + +function Event_Invoice() { + return ( + <> + + + Mohon transfer ke rekening dibawah + + untuk diteruskan ke + NicoArya + + + + + + + Bank BRI + PT. Himpunan Pengusaha Badung + + + + + + + 9065456754325643 + + + + + + + + + + + + + + + + + Jumlah Transfer + + + + + + + Rp. 100.000 + + + + + + + + + + + + + + + + + + + Upload bukti transfer anda + + + + + + ); +} + +export default Event_Invoice; diff --git a/src/app_modules/event/detail/invoice/layout.tsx b/src/app_modules/event/detail/invoice/layout.tsx new file mode 100644 index 00000000..59b2f602 --- /dev/null +++ b/src/app_modules/event/detail/invoice/layout.tsx @@ -0,0 +1,24 @@ +'use client'; +import { UIGlobal_LayoutHeaderTamplate, UIGlobal_LayoutTamplate } from '@/app_modules/_global/ui'; +import { ActionIcon } from '@mantine/core'; +import { IconX } from '@tabler/icons-react'; +import { useParams, useRouter } from 'next/navigation'; +import React from 'react'; + +function Event_LayoutInvoice({ children }: { children: React.ReactNode }) { + return ( + <> + + + + } + />}> + {children} + + + ); +} + +export default Event_LayoutInvoice; diff --git a/src/app_modules/event/detail/sponsor/metode_pembayaran/index.tsx b/src/app_modules/event/detail/sponsor/metode_pembayaran/index.tsx new file mode 100644 index 00000000..a3ba083f --- /dev/null +++ b/src/app_modules/event/detail/sponsor/metode_pembayaran/index.tsx @@ -0,0 +1,83 @@ +'use client'; +import { AccentColor, MainColor } from '@/app_modules/_global/color'; +import { MODEL_MASTER_BANK } from '@/app_modules/investasi/_lib/interface'; +import { Button, Paper, Radio, Stack, Title } from '@mantine/core'; +import { useRouter } from 'next/navigation'; +import React, { useState } from 'react'; + +const bank = [ + { + id: 1, + namaBank: "BRI", + }, + { + id: 2, + namaBank: "BCA", + }, + { + id: 3, + namaBank: "BNI", + }, + { + id: 1, + namaBank: "BSI", + } +] + +function Event_MetodePembayaran() { + const [pilihBank, setPilihBank] = useState(""); + const router = useRouter(); + return ( + <> + + + {bank.map((e) => ( + + + {e.namaBank} + + } + /> + + ))} + + + + + ); +} + +export default Event_MetodePembayaran; \ No newline at end of file diff --git a/src/app_modules/event/detail/sponsor/metode_pembayaran/layout.tsx b/src/app_modules/event/detail/sponsor/metode_pembayaran/layout.tsx new file mode 100644 index 00000000..b8b86a38 --- /dev/null +++ b/src/app_modules/event/detail/sponsor/metode_pembayaran/layout.tsx @@ -0,0 +1,14 @@ +import { UIGlobal_LayoutHeaderTamplate, UIGlobal_LayoutTamplate } from '@/app_modules/_global/ui'; +import React from 'react'; + +function Event_LayoutMetodePembayaran({ children }: { children: React.ReactNode }) { + return ( + <> + }> + {children} + + + ); +} + +export default Event_LayoutMetodePembayaran; diff --git a/src/app_modules/event/detail/sponsor/nominal_sponsor/index.tsx b/src/app_modules/event/detail/sponsor/nominal_sponsor/index.tsx new file mode 100644 index 00000000..a8026b90 --- /dev/null +++ b/src/app_modules/event/detail/sponsor/nominal_sponsor/index.tsx @@ -0,0 +1,99 @@ +'use client'; +import { AccentColor, MainColor } from '@/app_modules/_global/color'; +import { Box, Button, Group, Paper, Stack, Text, TextInput, Title } from '@mantine/core'; +import { IconChevronRight, IconMoodSmile, IconMoodSmileBeam, IconMoodSmileDizzy, IconMoodXd } from '@tabler/icons-react'; +import { useRouter } from 'next/navigation'; +import React from 'react'; + +const listNominal = [ + { + id: 1, + jumlah: " 25.000", + icon: , + }, + { + id: 2, + jumlah: " 50.000", + icon: , + }, + { + id: 3, + jumlah: " 75.000", + icon: , + }, + { + id: 4, + jumlah: " 100.000", + icon: , + }, +]; +function Event_PilihNominalSponsor() { + const router = useRouter(); + return ( + <> + + + {listNominal.map((e) => ( + + + + {e.icon} + + Rp.{e.jumlah} + + + + + + ))} + + + + Nominal Lainnya + Rp.} + placeholder="0" + min={0} + /> + + Minimal Donasi Rp. 10.000 + + + + + + + ); +} + +export default Event_PilihNominalSponsor; diff --git a/src/app_modules/event/detail/sponsor/nominal_sponsor/layout.tsx b/src/app_modules/event/detail/sponsor/nominal_sponsor/layout.tsx new file mode 100644 index 00000000..5d90999f --- /dev/null +++ b/src/app_modules/event/detail/sponsor/nominal_sponsor/layout.tsx @@ -0,0 +1,17 @@ +import { UIGlobal_LayoutHeaderTamplate, UIGlobal_LayoutTamplate } from '@/app_modules/_global/ui'; +import { ActionIcon } from '@mantine/core'; +import React from 'react'; + +function Event_LayoutNominalSponsor({ children }: { children: React.ReactNode }) { + return ( + <> + }> + {children} + + + ); +} + +export default Event_LayoutNominalSponsor; diff --git a/src/app_modules/event/detail/sponsor/tambah_sponsor/index.tsx b/src/app_modules/event/detail/sponsor/tambah_sponsor/index.tsx new file mode 100644 index 00000000..22e2e170 --- /dev/null +++ b/src/app_modules/event/detail/sponsor/tambah_sponsor/index.tsx @@ -0,0 +1,14 @@ + +import Event_CreateSponsor from '@/app_modules/event/component/detail/create_sponsor'; +import React from 'react'; + + +function Event_TambahSponsor() { + return ( + <> + + + ); +} + +export default Event_TambahSponsor; diff --git a/src/app_modules/event/detail/tambah_sponsor/index.tsx b/src/app_modules/event/detail/tambah_sponsor/index.tsx index c415942e..ef5fb391 100644 --- a/src/app_modules/event/detail/tambah_sponsor/index.tsx +++ b/src/app_modules/event/detail/tambah_sponsor/index.tsx @@ -1,10 +1,11 @@ +import Event_CreateSponsor from '@/app_modules/event/component/detail/create_sponsor'; import React from 'react'; -import CreateSponsor from '../../component/detail/create_sponsor'; + function Event_TambahSponsor() { return ( <> - + ); } From 01f5f328181604528fd673b62a24db1c792b5c59 Mon Sep 17 00:00:00 2001 From: nico Date: Thu, 16 Jan 2025 17:42:36 +0800 Subject: [PATCH 02/32] Progress Admin --- .../admin/event/detail/publish/[id]/page.tsx | 11 ++ .../detail/sponsor/edit_sponsor/layout.tsx | 14 +++ .../detail/sponsor/edit_sponsor/page.tsx | 12 ++ .../detail/sponsor/tambah_sponsor/page.tsx | 3 +- .../lib/router_admin/router_admin_event.ts | 2 + src/app/lib/router_hipmi/router_event.ts | 1 + src/app_modules/_global/ui/ui_drawer.tsx | 2 +- .../_global/ui/ui_drawer_custom.tsx | 2 +- .../admin/event/_lib/global_state.ts | 5 + .../event/table_status/detail_publish.tsx | 51 ++++++++ .../event/table_status/table_publish.tsx | 3 +- .../event/detail/detail_sponsor/layout.tsx | 82 +++++++++---- .../detail/sponsor/edit_sponsor/index.tsx | 109 ++++++++++++++++++ .../detail/sponsor/edit_sponsor/layout.tsx | 14 +++ .../detail/sponsor/tambah_sponsor/index.tsx | 14 --- 15 files changed, 285 insertions(+), 40 deletions(-) create mode 100644 src/app/dev/admin/event/detail/publish/[id]/page.tsx create mode 100644 src/app/dev/event/detail/sponsor/edit_sponsor/layout.tsx create mode 100644 src/app/dev/event/detail/sponsor/edit_sponsor/page.tsx create mode 100644 src/app_modules/admin/event/_lib/global_state.ts create mode 100644 src/app_modules/admin/event/table_status/detail_publish.tsx create mode 100644 src/app_modules/event/detail/sponsor/edit_sponsor/index.tsx create mode 100644 src/app_modules/event/detail/sponsor/edit_sponsor/layout.tsx delete mode 100644 src/app_modules/event/detail/sponsor/tambah_sponsor/index.tsx diff --git a/src/app/dev/admin/event/detail/publish/[id]/page.tsx b/src/app/dev/admin/event/detail/publish/[id]/page.tsx new file mode 100644 index 00000000..70c5c9ea --- /dev/null +++ b/src/app/dev/admin/event/detail/publish/[id]/page.tsx @@ -0,0 +1,11 @@ +import React from 'react'; + +function Page() { + return ( + <> + Page + + ); +} + +export default Page; diff --git a/src/app/dev/event/detail/sponsor/edit_sponsor/layout.tsx b/src/app/dev/event/detail/sponsor/edit_sponsor/layout.tsx new file mode 100644 index 00000000..ed430688 --- /dev/null +++ b/src/app/dev/event/detail/sponsor/edit_sponsor/layout.tsx @@ -0,0 +1,14 @@ +import Event_LayoutEditSponsor from '@/app_modules/event/detail/sponsor/edit_sponsor/layout'; +import React from 'react'; + +function Layout({ children }: { children: React.ReactNode }) { + return ( + <> + + {children} + + + ); +} + +export default Layout; diff --git a/src/app/dev/event/detail/sponsor/edit_sponsor/page.tsx b/src/app/dev/event/detail/sponsor/edit_sponsor/page.tsx new file mode 100644 index 00000000..4b3e2fb9 --- /dev/null +++ b/src/app/dev/event/detail/sponsor/edit_sponsor/page.tsx @@ -0,0 +1,12 @@ +import Event_EditSponsor from '@/app_modules/event/detail/sponsor/edit_sponsor'; +import React from 'react'; + +function Page() { + return ( + <> + + + ); +} + +export default Page; diff --git a/src/app/dev/event/detail/sponsor/tambah_sponsor/page.tsx b/src/app/dev/event/detail/sponsor/tambah_sponsor/page.tsx index 176d527c..f47e4cd3 100644 --- a/src/app/dev/event/detail/sponsor/tambah_sponsor/page.tsx +++ b/src/app/dev/event/detail/sponsor/tambah_sponsor/page.tsx @@ -1,5 +1,4 @@ - -import Event_TambahSponsor from '@/app_modules/event/detail/sponsor/tambah_sponsor'; +import Event_TambahSponsor from '@/app_modules/event/detail/tambah_sponsor'; import React from 'react'; function Page() { diff --git a/src/app/lib/router_admin/router_admin_event.ts b/src/app/lib/router_admin/router_admin_event.ts index 1fa83338..3ee39f79 100644 --- a/src/app/lib/router_admin/router_admin_event.ts +++ b/src/app/lib/router_admin/router_admin_event.ts @@ -3,6 +3,7 @@ export const RouterAdminEvent = { // detail detail_peserta: "/dev/admin/event/detail/peserta/", + detail_publish: "/dev/admin/event/detail/publish/", // child detail_tipe_acara: "/dev/admin/event/child/tipe_acara", @@ -12,4 +13,5 @@ export const RouterAdminEvent = { table_review: "/dev/admin/event/table/review", table_publish: "/dev/admin/event/table/publish", table_reject: "/dev/admin/event/table/reject", + }; diff --git a/src/app/lib/router_hipmi/router_event.ts b/src/app/lib/router_hipmi/router_event.ts index 07c56d25..12baa87e 100644 --- a/src/app/lib/router_hipmi/router_event.ts +++ b/src/app/lib/router_hipmi/router_event.ts @@ -40,6 +40,7 @@ export const RouterEvent = { //sponsor daftar_sponsor: ({ id }: { id: string }) => `/dev/event/detail/sponsor/${id}`, + edit_sponsor: "/dev/event/detail/sponsor/edit_sponsor/", tambah_sponsor: "/dev/event/detail/sponsor/tambah_sponsor/", detail_sponsor: ({ id }: { id: string }) => `/dev/event/detail/detail_sponsor/${id}`, diff --git a/src/app_modules/_global/ui/ui_drawer.tsx b/src/app_modules/_global/ui/ui_drawer.tsx index fad1cd9d..6129be67 100644 --- a/src/app_modules/_global/ui/ui_drawer.tsx +++ b/src/app_modules/_global/ui/ui_drawer.tsx @@ -77,7 +77,7 @@ export default function UIGlobal_Drawer({ {component.map((e, i) => ( - { setPageId(e?.id); setIsLoading(true); diff --git a/src/app_modules/_global/ui/ui_drawer_custom.tsx b/src/app_modules/_global/ui/ui_drawer_custom.tsx index 034670b2..059ae4bd 100644 --- a/src/app_modules/_global/ui/ui_drawer_custom.tsx +++ b/src/app_modules/_global/ui/ui_drawer_custom.tsx @@ -25,7 +25,7 @@ export default function UIGlobal_DrawerCustom({ }: { opened: boolean; close: () => void; - component: React.ReactNode; + component: React.ReactNode; }) { return ( <> diff --git a/src/app_modules/admin/event/_lib/global_state.ts b/src/app_modules/admin/event/_lib/global_state.ts new file mode 100644 index 00000000..c601a664 --- /dev/null +++ b/src/app_modules/admin/event/_lib/global_state.ts @@ -0,0 +1,5 @@ +import { atomWithStorage } from "jotai/utils"; + +const gs_admin_event_menu_publish = atomWithStorage("gs_admin_event_menu_publish", "1") + +export { gs_admin_event_menu_publish } \ No newline at end of file diff --git a/src/app_modules/admin/event/table_status/detail_publish.tsx b/src/app_modules/admin/event/table_status/detail_publish.tsx new file mode 100644 index 00000000..e934a741 --- /dev/null +++ b/src/app_modules/admin/event/table_status/detail_publish.tsx @@ -0,0 +1,51 @@ +import { useAtom } from 'jotai'; +import React from 'react'; +import { gs_admin_event_menu_publish } from '../_lib/global_state'; +import { IconCircleCheck } from '@tabler/icons-react'; +import { Button, Group, Stack } from '@mantine/core'; +import AdminGlobal_ComponentBackButton from '../../_admin_global/back_button'; + +function AdminEvent_DetailPublish() { + const [selectPage, setSelectPage] = useAtom(gs_admin_event_menu_publish); + const listPage = [ + { + id: "1", + name: "Detail Event", + icon: , + }, + { + id: "2", + name: "Daftar Peserta", + icon: , + }, + { + id: "3", + name: "Daftar Sponsor" + } + ] + return ( + <> + + + + + {listPage.map((e) => ( + + + ))} + + + + ); +} + +export default AdminEvent_DetailPublish; diff --git a/src/app_modules/admin/event/table_status/table_publish.tsx b/src/app_modules/admin/event/table_status/table_publish.tsx index 1553c712..082bbaec 100644 --- a/src/app_modules/admin/event/table_status/table_publish.tsx +++ b/src/app_modules/admin/event/table_status/table_publish.tsx @@ -202,7 +202,6 @@ function TableStatus({ listPublish }: { listPublish: any }) { e.id === eventId ? (loading === true ? true : false) : false } color={"green"} - leftIcon={} radius={"xl"} onClick={async () => { setEventId(e.id); @@ -210,7 +209,7 @@ function TableStatus({ listPublish }: { listPublish: any }) { router.push(RouterAdminEvent.detail_peserta + e.id); }} > - Lihat Peserta + Detail diff --git a/src/app_modules/event/detail/detail_sponsor/layout.tsx b/src/app_modules/event/detail/detail_sponsor/layout.tsx index ebdb5751..627b2c44 100644 --- a/src/app_modules/event/detail/detail_sponsor/layout.tsx +++ b/src/app_modules/event/detail/detail_sponsor/layout.tsx @@ -1,12 +1,14 @@ 'use client'; -import { RouterEvent } from '@/app/lib/router_hipmi/router_event'; -import { UIGlobal_Drawer, UIGlobal_LayoutHeaderTamplate, UIGlobal_LayoutTamplate } from '@/app_modules/_global/ui'; -import { ActionIcon } from '@mantine/core'; +import { AccentColor, MainColor } from '@/app_modules/_global/color'; +import { UIGlobal_DrawerCustom, UIGlobal_LayoutHeaderTamplate, UIGlobal_LayoutTamplate, UIGlobal_Modal } from '@/app_modules/_global/ui'; +import { ActionIcon, Box, Button, Center, Flex, Stack, Text } from '@mantine/core'; import { IconDotsVertical, IconEdit, IconTrash } from '@tabler/icons-react'; import React, { useState } from 'react'; function LayoutEvent_DetailSponsor({ children }: { children: React.ReactNode }) { const [openDrawer, setOpenDrawer] = useState(false); + const [openModal, setOpenModal] = useState(false); + const [isLoading, setLoading] = useState(false); return ( <> setOpenDrawer(true)}> } />}> - {children} + {children} - setOpenDrawer(false)} - component={[ - { - id: 1, - name: 'Edit Sponsor', - icon: , - path: RouterEvent.tambah_sponsor, - }, - { - id: 2, - name: 'Hapus Sponsor', - icon: , - - } - ]} + component={ + + + + + + + + + Edit + + + +
+ setOpenModal(true)} + > + + + +
+ + Hapus + +
+
+
+ } + /> + setOpenModal(false)} + buttonKiri={ + + } + buttonKanan={ + + } /> - ); } diff --git a/src/app_modules/event/detail/sponsor/edit_sponsor/index.tsx b/src/app_modules/event/detail/sponsor/edit_sponsor/index.tsx new file mode 100644 index 00000000..28dea62c --- /dev/null +++ b/src/app_modules/event/detail/sponsor/edit_sponsor/index.tsx @@ -0,0 +1,109 @@ +'use client' +import { MainColor } from '@/app_modules/_global/color'; +import { ComponentGlobal_BoxInformation, ComponentGlobal_BoxUploadImage } from '@/app_modules/_global/component'; +import { Box, Stack, Loader, AspectRatio, Image, Group, Button, TextInput, Title } from '@mantine/core'; +import { IconCamera, IconPhoto } from '@tabler/icons-react'; +import { useRouter } from 'next/navigation'; +import React, { useState } from 'react'; + +function Event_EditSponsor() { + const router = useRouter(); + const [img, setImg] = useState(null); + const [isLoadingImg, setIsLoadingImg] = useState(false); + return ( + <> + + + + + + + {isLoadingImg ? ( + + + + ) : img ? ( + + Foto + + + ) : ( + + + + )} + + + + + + + Sosial Media + + + + + + + + ); +} + +export default Event_EditSponsor; diff --git a/src/app_modules/event/detail/sponsor/edit_sponsor/layout.tsx b/src/app_modules/event/detail/sponsor/edit_sponsor/layout.tsx new file mode 100644 index 00000000..02510471 --- /dev/null +++ b/src/app_modules/event/detail/sponsor/edit_sponsor/layout.tsx @@ -0,0 +1,14 @@ +import { UIGlobal_LayoutHeaderTamplate, UIGlobal_LayoutTamplate } from '@/app_modules/_global/ui'; +import React from 'react'; + +function Event_LayoutEditSponsor({children} : {children: React.ReactNode}) { + return ( + <> + }> + {children} + + + ); +} + +export default Event_LayoutEditSponsor; diff --git a/src/app_modules/event/detail/sponsor/tambah_sponsor/index.tsx b/src/app_modules/event/detail/sponsor/tambah_sponsor/index.tsx deleted file mode 100644 index 22e2e170..00000000 --- a/src/app_modules/event/detail/sponsor/tambah_sponsor/index.tsx +++ /dev/null @@ -1,14 +0,0 @@ - -import Event_CreateSponsor from '@/app_modules/event/component/detail/create_sponsor'; -import React from 'react'; - - -function Event_TambahSponsor() { - return ( - <> - - - ); -} - -export default Event_TambahSponsor; From 8934e06b9eba9db0e977f0b566d9a3f155a9fa38 Mon Sep 17 00:00:00 2001 From: Bagasbanuna02 Date: Fri, 17 Jan 2025 10:12:03 +0800 Subject: [PATCH 03/32] fix ( donasi ) deskripsi: - fix upload image donasi - fix upload cerita donasi - fix upload bukti transfer donatur --- .../dev/donasi/create/create_donasi/page.tsx | 9 +- .../dev/donasi/edit/edit_donasi/[id]/page.tsx | 11 +- .../create/create_cerita_penggalang.tsx | 100 ++- .../donasi/create/create_donasi_new.tsx | 562 +++++++++-------- .../edit/edit_cerita_penggalang/index.tsx | 55 +- .../edit/edit_donasi/edit_donasi_new.tsx | 585 +++++++++--------- .../edit/edit_donasi/skeleton_edit_donasi.tsx | 4 +- .../donasi/proses_donasi/invoice/index.tsx | 56 +- .../proses_donasi/metode_pembayaran/index.tsx | 75 +-- .../fun/create/create_notif_to_admin.ts | 1 - 10 files changed, 714 insertions(+), 744 deletions(-) diff --git a/src/app/dev/donasi/create/create_donasi/page.tsx b/src/app/dev/donasi/create/create_donasi/page.tsx index aef24090..0b0aef8c 100644 --- a/src/app/dev/donasi/create/create_donasi/page.tsx +++ b/src/app/dev/donasi/create/create_donasi/page.tsx @@ -1,12 +1,5 @@ import { CreateDonasiNew } from "@/app_modules/donasi"; - export default async function Page() { - // const masterKategori = await Donasi_getMasterKategori(); - // const masterDurasi = await Donasi_getMasterDurasi(); - - return ( - // - - ); + return ; } diff --git a/src/app/dev/donasi/edit/edit_donasi/[id]/page.tsx b/src/app/dev/donasi/edit/edit_donasi/[id]/page.tsx index 923fdcf9..c99d7fab 100644 --- a/src/app/dev/donasi/edit/edit_donasi/[id]/page.tsx +++ b/src/app/dev/donasi/edit/edit_donasi/[id]/page.tsx @@ -1,15 +1,8 @@ -import { EditDonasi, EditDonasiNew } from "@/app_modules/donasi"; -import { Donasi_getMasterDurasi, Donasi_getMasterKategori } from "@/app_modules/donasi/fun"; -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 masterKategori = await Donasi_getMasterKategori() - // const masterDurasi = await Donasi_getMasterDurasi() +import { EditDonasiNew } from "@/app_modules/donasi"; +export default async function Page() { return ( <> - {/* */} ); diff --git a/src/app_modules/donasi/create/create_cerita_penggalang.tsx b/src/app_modules/donasi/create/create_cerita_penggalang.tsx index d8bf22e6..4ae490e3 100644 --- a/src/app_modules/donasi/create/create_cerita_penggalang.tsx +++ b/src/app_modules/donasi/create/create_cerita_penggalang.tsx @@ -1,9 +1,13 @@ "use client"; import { DIRECTORY_ID } from "@/app/lib"; +import { IRealtimeData } from "@/app/lib/global_state"; import { RouterDonasi } from "@/app/lib/router_hipmi/router_donasi"; import { MainColor } from "@/app_modules/_global/color/color_pallet"; -import { ComponentGlobal_BoxUploadImage } from "@/app_modules/_global/component"; +import { + ComponentGlobal_BoxUploadImage, + ComponentGlobal_ButtonUploadFileImage, +} from "@/app_modules/_global/component"; import ComponentGlobal_BoxInformation from "@/app_modules/_global/component/box_information"; import ComponentGlobal_InputCountDown from "@/app_modules/_global/component/input_countdown"; import { funGlobal_UploadToStorage } from "@/app_modules/_global/fun"; @@ -11,27 +15,25 @@ import { ComponentGlobal_NotifikasiPeringatan } from "@/app_modules/_global/noti import { ComponentGlobal_NotifikasiBerhasil } from "@/app_modules/_global/notif_global/notifikasi_berhasil"; import { ComponentGlobal_NotifikasiGagal } from "@/app_modules/_global/notif_global/notifikasi_gagal"; import notifikasiToAdmin_funCreate from "@/app_modules/notifikasi/fun/create/create_notif_to_admin"; +import { clientLogger } from "@/util/clientLogger"; import { AspectRatio, Button, - FileButton, - Group, + Center, Image, Stack, - Text, TextInput, - Textarea, + Textarea } from "@mantine/core"; -import { IconCamera, IconUpload } from "@tabler/icons-react"; +import { IconPhoto } from "@tabler/icons-react"; import { useAtom } from "jotai"; import _ from "lodash"; import { useRouter } from "next/navigation"; import { useState } from "react"; -import { Donasi_funCreate } from "../fun/create/fun_create_donasi"; -import { gs_donasi_hot_menu, gs_donasi_tabs_posting } from "../global_state"; -import { MODEL_DONASI_TEMPORARY } from "../model/interface"; -import { IRealtimeData } from "@/app/lib/global_state"; import { WibuRealtime } from "wibu-pkg"; +import { Donasi_funCreate } from "../fun/create/fun_create_donasi"; +import { gs_donasi_hot_menu } from "../global_state"; +import { MODEL_DONASI_TEMPORARY } from "../model/interface"; export default function CreateCeritaPenggalangDonasi({ dataTemporary, @@ -80,9 +82,11 @@ export default function CreateCeritaPenggalangDonasi({ file: file as File, dirId: DIRECTORY_ID.donasi_cerita_image, }); + if (!uploadImage.success) { setLoading(false); - return ComponentGlobal_NotifikasiPeringatan("Gagal upload file gambar"); + ComponentGlobal_NotifikasiPeringatan("Gagal upload file gambar"); + return; } const res = await Donasi_funCreate({ @@ -122,21 +126,21 @@ export default function CreateCeritaPenggalangDonasi({ scroll: false, }); } - setLoading(false); } else { ComponentGlobal_NotifikasiGagal(res.message); setLoading(false); } } catch (error) { - console.log(error); + setLoading(false); + clientLogger.error("Error create cerita donasi", error); } } return ( <> - + {/*
{JSON.stringify(dataTempo, null, 2)}
*/} - +