From b42d2284c518fa83021b48664c25c80d7d9c78ad Mon Sep 17 00:00:00 2001 From: amel Date: Tue, 27 Aug 2024 17:00:38 +0800 Subject: [PATCH] upd: position Deskripsi: - refresh otomatis No Issues --- src/module/position/lib/val_posisition.ts | 3 +++ src/module/position/ui/drawer_list_position.tsx | 4 ++++ src/module/position/ui/list_position_active.tsx | 5 ++++- 3 files changed, 11 insertions(+), 1 deletion(-) create mode 100644 src/module/position/lib/val_posisition.ts diff --git a/src/module/position/lib/val_posisition.ts b/src/module/position/lib/val_posisition.ts new file mode 100644 index 0000000..abeb796 --- /dev/null +++ b/src/module/position/lib/val_posisition.ts @@ -0,0 +1,3 @@ +import { hookstate } from "@hookstate/core"; + +export const globalRefreshPosition = hookstate(false); \ No newline at end of file diff --git a/src/module/position/ui/drawer_list_position.tsx b/src/module/position/ui/drawer_list_position.tsx index 3654079..7419322 100644 --- a/src/module/position/ui/drawer_list_position.tsx +++ b/src/module/position/ui/drawer_list_position.tsx @@ -8,12 +8,15 @@ import toast from "react-hot-toast"; import { IoAddCircle } from "react-icons/io5"; import { RiFilter2Line } from "react-icons/ri"; import { funCreatePosition } from "../lib/api_position"; +import { useHookstate } from "@hookstate/core"; +import { globalRefreshPosition } from "../lib/val_posisition"; export default function DrawerListPosition({ onCreated }: { onCreated: (val: boolean) => void }) { const [openDrawerGroup, setOpenDrawerGroup] = useState(false) const router = useRouter() const [listGroup, setListGorup] = useState([]) + const refresh = useHookstate(globalRefreshPosition) const [touched, setTouched] = useState({ name: false, idGroup: false @@ -53,6 +56,7 @@ export default function DrawerListPosition({ onCreated }: { onCreated: (val: boo if (res.success) { setOpenDrawerGroup(false) toast.success(res.message) + refresh.set(true) onCreated(true) } else { toast.error(res.message) diff --git a/src/module/position/ui/list_position_active.tsx b/src/module/position/ui/list_position_active.tsx index 1680e3f..c6e6701 100644 --- a/src/module/position/ui/list_position_active.tsx +++ b/src/module/position/ui/list_position_active.tsx @@ -10,6 +10,8 @@ import { useShallowEffect } from "@mantine/hooks"; import { useSearchParams } from "next/navigation"; import { funGetAllPosition } from "../lib/api_position"; import { IDataPosition } from "../lib/type_position"; +import { useHookstate } from "@hookstate/core"; +import { globalRefreshPosition } from "../lib/val_posisition"; export default function ListPositionActive() { @@ -23,6 +25,7 @@ export default function ListPositionActive() { const searchParams = useSearchParams() const group = searchParams.get('group') const status = searchParams.get('active') + const refresh = useHookstate(globalRefreshPosition) async function getAllPosition() { try { @@ -41,7 +44,7 @@ export default function ListPositionActive() { useShallowEffect(() => { getAllPosition(); - }, [status, group, searchQuery]) + }, [status, group, searchQuery, refresh.get()]) return (