File name
Commit message
Commit date
File name
Commit message
Commit date
File name
Commit message
Commit date
File name
Commit message
Commit date
import {fetchMenuList} from "../../api/menuApi.ts";
import {useQuery} from "@tanstack/react-query";
import type {MenuItem, MenuItemResponse} from "../../type/menu.ts";
function toMenuItem(item: MenuItemResponse): MenuItem {
return {
no: String(item.menuNo ?? ''),
name: item.menuNm ?? '',
url: item.chkURL ?? '#',
upperNo: String(item.upperMenuId ?? '0'),
};
}
export const useMenuList = () => {
const query = useQuery({
queryKey: ['menuList'],
queryFn: fetchMenuList,
select: (data) => {
const headMenuList =
(data.head ?? [])
.map(toMenuItem)
.filter((item: MenuItem) => item.no && item.name);
const menuList =
(data.menu ?? [])
.map(toMenuItem)
.filter((item: MenuItem) => item.no && item.name);
return {
headMenuList,
menuList,
};
},
staleTime: 1000 * 60 * 10,
});
return {
headMenuList: query.data?.headMenuList ?? [],
menuList: query.data?.menuList ?? [],
isLoading: query.isLoading,
errorMessage: query.error instanceof Error ? query.error.message : null,
};
};