diff --git a/src/app/dev/event/detail/detail_sponsor/[id]/layout.tsx b/src/app/dev/event/detail/detail_sponsor/[id]/layout.tsx new file mode 100644 index 00000000..6b363920 --- /dev/null +++ b/src/app/dev/event/detail/detail_sponsor/[id]/layout.tsx @@ -0,0 +1,12 @@ +import LayoutEvent_DetailSponsor from '@/app_modules/event/detail/detail_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/detail_sponsor/[id]/page.tsx b/src/app/dev/event/detail/detail_sponsor/[id]/page.tsx new file mode 100644 index 00000000..1762e49e --- /dev/null +++ b/src/app/dev/event/detail/detail_sponsor/[id]/page.tsx @@ -0,0 +1,12 @@ +import DetailSponsor_Event from '@/app_modules/event/detail/detail_sponsor'; +import React from 'react'; + +function Page() { + return ( + <> + + + ); +} + +export default Page; diff --git a/src/app/dev/event/detail/peserta/[id]/layout.tsx b/src/app/dev/event/detail/peserta/[id]/layout.tsx new file mode 100644 index 00000000..74bdbe58 --- /dev/null +++ b/src/app/dev/event/detail/peserta/[id]/layout.tsx @@ -0,0 +1,10 @@ +import { LayoutEvent_Peserta } from '@/app_modules/event'; +import React from 'react'; + +export default async function Page({ children }: { children: React.ReactNode }) { + return ( + + {children} + + ) +} diff --git a/src/app/dev/event/detail/peserta/[id]/page.tsx b/src/app/dev/event/detail/peserta/[id]/page.tsx new file mode 100644 index 00000000..c9fe9657 --- /dev/null +++ b/src/app/dev/event/detail/peserta/[id]/page.tsx @@ -0,0 +1,14 @@ +import Event_DaftarPeserta from '@/app_modules/event/detail/peserta'; +import { Event_countTotalPesertaById } from '@/app_modules/event/fun/count/count_total_peserta_by_id'; +import { event_getOneById } from '@/app_modules/event/fun/get/get_one_by_id'; +import React from 'react'; + +export default async function Page() { + // const dataEvent = await event_getOneById(eventId); + // const totalPeserta = await Event_countTotalPesertaById(eventId); + + return ( + + ) + +} diff --git a/src/app/dev/event/detail/sponsor/[id]/layout.tsx b/src/app/dev/event/detail/sponsor/[id]/layout.tsx new file mode 100644 index 00000000..957a0527 --- /dev/null +++ b/src/app/dev/event/detail/sponsor/[id]/layout.tsx @@ -0,0 +1,14 @@ +import { LayoutEvent_Sponsor } from '@/app_modules/event'; +import React from 'react'; + +function Layout({ children, }: {children: React.ReactNode}) { + return ( + <> + + {children} + + + ); +} + +export default Layout; diff --git a/src/app/dev/event/detail/sponsor/[id]/page.tsx b/src/app/dev/event/detail/sponsor/[id]/page.tsx new file mode 100644 index 00000000..d755e6bb --- /dev/null +++ b/src/app/dev/event/detail/sponsor/[id]/page.tsx @@ -0,0 +1,11 @@ +import Event_DaftarSponsor from '@/app_modules/event/detail/sponsor'; + +function Page() { + return ( + <> + + + ); +} + +export default Page; diff --git a/src/app/dev/event/detail/tambah_sponsor/layout.tsx b/src/app/dev/event/detail/tambah_sponsor/layout.tsx new file mode 100644 index 00000000..24091745 --- /dev/null +++ b/src/app/dev/event/detail/tambah_sponsor/layout.tsx @@ -0,0 +1,12 @@ +import LayoutEvent_TambahSponsor from '@/app_modules/event/detail/tambah_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/tambah_sponsor/page.tsx b/src/app/dev/event/detail/tambah_sponsor/page.tsx new file mode 100644 index 00000000..f47e4cd3 --- /dev/null +++ b/src/app/dev/event/detail/tambah_sponsor/page.tsx @@ -0,0 +1,12 @@ +import Event_TambahSponsor from '@/app_modules/event/detail/tambah_sponsor'; +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 fcbd0cd9..8dcd2de6 100644 --- a/src/app/lib/router_hipmi/router_event.ts +++ b/src/app/lib/router_hipmi/router_event.ts @@ -32,4 +32,19 @@ export const RouterEvent = { detail_draft: "/dev/event/detail/draft/", detail_reject: "/dev/event/detail/reject/", detail_riwayat: "/dev/event/detail/riwayat/", + + //peserta + daftar_peserta: ({ id }: { id: string }) => + `/dev/event/detail/peserta/${id}`, + + //sponsor + daftar_sponsor: ({ id }: { id: string }) => + `/dev/event/detail/sponsor/${id}`, + tambah_sponsor: "/dev/event/detail/tambah_sponsor/", + detail_sponsor: ({ id }: { id: string }) => + `/dev/event/detail/detail_sponsor/${id}`, + + + }; + diff --git a/src/app_modules/event/component/detail/comp_box_daftar_peserta.tsx b/src/app_modules/event/component/detail/comp_box_daftar_peserta.tsx new file mode 100644 index 00000000..df9cb765 --- /dev/null +++ b/src/app_modules/event/component/detail/comp_box_daftar_peserta.tsx @@ -0,0 +1,44 @@ +import { RouterEvent } from '@/app/lib/router_hipmi/router_event'; +import { AccentColor, MainColor } from '@/app_modules/_global/color'; +import { ActionIcon, Flex, Paper, Text, Loader } from '@mantine/core'; +import { IconUser } from '@tabler/icons-react'; +import { useParams, useRouter } from 'next/navigation'; +import React, { useState } from 'react'; + +function Event_ComponentBoxDaftarPeserta({ eventId }: { eventId?: string }) { + const params = useParams<{ id: string }>() + const router = useRouter(); + const [isLoading, setLoading] = useState(false); + return ( + <> + { + setLoading(true); + router.push(RouterEvent.daftar_peserta({ id: params.id }), { + scroll: false, + }); + // router.push(RouterInvestasi_OLD.detail_dokumen + investasiId, { scroll: false }); + }} + > + + Daftar Peserta + + {isLoading ? ( + + ) : ( + + )} + + + + + ); +} +export default Event_ComponentBoxDaftarPeserta; diff --git a/src/app_modules/event/component/detail/comp_box_sponsor.tsx b/src/app_modules/event/component/detail/comp_box_sponsor.tsx new file mode 100644 index 00000000..937a5f02 --- /dev/null +++ b/src/app_modules/event/component/detail/comp_box_sponsor.tsx @@ -0,0 +1,44 @@ +import { RouterEvent } from '@/app/lib/router_hipmi/router_event'; +import { AccentColor, MainColor } from '@/app_modules/_global/color'; +import { ActionIcon, Flex, Loader, Paper, Text } from '@mantine/core'; +import { useParams, useRouter } from 'next/navigation'; +import { useState } from 'react'; +import { TfiCup } from "react-icons/tfi"; + +function Event_ComponentBoxDaftarSponsor() { + const router = useRouter(); + const [isLoading, setLoading] = useState(false); + const params = useParams<{ id: string }>(); + return ( + <> + { + setLoading(true); + router.push(RouterEvent.daftar_sponsor({ id: params.id }), { + scroll: false, + }); + // router.push(RouterInvestasi_OLD.detail_dokumen + investasiId, { scroll: false }); + }} + > + + Daftar Sponsor + + {isLoading ? ( + + ) : ( + + )} + + + + + ); +} +export default Event_ComponentBoxDaftarSponsor; diff --git a/src/app_modules/event/component/detail/create_sponsor.tsx b/src/app_modules/event/component/detail/create_sponsor.tsx new file mode 100644 index 00000000..13b6b86c --- /dev/null +++ b/src/app_modules/event/component/detail/create_sponsor.tsx @@ -0,0 +1,108 @@ +'use client'; +import { MainColor } from '@/app_modules/_global/color'; +import { ComponentGlobal_BoxInformation, ComponentGlobal_BoxUploadImage } from '@/app_modules/_global/component'; +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 React, { useState } from 'react'; + +function Event_CreateSponsor() { + const [img, setImg] = useState(null); + const [isLoadingImg, setIsLoadingImg] = useState(false); + return ( + <> + + + + + + + {isLoadingImg ? ( + + + + ) : img ? ( + + Foto + + + ) : ( + + + + )} + + + + + + + Sosial Media + + + + + + + + ); +} + +export default Event_CreateSponsor; diff --git a/src/app_modules/event/component/detail/detail_main.tsx b/src/app_modules/event/component/detail/detail_main.tsx index 32183f32..e0f53bd7 100644 --- a/src/app_modules/event/component/detail/detail_main.tsx +++ b/src/app_modules/event/component/detail/detail_main.tsx @@ -4,7 +4,7 @@ import { ComponentGlobal_AvatarAndUsername, ComponentGlobal_CardStyles, } from "@/app_modules/_global/component"; -import { Center, Grid, Skeleton, Stack, Text, Title } from "@mantine/core"; +import { Center, Grid, SimpleGrid, Skeleton, Stack, Text, Title } from "@mantine/core"; import { MODEL_EVENT } from "../../model/interface"; import { useShallowEffect } from "@mantine/hooks"; import { useState } from "react"; @@ -13,6 +13,8 @@ import { Event_ComponentSkeletonDetail } from "../skeleton/comp_skeleton_detail" import moment from "moment"; import "moment/locale/id"; import { MainColor } from "@/app_modules/_global/color"; +import Event_ComponentBoxDaftarPeserta from "./comp_box_daftar_peserta"; +import Event_ComponentBoxDaftarSponsor from "./comp_box_sponsor"; export default function ComponentEvent_DetailMainData({ eventId, @@ -105,6 +107,16 @@ export default function ComponentEvent_DetailMainData({ Deskripsi {data ? data?.deskripsi : null} + + + + diff --git a/src/app_modules/event/component/detail/list_peserta_new.tsx b/src/app_modules/event/component/detail/list_peserta_new.tsx new file mode 100644 index 00000000..305d358a --- /dev/null +++ b/src/app_modules/event/component/detail/list_peserta_new.tsx @@ -0,0 +1,43 @@ +import { AccentColor, MainColor } from '@/app_modules/_global/color'; +import { Avatar, Badge, Box, Card, Flex, Group, Stack, Text } from '@mantine/core'; + +function ComponentEvent_ListPesertaNew({ backgroundColor, border, marginBottom, height, color }: { + backgroundColor?: string; + border?: string; + marginBottom?: string | number; + height?: string | number; + color?: string; +}) { + return ( + <> + + + + + + + Nico Arya Putra Laksana + + HADIR + + + + + ); +} + +export default ComponentEvent_ListPesertaNew; diff --git a/src/app_modules/event/component/detail/list_sponsor.tsx b/src/app_modules/event/component/detail/list_sponsor.tsx new file mode 100644 index 00000000..f16a4902 --- /dev/null +++ b/src/app_modules/event/component/detail/list_sponsor.tsx @@ -0,0 +1,51 @@ +'use client' +import { RouterEvent } from '@/app/lib/router_hipmi/router_event'; +import { AccentColor, MainColor } from '@/app_modules/_global/color'; +import { Avatar, Box, Card, Flex, Group, Image, Text } from '@mantine/core'; +import { useParams, useRouter } from 'next/navigation'; + +function ComponentEvent_ListSponsor({ backgroundColor, border, marginBottom, height, color, }: + { + backgroundColor?: string; + border?: string; + marginBottom?: string | number; + height?: string | number; + color?: string; + }) + { + const router = useRouter(); + const params = useParams<{ id: string }>(); + return ( + <> + + router.push(RouterEvent.detail_sponsor({id: params.id}))} + > + + + + + + INACO + + Rp. 100.000 + + + + + ); +} + +export default ComponentEvent_ListSponsor; diff --git a/src/app_modules/event/component/skeleton/comp_skeleton_detail.tsx b/src/app_modules/event/component/skeleton/comp_skeleton_detail.tsx index 2b30756c..28ee1c46 100644 --- a/src/app_modules/event/component/skeleton/comp_skeleton_detail.tsx +++ b/src/app_modules/event/component/skeleton/comp_skeleton_detail.tsx @@ -1,6 +1,6 @@ import { ComponentGlobal_CardStyles } from "@/app_modules/_global/component"; import CustomSkeleton from "@/app_modules/components/CustomSkeleton"; -import { Center, Grid, Stack } from "@mantine/core"; +import { Center, Grid, SimpleGrid, Stack } from "@mantine/core"; export function Event_ComponentSkeletonDetail() { return ( @@ -30,6 +30,16 @@ export function Event_ComponentSkeletonDetail() { + + + + diff --git a/src/app_modules/event/detail/detail_sponsor/index.tsx b/src/app_modules/event/detail/detail_sponsor/index.tsx new file mode 100644 index 00000000..a78d6fa6 --- /dev/null +++ b/src/app_modules/event/detail/detail_sponsor/index.tsx @@ -0,0 +1,55 @@ +'use client'; +import { AccentColor, MainColor } from '@/app_modules/_global/color'; +import { ComponentGlobal_CardStyles } from '@/app_modules/_global/component'; +import { Box, Flex, Image, Stack, Text, Title } from '@mantine/core'; +import { IconBrandWhatsapp } from '@tabler/icons-react'; +import React from 'react'; +import { TfiFacebook } from 'react-icons/tfi'; + +function DetailSponsor_Event() { + return ( + <> + + + Nominal Sponsor: + + Rp. 100.000 + + + + + + + + INACO + + + Sosial Media: + + + InacoJellyku + + + + +6289647038426 + + + + + + + + ); +} + +export default DetailSponsor_Event; diff --git a/src/app_modules/event/detail/detail_sponsor/layout.tsx b/src/app_modules/event/detail/detail_sponsor/layout.tsx new file mode 100644 index 00000000..52cd6fbe --- /dev/null +++ b/src/app_modules/event/detail/detail_sponsor/layout.tsx @@ -0,0 +1,39 @@ +'use client'; +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'; +import React, { useState } from 'react'; + +function LayoutEvent_DetailSponsor({ children }: { children: React.ReactNode }) { + const [openDrawer, setOpenDrawer] = useState(false); + return ( + <> + setOpenDrawer(true)}> + + } />}> + {children} + + setOpenDrawer(false)} + component={[ + { + id: 1, + name: 'Edit Sponsor', + icon: , + // path: RouterEvent.tambah_sponsor, + }, + { + id: 2, + name: 'Hapus Sponsor', + icon: + } + ]} + /> + + ); +} + +export default LayoutEvent_DetailSponsor; diff --git a/src/app_modules/event/detail/main_detail/index.tsx b/src/app_modules/event/detail/main_detail/index.tsx index 70768a65..48060303 100644 --- a/src/app_modules/event/detail/main_detail/index.tsx +++ b/src/app_modules/event/detail/main_detail/index.tsx @@ -79,11 +79,11 @@ export default function Event_DetailMain({ )} - + /> */} ); diff --git a/src/app_modules/event/detail/peserta/index.tsx b/src/app_modules/event/detail/peserta/index.tsx new file mode 100644 index 00000000..2ddd15e8 --- /dev/null +++ b/src/app_modules/event/detail/peserta/index.tsx @@ -0,0 +1,25 @@ +"use client" + +import { Stack } from '@mantine/core'; +import ComponentEvent_ListPeserta from '../../component/detail/list_peserta'; +import { MODEL_EVENT_PESERTA } from '../../model/interface'; +import { useParams } from 'next/navigation'; +import ComponentEvent_ListPesertaNew from '../../component/detail/list_peserta_new'; + +// function Event_DaftarPeserta({ totalPeserta, eventId, isNewPeserta }: { +// totalPeserta?: number; +// eventId?: string; +// isNewPeserta?: boolean | null; +// }) { + function Event_DaftarPeserta() { + return ( + <> + + + {/* */} + + + ); +} + +export default Event_DaftarPeserta; diff --git a/src/app_modules/event/detail/peserta/layout.tsx b/src/app_modules/event/detail/peserta/layout.tsx new file mode 100644 index 00000000..47898ed0 --- /dev/null +++ b/src/app_modules/event/detail/peserta/layout.tsx @@ -0,0 +1,14 @@ +import { UIGlobal_LayoutHeaderTamplate, UIGlobal_LayoutTamplate } from '@/app_modules/_global/ui'; +import React from 'react'; + +function LayoutEvent_Peserta({children}: {children: React.ReactNode}) { + return ( + <> + }> + {children} + + + ); +} + +export default LayoutEvent_Peserta; diff --git a/src/app_modules/event/detail/sponsor/index.tsx b/src/app_modules/event/detail/sponsor/index.tsx new file mode 100644 index 00000000..07dc3767 --- /dev/null +++ b/src/app_modules/event/detail/sponsor/index.tsx @@ -0,0 +1,12 @@ +'use client'; +import ComponentEvent_ListSponsor from '../../component/detail/list_sponsor'; + +function Event_DaftarSponsor() { + return ( + <> + + + ); +} + +export default Event_DaftarSponsor; diff --git a/src/app_modules/event/detail/sponsor/layout.tsx b/src/app_modules/event/detail/sponsor/layout.tsx new file mode 100644 index 00000000..76c55f1d --- /dev/null +++ b/src/app_modules/event/detail/sponsor/layout.tsx @@ -0,0 +1,44 @@ +'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 } from '@tabler/icons-react'; +import React, { useState } from 'react'; +import { TfiCup } from "react-icons/tfi"; + +function LayoutEvent_Sponsor({ children}: { children: React.ReactNode;}) { + const [openDrawer, setOpenDrawer] = useState(false); + return ( + <> + setOpenDrawer(true)} + > + + + } + />}> + {children} + + setOpenDrawer(false)} + component={[ + { + id: 1, + name: 'Tambah Sponsor', + icon: , + path: RouterEvent.tambah_sponsor, + }, + ]} + + /> + + ); +} + +export default LayoutEvent_Sponsor; diff --git a/src/app_modules/event/detail/tambah_sponsor/index.tsx b/src/app_modules/event/detail/tambah_sponsor/index.tsx new file mode 100644 index 00000000..c415942e --- /dev/null +++ b/src/app_modules/event/detail/tambah_sponsor/index.tsx @@ -0,0 +1,12 @@ +import React from 'react'; +import CreateSponsor from '../../component/detail/create_sponsor'; + +function Event_TambahSponsor() { + return ( + <> + + + ); +} + +export default Event_TambahSponsor; diff --git a/src/app_modules/event/detail/tambah_sponsor/layout.tsx b/src/app_modules/event/detail/tambah_sponsor/layout.tsx new file mode 100644 index 00000000..464bae65 --- /dev/null +++ b/src/app_modules/event/detail/tambah_sponsor/layout.tsx @@ -0,0 +1,17 @@ +'use client'; +import { UIGlobal_LayoutHeaderTamplate, UIGlobal_LayoutTamplate } from '@/app_modules/_global/ui'; +import React from 'react'; + +function LayoutEvent_TambahSponsor({ children }: { children: React.ReactNode }) { + return ( + <> + } + > + {children} + + + ); +} + +export default LayoutEvent_TambahSponsor; diff --git a/src/app_modules/event/index.ts b/src/app_modules/event/index.ts index 1465e41a..d841ee6b 100644 --- a/src/app_modules/event/index.ts +++ b/src/app_modules/event/index.ts @@ -22,6 +22,8 @@ import LayoutEvent_DetailKontribusi from "./detail/kontribusi/layout"; import Event_Riwayat from "./main/riwayat"; import Event_DetailRiwayat from "./detail/riwayat"; import LayoutEvent_DetailRiwayat from "./detail/riwayat/layout"; +import LayoutEvent_Peserta from "./detail/peserta/layout"; +import LayoutEvent_Sponsor from "./detail/sponsor/layout"; export { Event_SplashScreen, @@ -47,5 +49,7 @@ export { LayoutEvent_DetailKontribusi, Event_Riwayat , Event_DetailRiwayat , - LayoutEvent_DetailRiwayat , + LayoutEvent_DetailRiwayat, + LayoutEvent_Peserta, + LayoutEvent_Sponsor };