Add base web UI

This commit is contained in:
2025-03-18 19:14:46 +01:00
parent abc75786f7
commit dbe1ec22e0
36 changed files with 2575 additions and 248 deletions

View File

@@ -0,0 +1,53 @@
import { mdiApi, mdiHome } from "@mdi/js";
import Icon from "@mdi/react";
import {
List,
ListItemButton,
ListItemIcon,
ListItemText,
} from "@mui/material";
import { useLocation } from "react-router-dom";
import { useAuthInfo } from "./BaseAuthenticatedPage";
import { RouterLink } from "./RouterLink";
export function MoneyNavList(): React.ReactElement {
const user = useAuthInfo().info;
return (
<List
dense
component="nav"
sx={{
minWidth: "200px",
backgroundColor: "background.paper",
}}
>
<NavLink
label="Accueil"
uri="/"
icon={<Icon path={mdiHome} size={1} />}
/>
<NavLink
label="API Tokens"
uri="/tokens"
icon={<Icon path={mdiApi} size={1} />}
/>
</List>
);
}
function NavLink(p: {
icon: React.ReactElement;
uri: string;
label: string;
}): React.ReactElement {
const location = useLocation();
return (
<RouterLink to={p.uri}>
<ListItemButton selected={p.uri === location.pathname}>
<ListItemIcon>{p.icon}</ListItemIcon>
<ListItemText primary={p.label} />
</ListItemButton>
</RouterLink>
);
}