diff --git a/components/form/master/master-user-level/edit-user-level-form.tsx b/components/form/master/master-user-level/edit-user-level-form.tsx index 0006350..7e33c37 100644 --- a/components/form/master/master-user-level/edit-user-level-form.tsx +++ b/components/form/master/master-user-level/edit-user-level-form.tsx @@ -182,7 +182,7 @@ export default function EditUserLevelForm() { const fetchCategory = async () => { loading(); const request = { - limit: 10, + limit: -1, levelNumber: findSelectedLevel(selectedGroup)?.level ? findSelectedLevel(selectedGroup)!.level - 1 : "", diff --git a/components/form/master/master-user-level/master-user-level-form.tsx b/components/form/master/master-user-level/master-user-level-form.tsx index 442c9ce..bd654b1 100644 --- a/components/form/master/master-user-level/master-user-level-form.tsx +++ b/components/form/master/master-user-level/master-user-level-form.tsx @@ -177,7 +177,7 @@ export default function CreateMasterUserLevelForm() { const fetchCategory = async () => { loading(); const request = { - limit: 10, + limit: -1, levelNumber: findSelectedLevel(selectedGroup)?.level ? findSelectedLevel(selectedGroup)!.level - 1 : "", diff --git a/components/table/master/master-user-level/master-user-level-table.tsx b/components/table/master/master-user-level/master-user-level-table.tsx index cceb9fc..e729708 100644 --- a/components/table/master/master-user-level/master-user-level-table.tsx +++ b/components/table/master/master-user-level/master-user-level-table.tsx @@ -27,6 +27,7 @@ import { DotsYIcon, EyeFilledIcon, EyeIconMdi, + SearchIcon, } from "@/components/icons"; import Link from "next/link"; import { getAllUserLevels } from "@/services/user-levels/user-levels-service"; @@ -45,6 +46,7 @@ type UserObject = { export default function MasterUserLevelTable() { const [totalPage, setTotalPage] = useState(1); const [masterUserLevelTable, setmasterUserLevel] = useState([]); + const [search, setSearch] = useState(""); type TableRow = (typeof masterUserLevelTable)[0]; @@ -63,17 +65,18 @@ export default function MasterUserLevelTable() { useEffect(() => { fetchData(); - }, []); + }, [page]); async function fetchData() { loading(); const request = { page: page, limit: 10, + search: search, }; const res = await getAllUserLevels(request); const data = res?.data?.data; - setTotalPage(Math.ceil(res?.data?.total / 10)); + setTotalPage(Math.ceil(res?.data?.meta?.totalPage / 10)); await initUserData(10, data); close(); } @@ -106,14 +109,27 @@ export default function MasterUserLevelTable() { return name; }; + let typingTimer: NodeJS.Timeout; + const doneTypingInterval = 1500; + + const handleKeyUp = () => { + clearTimeout(typingTimer); + typingTimer = setTimeout(doneTyping, doneTypingInterval); + }; + + const handleKeyDown = () => { + clearTimeout(typingTimer); + }; + + async function doneTyping() { + fetchData(); + } + const renderCell = useCallback( (masterUserLevel: TableRow, columnKey: Key) => { const cellValue = masterUserLevel[columnKey as keyof UserObject]; switch (columnKey) { - case "no": - return
{masterUserLevel.id}
; - case "parentLevelId": return

{findParentName(cellValue)}

; case "actions": @@ -170,6 +186,25 @@ export default function MasterUserLevelTable() { */}
+
+

Pencarian

+ + } + type="text" + onChange={(e) => setSearch(e.target.value)} + onKeyUp={handleKeyUp} + onKeyDown={handleKeyDown} + /> +