Create backup route skeleton
This commit is contained in:
parent
c68ddffc5e
commit
f220451e6e
@ -7,15 +7,16 @@ import {
|
||||
} from "react-router-dom";
|
||||
import { AuthApi } from "./api/AuthApi";
|
||||
import { ServerApi } from "./api/ServerApi";
|
||||
import { AccountRoute } from "./routes/AccountRoute";
|
||||
import { AccountsRoute } from "./routes/AccountsRoute";
|
||||
import { BackupRoute } from "./routes/BackupRoute";
|
||||
import { HomeRoute } from "./routes/HomeRoute";
|
||||
import { NotFoundRoute } from "./routes/NotFound";
|
||||
import { TokensRoute } from "./routes/TokensRoute";
|
||||
import { LoginRoute } from "./routes/auth/LoginRoute";
|
||||
import { OIDCCbRoute } from "./routes/auth/OIDCCbRoute";
|
||||
import { BaseAuthenticatedPage } from "./widgets/BaseAuthenticatedPage";
|
||||
import { BaseLoginPage } from "./widgets/BaseLoginPage";
|
||||
import { TokensRoute } from "./routes/TokensRoute";
|
||||
import { AccountsRoute } from "./routes/AccountsRoute";
|
||||
import { AccountRoute } from "./routes/AccountRoute";
|
||||
|
||||
interface AuthContext {
|
||||
signedIn: boolean;
|
||||
@ -41,6 +42,7 @@ export function App() {
|
||||
<Route path="*" element={<BaseAuthenticatedPage />}>
|
||||
<Route path="" element={<HomeRoute />} />
|
||||
<Route path="tokens" element={<TokensRoute />} />
|
||||
<Route path="backup" element={<BackupRoute />} />
|
||||
<Route path="accounts" element={<AccountsRoute />} />
|
||||
<Route path="account/:accountId" element={<AccountRoute />} />
|
||||
|
||||
|
9
moneymgr_web/src/routes/BackupRoute.tsx
Normal file
9
moneymgr_web/src/routes/BackupRoute.tsx
Normal file
@ -0,0 +1,9 @@
|
||||
import { MoneyMgrWebRouteContainer } from "../widgets/MoneyMgrWebRouteContainer";
|
||||
|
||||
export function BackupRoute(): React.ReactElement {
|
||||
return (
|
||||
<MoneyMgrWebRouteContainer label={"Backup & Restore"}>
|
||||
TODO
|
||||
</MoneyMgrWebRouteContainer>
|
||||
);
|
||||
}
|
@ -1,4 +1,4 @@
|
||||
import { mdiApi, mdiCashMultiple, mdiHome } from "@mdi/js";
|
||||
import { mdiCashMultiple, mdiHome } from "@mdi/js";
|
||||
import Icon from "@mdi/react";
|
||||
import {
|
||||
Divider,
|
||||
@ -11,10 +11,10 @@ import {
|
||||
import React from "react";
|
||||
import { useLocation } from "react-router-dom";
|
||||
import { useAccounts } from "../hooks/AccountsListProvider";
|
||||
import { AccountWidget } from "./AccountWidget";
|
||||
import { RouterLink } from "./RouterLink";
|
||||
import { AmountWidget } from "./AmountWidget";
|
||||
import { usePublicMode } from "../hooks/context_providers/PublicModeProvider";
|
||||
import { AccountWidget } from "./AccountWidget";
|
||||
import { AmountWidget } from "./AmountWidget";
|
||||
import { RouterLink } from "./RouterLink";
|
||||
|
||||
export function MoneyNavList(): React.ReactElement {
|
||||
const publicMode = usePublicMode();
|
||||
@ -28,17 +28,7 @@ export function MoneyNavList(): React.ReactElement {
|
||||
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} />}
|
||||
/>
|
||||
<NavLink label="Home" uri="/" icon={<Icon path={mdiHome} size={1} />} />
|
||||
|
||||
<NavLink
|
||||
label="Accounts"
|
||||
|
@ -1,7 +1,9 @@
|
||||
import { mdiCash } from "@mdi/js";
|
||||
import { mdiApi, mdiCash } from "@mdi/js";
|
||||
import Icon from "@mdi/react";
|
||||
import CloudDownloadIcon from "@mui/icons-material/CloudDownload";
|
||||
import LogoutIcon from "@mui/icons-material/Logout";
|
||||
import SettingsIcon from "@mui/icons-material/Settings";
|
||||
import { Button } from "@mui/material";
|
||||
import { Button, Divider, ListItemIcon, ListItemText } from "@mui/material";
|
||||
import AppBar from "@mui/material/AppBar";
|
||||
import Menu from "@mui/material/Menu";
|
||||
import MenuItem from "@mui/material/MenuItem";
|
||||
@ -10,8 +12,8 @@ import Typography from "@mui/material/Typography";
|
||||
import * as React from "react";
|
||||
import { useAuthInfo } from "./BaseAuthenticatedPage";
|
||||
import { DarkThemeButton } from "./DarkThemeButtonWidget";
|
||||
import { RouterLink } from "./RouterLink";
|
||||
import { PublicModeButton } from "./PublicModeButtonWidget";
|
||||
import { RouterLink } from "./RouterLink";
|
||||
|
||||
export function MoneyWebAppBar(p: {
|
||||
onSignOut: () => void;
|
||||
@ -63,7 +65,7 @@ export function MoneyWebAppBar(p: {
|
||||
id="menu-appbar"
|
||||
anchorEl={anchorEl}
|
||||
anchorOrigin={{
|
||||
vertical: "top",
|
||||
vertical: "bottom",
|
||||
horizontal: "right",
|
||||
}}
|
||||
keepMounted
|
||||
@ -74,7 +76,39 @@ export function MoneyWebAppBar(p: {
|
||||
open={Boolean(anchorEl)}
|
||||
onClose={handleCloseMenu}
|
||||
>
|
||||
<MenuItem onClick={signOut}>Sign out</MenuItem>
|
||||
{/* API tokens */}
|
||||
<RouterLink to={"/tokens"}>
|
||||
<MenuItem>
|
||||
<ListItemIcon>
|
||||
<Icon path={mdiApi} size={1} />
|
||||
</ListItemIcon>
|
||||
<ListItemText secondary="Manage programmatic access to your account">
|
||||
API Tokens
|
||||
</ListItemText>
|
||||
</MenuItem>
|
||||
</RouterLink>
|
||||
|
||||
{/* Backup */}
|
||||
<RouterLink to={"/backup"}>
|
||||
<MenuItem>
|
||||
<ListItemIcon>
|
||||
<CloudDownloadIcon />
|
||||
</ListItemIcon>
|
||||
<ListItemText secondary="Backup and restore your data">
|
||||
Backup
|
||||
</ListItemText>
|
||||
</MenuItem>
|
||||
</RouterLink>
|
||||
|
||||
<Divider />
|
||||
|
||||
{/* Sign out */}
|
||||
<MenuItem onClick={signOut}>
|
||||
<ListItemIcon>
|
||||
<LogoutIcon />
|
||||
</ListItemIcon>
|
||||
<ListItemText secondary="End your session">Sign out</ListItemText>
|
||||
</MenuItem>
|
||||
</Menu>
|
||||
</div>
|
||||
</Toolbar>
|
||||
|
Loading…
x
Reference in New Issue
Block a user