import {
createBrowserRouter,
redirect,
RouterProvider,
type RouteObject,
} from "react-router-dom";
import { tools, type Tool } from "@/components/tool";
import { Layout } from "./layout";
const buildToolRoutes = (tools: Tool[]): RouteObject[] => {
return tools.map((tool) => {
const route: RouteObject = {
path: tool.path,
};
if (tool.component) {
route.element = tool.component;
}
if (tool.children && tool.children.length > 0) {
route.children = buildToolRoutes(tool.children);
}
return route;
});
};
// 路由配置
const router = createBrowserRouter([
{
path: "",
element: ,
children: [
{
path: "tool",
children: [
...buildToolRoutes(tools),
{
index: true,
loader: () => redirect("/tool/uuid"),
},
],
},
],
},
{
index: true,
loader: () => redirect("/tool"),
},
{
path: "*",
loader: () => redirect("/tool"),
},
]);
// 路由提供者组件
export const AppRouter = () => ;