Skip to content
Snippets Groups Projects
Commit 34bb4530 authored by Tianyi Liang's avatar Tianyi Liang
Browse files

refactor: MODIFY definition in pages.ts

parent c2a806b1
No related branches found
No related tags found
No related merge requests found
......@@ -11,11 +11,13 @@ function ExampleNavbar() {
if ("folder" in page && page.folder) {
const folder = [];
for (const subpage of page.folder) {
folder.push(
<NavDropdown.Item as={Link} to={subpage.path} target="_blank">
{subpage.name}
</NavDropdown.Item>,
);
if ("path" in subpage && subpage.path) {
folder.push(
<NavDropdown.Item as={Link} to={subpage.path} target="_blank">
{subpage.name}
</NavDropdown.Item>,
);
}
}
pages.push(
<NavDropdown title={page.name} id="basic-nav-dropdown">
......
......@@ -52,7 +52,7 @@ const App = () => {
<Route
key={path}
path={path}
element={<Header title={title} lead={lead} />}
element={<Header title={title || ""} lead={lead || ""} />}
/>
);
})}
......
interface Base {
name: string;
name: string | undefined;
}
class Folder implements Base {
name!: string;
folder!: Page[];
name: string | undefined;
folder: Page[] | undefined;
}
class Page implements Base {
name!: string;
title!: string;
path!: string;
lead?: string;
name: string | undefined;
title: string | undefined;
path: string | undefined;
lead: string | undefined;
}
const Pages: (Page | Folder)[] = [
......
import pages from "../pages.ts";
const getPathMapping = () => {
const map: {
[key: string]: { name: string; title: string; lead: string };
} = {};
pages.forEach((item) => {
if ("folder" in item && item.folder) {
return pages.reduce<{
[key: string]: {
name: string | undefined;
title: string | undefined;
lead: string | undefined;
};
}>((map, item) => {
if ("path" in item && item.path) {
map[item.path] = { name: item.name, title: item.title, lead: item.lead };
} else if ("folder" in item && item.folder) {
item.folder.forEach((page) => {
map[page.path] = {
name: page.name,
title: page.title,
lead: page.lead || "",
};
if (page.path) {
map[page.path] = {
name: page.name,
title: page.title,
lead: page.lead,
};
}
});
} else if ("path" in item && item.path) {
map[item.path] = {
name: item.name,
title: item.title,
lead: item.lead || "",
};
}
});
return map;
return map;
}, {});
};
export default getPathMapping;
import { useEffect } from "react";
function useDocumentTitle(title: string) {
function useDocumentTitle(title: any) {
useEffect(() => {
document.title = `${title} | ${import.meta.env.VITE_TEAM_NAME} - iGEM ${import.meta.env.VITE_TEAM_YEAR}`;
document.title = `${title || ""} | ${import.meta.env.VITE_TEAM_NAME} - iGEM ${import.meta.env.VITE_TEAM_YEAR}`;
}, [title]);
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment