From 7b38d5bcbcee6f36adf93841480186dc05947aa7 Mon Sep 17 00:00:00 2001 From: amel Date: Mon, 8 Jul 2024 17:00:40 +0800 Subject: [PATCH] upd: member Deskripsi: - update header new - ganti local state - pengaplikasian modal konfirmasi NO Issues --- .../user/member/component/create_member.tsx | 92 +++++++++++++++++++ .../user/member/component/edit_member.tsx | 91 ++++++++++++++++++ .../component/ui/drawer_detail_member.tsx | 29 +++++- .../component/ui/navbar_detail_member.tsx | 12 +-- .../component/ui/navbar_list_member.tsx | 34 +++---- .../user/member/view/view_create_member.tsx | 75 ++------------- .../user/member/view/view_edit_member.tsx | 72 +-------------- 7 files changed, 237 insertions(+), 168 deletions(-) create mode 100644 src/module/user/member/component/create_member.tsx create mode 100644 src/module/user/member/component/edit_member.tsx diff --git a/src/module/user/member/component/create_member.tsx b/src/module/user/member/component/create_member.tsx new file mode 100644 index 0000000..a45d4b2 --- /dev/null +++ b/src/module/user/member/component/create_member.tsx @@ -0,0 +1,92 @@ +'use client' +import { WARNA } from "@/module/_global"; +import LayoutModal from "@/module/_global/layout/layout_modal"; +import { Box, Button, Stack, TextInput } from "@mantine/core"; +import { useState } from "react"; +import toast from "react-hot-toast"; +import { HiUser } from "react-icons/hi2"; + +export default function CreateMember() { + const [isModal, setModal] = useState(false) + + function onTrue(val: boolean) { + if (val) { + toast.success("Sukses! Data tersimpan"); + } + setModal(false) + } + + return ( + + + + + + + + + + + + + + setModal(false)} + description="Apakah Anda yakin ingin menambahkan data?" + onYes={(val) => { onTrue(val) }} /> + + ) +} \ No newline at end of file diff --git a/src/module/user/member/component/edit_member.tsx b/src/module/user/member/component/edit_member.tsx new file mode 100644 index 0000000..adc826c --- /dev/null +++ b/src/module/user/member/component/edit_member.tsx @@ -0,0 +1,91 @@ +'use client' +import { WARNA } from "@/module/_global"; +import LayoutModal from "@/module/_global/layout/layout_modal"; +import { Box, Button, Stack, TextInput } from "@mantine/core"; +import { useState } from "react"; +import toast from "react-hot-toast"; +import { HiUser } from "react-icons/hi2"; + +export default function EditMember() { + const [isModal, setModal] = useState(false) + + function onTrue(val: boolean) { + if (val) { + toast.success("Sukses! Data tersimpan"); + } + setModal(false) + } + return ( + + + + + + + + + + + + + + setModal(false)} + description="Apakah Anda yakin ingin mengubah data?" + onYes={(val) => { onTrue(val) }} /> + + ) +} \ No newline at end of file diff --git a/src/module/user/member/component/ui/drawer_detail_member.tsx b/src/module/user/member/component/ui/drawer_detail_member.tsx index 9236925..14487e0 100644 --- a/src/module/user/member/component/ui/drawer_detail_member.tsx +++ b/src/module/user/member/component/ui/drawer_detail_member.tsx @@ -1,21 +1,39 @@ 'use client' import { isDrawer, WARNA } from "@/module/_global"; +import LayoutModal from "@/module/_global/layout/layout_modal"; import { useHookstate } from "@hookstate/core"; import { Box, Flex, SimpleGrid, Stack, Text } from "@mantine/core"; import { useRouter } from "next/navigation"; +import { useState } from "react"; +import toast from "react-hot-toast"; import { FaPencil } from "react-icons/fa6"; import { ImUserCheck } from "react-icons/im"; -export default function DrawerDetailMember() { +export default function DrawerDetailMember({ onDeleted }: { onDeleted: (val: boolean) => void }) { const router = useRouter() - const openDrawer = useHookstate(isDrawer) + const [isModal, setModal] = useState(false) + + function onTrue(val: boolean) { + if (val) { + toast.success('Sukses! data tersimpan') + onDeleted(true) + } + + setModal(false) + } + return ( - + { + setModal(true) + }} + > @@ -25,9 +43,9 @@ export default function DrawerDetailMember() { { router.push('/member/edit/123') - openDrawer.set(false) }} > @@ -39,6 +57,9 @@ export default function DrawerDetailMember() { + setModal(false)} + description="Apakah Anda yakin ingin mengubah status aktifasi anggota?" + onYes={(val) => { onTrue(val) }} /> ) } \ No newline at end of file diff --git a/src/module/user/member/component/ui/navbar_detail_member.tsx b/src/module/user/member/component/ui/navbar_detail_member.tsx index 6f7f4b1..48c7cde 100644 --- a/src/module/user/member/component/ui/navbar_detail_member.tsx +++ b/src/module/user/member/component/ui/navbar_detail_member.tsx @@ -1,19 +1,19 @@ 'use client' -import { LayoutNavbarHome, LayoutIconBack, WARNA, LayoutDrawer, isDrawer } from "@/module/_global"; -import { useHookstate } from "@hookstate/core"; +import { LayoutNavbarHome, LayoutIconBack, WARNA, LayoutDrawer } from "@/module/_global"; import { Box, Group, ActionIcon, Stack, Text } from "@mantine/core"; import { HiMenu } from "react-icons/hi"; import { HiUser } from "react-icons/hi2"; import DrawerDetailMember from "./drawer_detail_member"; +import { useState } from "react"; export default function NavbarDetailMember() { - const openDrawer = useHookstate(isDrawer) + const [isOpen, setOpen] = useState(false) return ( - {openDrawer.set(true)}} variant="light" bg={WARNA.bgIcon} size="lg" radius="lg" aria-label="Info"> + setOpen(true)} variant="light" bg={WARNA.bgIcon} size="lg" radius="lg" aria-label="Info"> @@ -27,8 +27,8 @@ export default function NavbarDetailMember() { Kepala Urusan Pengembangan - openDrawer.set(false)}> - + setOpen(false)}> + setOpen(false)} /> ) diff --git a/src/module/user/member/component/ui/navbar_list_member.tsx b/src/module/user/member/component/ui/navbar_list_member.tsx index a4955a9..e383e78 100644 --- a/src/module/user/member/component/ui/navbar_list_member.tsx +++ b/src/module/user/member/component/ui/navbar_list_member.tsx @@ -1,32 +1,22 @@ 'use client' -import { isDrawer, LayoutDrawer, LayoutIconBack, LayoutNavbarHome, WARNA } from "@/module/_global"; -import { useHookstate } from "@hookstate/core"; -import { ActionIcon, Box, Grid, Group, Text } from "@mantine/core"; +import { LayoutDrawer, LayoutNavbarNew, WARNA } from "@/module/_global"; +import { ActionIcon } from "@mantine/core"; import { HiMenu } from "react-icons/hi"; import DrawerListMember from "./drawer_list_member"; +import { useState } from "react"; export default function NavbarListMember() { - const openDrawer = useHookstate(isDrawer) + const [isOpenDrawer, setOpenDrawer] = useState(false) return ( <> - - - - - - - ANGGOTA - - - - openDrawer.set(true)} variant="light" bg={WARNA.bgIcon} size="lg" radius="lg" aria-label="Settings"> - - - - - - - openDrawer.set(false)}> + setOpenDrawer(true)} variant="light" bg={WARNA.bgIcon} size="lg" radius="lg" aria-label="Settings"> + + + } + /> + setOpenDrawer(false)}> diff --git a/src/module/user/member/view/view_create_member.tsx b/src/module/user/member/view/view_create_member.tsx index efa9ccc..f6f77d0 100644 --- a/src/module/user/member/view/view_create_member.tsx +++ b/src/module/user/member/view/view_create_member.tsx @@ -1,77 +1,14 @@ -import { Box, Button, Stack, TextInput } from "@mantine/core"; +import { Box } from "@mantine/core"; import NavbarCreateMember from "../component/ui/navbar_create_member"; -import { WARNA } from "@/module/_global"; -import { HiUser } from "react-icons/hi2"; +import { LayoutNavbarNew, WARNA } from "@/module/_global"; +import CreateMember from "../component/create_member"; export default function ViewCreateMember() { return ( - - - - - - - - - - - - - + {/* */} + } /> + ) } \ No newline at end of file diff --git a/src/module/user/member/view/view_edit_member.tsx b/src/module/user/member/view/view_edit_member.tsx index 6795d97..a48f887 100644 --- a/src/module/user/member/view/view_edit_member.tsx +++ b/src/module/user/member/view/view_edit_member.tsx @@ -1,77 +1,15 @@ -import { WARNA } from "@/module/_global"; +import { LayoutNavbarHome, LayoutNavbarNew, WARNA } from "@/module/_global"; import { Box, Stack, TextInput, Button } from "@mantine/core"; import { HiUser } from "react-icons/hi2"; import NavbarEditMember from "../component/ui/navbar_edit_member"; +import EditMember from "../component/edit_member"; export default function ViewEditMember() { return ( - - - - - - - - - - - - - + {/* */} + } /> + ) } \ No newline at end of file