fix schedule

This commit is contained in:
Rama Priyanto 2025-03-03 09:58:33 +07:00
parent b3f2a77363
commit e4bbd1c063
4 changed files with 43 additions and 8 deletions

View File

@ -182,7 +182,7 @@ export default function EditUserLevelForm() {
const fetchCategory = async () => { const fetchCategory = async () => {
loading(); loading();
const request = { const request = {
limit: 10, limit: -1,
levelNumber: findSelectedLevel(selectedGroup)?.level levelNumber: findSelectedLevel(selectedGroup)?.level
? findSelectedLevel(selectedGroup)!.level - 1 ? findSelectedLevel(selectedGroup)!.level - 1
: "", : "",

View File

@ -177,7 +177,7 @@ export default function CreateMasterUserLevelForm() {
const fetchCategory = async () => { const fetchCategory = async () => {
loading(); loading();
const request = { const request = {
limit: 10, limit: -1,
levelNumber: findSelectedLevel(selectedGroup)?.level levelNumber: findSelectedLevel(selectedGroup)?.level
? findSelectedLevel(selectedGroup)!.level - 1 ? findSelectedLevel(selectedGroup)!.level - 1
: "", : "",

View File

@ -27,6 +27,7 @@ import {
DotsYIcon, DotsYIcon,
EyeFilledIcon, EyeFilledIcon,
EyeIconMdi, EyeIconMdi,
SearchIcon,
} from "@/components/icons"; } from "@/components/icons";
import Link from "next/link"; import Link from "next/link";
import { getAllUserLevels } from "@/services/user-levels/user-levels-service"; import { getAllUserLevels } from "@/services/user-levels/user-levels-service";
@ -45,6 +46,7 @@ type UserObject = {
export default function MasterUserLevelTable() { export default function MasterUserLevelTable() {
const [totalPage, setTotalPage] = useState(1); const [totalPage, setTotalPage] = useState(1);
const [masterUserLevelTable, setmasterUserLevel] = useState<UserObject[]>([]); const [masterUserLevelTable, setmasterUserLevel] = useState<UserObject[]>([]);
const [search, setSearch] = useState("");
type TableRow = (typeof masterUserLevelTable)[0]; type TableRow = (typeof masterUserLevelTable)[0];
@ -63,17 +65,18 @@ export default function MasterUserLevelTable() {
useEffect(() => { useEffect(() => {
fetchData(); fetchData();
}, []); }, [page]);
async function fetchData() { async function fetchData() {
loading(); loading();
const request = { const request = {
page: page, page: page,
limit: 10, limit: 10,
search: search,
}; };
const res = await getAllUserLevels(request); const res = await getAllUserLevels(request);
const data = res?.data?.data; const data = res?.data?.data;
setTotalPage(Math.ceil(res?.data?.total / 10)); setTotalPage(Math.ceil(res?.data?.meta?.totalPage / 10));
await initUserData(10, data); await initUserData(10, data);
close(); close();
} }
@ -106,14 +109,27 @@ export default function MasterUserLevelTable() {
return name; 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( const renderCell = useCallback(
(masterUserLevel: TableRow, columnKey: Key) => { (masterUserLevel: TableRow, columnKey: Key) => {
const cellValue = masterUserLevel[columnKey as keyof UserObject]; const cellValue = masterUserLevel[columnKey as keyof UserObject];
switch (columnKey) { switch (columnKey) {
case "no":
return <div>{masterUserLevel.id}</div>;
case "parentLevelId": case "parentLevelId":
return <p className="text-black">{findParentName(cellValue)}</p>; return <p className="text-black">{findParentName(cellValue)}</p>;
case "actions": case "actions":
@ -170,6 +186,25 @@ export default function MasterUserLevelTable() {
</Button> </Button>
</Link> */} </Link> */}
<div className="flex flex-col items-center rounded-2xl"> <div className="flex flex-col items-center rounded-2xl">
<div className="flex flex-col gap-1 w-full justify-start mb-3">
<p className="font-semibold text-sm">Pencarian</p>
<Input
aria-label="Search"
classNames={{
inputWrapper: "bg-default-100",
input: "text-sm",
}}
className="max-w-md"
labelPlacement="outside"
startContent={
<SearchIcon className="text-base text-default-400 pointer-events-none flex-shrink-0" />
}
type="text"
onChange={(e) => setSearch(e.target.value)}
onKeyUp={handleKeyUp}
onKeyDown={handleKeyDown}
/>
</div>
<Table <Table
// selectionMode="multiple" // selectionMode="multiple"
aria-label="micro issue table" aria-label="micro issue table"

View File

@ -12,7 +12,7 @@ export async function getAllUserLevels(data?: any) {
return await httpGet( return await httpGet(
`user-levels?limit=${data?.limit || ""}&levelNumber=${ `user-levels?limit=${data?.limit || ""}&levelNumber=${
data?.levelNumber || "" data?.levelNumber || ""
}`, }&name=${data?.search || ""}`,
headers headers
); );
} }