From 13273d5d82ce1549816ab013cc36e4a5e8db74ea Mon Sep 17 00:00:00 2001 From: amel Date: Tue, 9 Jul 2024 15:24:34 +0800 Subject: [PATCH] upd: filter Deskripsi: - membuat view global filter - mengaplikasikan view global filter pada halaman pengumuman dan member No issues --- src/app/(application)/announcement/page.tsx | 7 +- src/app/(application)/member/page.tsx | 6 +- src/module/_global/index.ts | 4 +- src/module/_global/view/view_filter.tsx | 76 +++++++++++++++++++ .../component/ui/drawer_announcement.tsx | 12 ++- .../component/ui/drawer_list_member.tsx | 3 + 6 files changed, 103 insertions(+), 5 deletions(-) create mode 100644 src/module/_global/view/view_filter.tsx diff --git a/src/app/(application)/announcement/page.tsx b/src/app/(application)/announcement/page.tsx index 4551abb..2aef08e 100644 --- a/src/app/(application)/announcement/page.tsx +++ b/src/app/(application)/announcement/page.tsx @@ -1,8 +1,11 @@ +import { ViewFilter } from "@/module/_global"; import { ViewListAnnouncement } from "@/module/announcement"; -function Page() { +function Page({ searchParams }: { searchParams: { page: string } }) { + if (searchParams.page == 'filter') + return return ( - + ) } diff --git a/src/app/(application)/member/page.tsx b/src/app/(application)/member/page.tsx index 8b49914..3bdaf36 100644 --- a/src/app/(application)/member/page.tsx +++ b/src/app/(application)/member/page.tsx @@ -1,6 +1,10 @@ +import { ViewFilter } from "@/module/_global"; import { ViewListMember } from "@/module/user/member"; -function Page() { +function Page({ searchParams }: { searchParams: { page: string } }) { + if (searchParams.page == "filter") + return + return ( ) diff --git a/src/module/_global/index.ts b/src/module/_global/index.ts index ef95e3c..60a43da 100644 --- a/src/module/_global/index.ts +++ b/src/module/_global/index.ts @@ -5,6 +5,7 @@ import LoadingPage from "./layout/layout_loading_page"; import LayoutLogin from "./layout/layout_login"; import LayoutNavbarHome from "./layout/layout_navbar_home"; import LayoutNavbarNew from "./layout/layout_navbar_new"; +import ViewFilter from "./view/view_filter"; export { WARNA } export { LayoutLogin } @@ -12,4 +13,5 @@ export { LayoutNavbarHome } export { LayoutIconBack } export { LoadingPage } export { LayoutDrawer } -export { LayoutNavbarNew } \ No newline at end of file +export { LayoutNavbarNew } +export { ViewFilter } \ No newline at end of file diff --git a/src/module/_global/view/view_filter.tsx b/src/module/_global/view/view_filter.tsx new file mode 100644 index 0000000..9bf3048 --- /dev/null +++ b/src/module/_global/view/view_filter.tsx @@ -0,0 +1,76 @@ +'use client' +import { Box, Group, Divider, Button, Text } from "@mantine/core"; +import { useState } from "react"; +import { FaCheck } from "react-icons/fa6"; +import { WARNA } from "../fun/WARNA"; +import LayoutNavbarNew from "../layout/layout_navbar_new"; +import { useRouter } from "next/navigation"; + +const dataFilter = [ + { + id: 1, + name: 'Dinas' + }, + { + id: 2, + name: 'Adat' + }, + { + id: 3, + name: 'LPD' + }, + { + id: 4, + name: 'Karang Taruna' + }, + { + id: 5, + name: 'BPD' + }, + { + id: 6, + name: 'LPM' + }, +] +export default function ViewFilter() { + const [selectedFilter, setSelectedFilter] = useState(null); + + const handleFilterClick = (filterName: string) => { + setSelectedFilter(filterName); + }; + + const router = useRouter() + + return ( + + + + {dataFilter.map((filter) => ( + + handleFilterClick(filter.name)} + > + + {filter.name} + + {selectedFilter === filter.name && } + + + + ))} + + + + ); +} \ No newline at end of file diff --git a/src/module/announcement/component/ui/drawer_announcement.tsx b/src/module/announcement/component/ui/drawer_announcement.tsx index 42161fb..2d7d6d5 100644 --- a/src/module/announcement/component/ui/drawer_announcement.tsx +++ b/src/module/announcement/component/ui/drawer_announcement.tsx @@ -15,6 +15,9 @@ export default function DrawerAnnouncement() { cols={{ base: 3, sm: 3, lg: 3 }} > { router.push('/announcement/create') }} @@ -27,7 +30,14 @@ export default function DrawerAnnouncement() { - + { + router.push('/announcement?page=filter') + }} + > diff --git a/src/module/user/member/component/ui/drawer_list_member.tsx b/src/module/user/member/component/ui/drawer_list_member.tsx index 0715ad2..92a79fa 100644 --- a/src/module/user/member/component/ui/drawer_list_member.tsx +++ b/src/module/user/member/component/ui/drawer_list_member.tsx @@ -32,6 +32,9 @@ export default function DrawerListMember() { { + router.push('/member?page=filter') + }} >