doctor-mail/apps/web/src/components/layout/main/useNavItem.ts

38 lines
1.2 KiB
TypeScript
Raw Normal View History

2025-01-22 23:19:58 +08:00
import { api } from "@nice/client";
import { TaxonomySlug } from "@nice/common";
import { useMemo } from "react";
// export const NAV_ITEMS = [
// { to: "/write-letter", label: "咨询求助" },
// { to: "/write-letter", label: "解难帮困" },
// { to: "/write-letter", label: "需求提报" },
// { to: "/write-letter", label: "意见建议" },
// { to: "/write-letter", label: "问题反映" },
// { to: "/write-letter", label: "举报投诉" },
// ] as const;
export function useNavItem() {
const { data } = api.term.findMany.useQuery({
where: {
taxonomy: { slug: TaxonomySlug.CATEGORY }
}
});
const navItems = useMemo(() => {
const defaultItems = [
{ to: "/letter-list", label: "公开信件" },
{ to: "/letter-progress", label: "进度查询" },
{ to: "/help", label: "使用帮助" },
];
if (!data) return defaultItems;
return data.reduce((items, term) => {
items.push({ to: `/write-letter?category=${term.id}`, label: term.name });
return items;
}, [{ to: "/letter-list", label: "公开信件" }].concat(defaultItems.slice(1)));
}, [data]);
return { navItems };
}