Create backup route skeleton
This commit is contained in:
parent
c68ddffc5e
commit
f220451e6e
@ -7,15 +7,16 @@ import {
|
|||||||
} from "react-router-dom";
|
} from "react-router-dom";
|
||||||
import { AuthApi } from "./api/AuthApi";
|
import { AuthApi } from "./api/AuthApi";
|
||||||
import { ServerApi } from "./api/ServerApi";
|
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 { HomeRoute } from "./routes/HomeRoute";
|
||||||
import { NotFoundRoute } from "./routes/NotFound";
|
import { NotFoundRoute } from "./routes/NotFound";
|
||||||
|
import { TokensRoute } from "./routes/TokensRoute";
|
||||||
import { LoginRoute } from "./routes/auth/LoginRoute";
|
import { LoginRoute } from "./routes/auth/LoginRoute";
|
||||||
import { OIDCCbRoute } from "./routes/auth/OIDCCbRoute";
|
import { OIDCCbRoute } from "./routes/auth/OIDCCbRoute";
|
||||||
import { BaseAuthenticatedPage } from "./widgets/BaseAuthenticatedPage";
|
import { BaseAuthenticatedPage } from "./widgets/BaseAuthenticatedPage";
|
||||||
import { BaseLoginPage } from "./widgets/BaseLoginPage";
|
import { BaseLoginPage } from "./widgets/BaseLoginPage";
|
||||||
import { TokensRoute } from "./routes/TokensRoute";
|
|
||||||
import { AccountsRoute } from "./routes/AccountsRoute";
|
|
||||||
import { AccountRoute } from "./routes/AccountRoute";
|
|
||||||
|
|
||||||
interface AuthContext {
|
interface AuthContext {
|
||||||
signedIn: boolean;
|
signedIn: boolean;
|
||||||
@ -41,6 +42,7 @@ export function App() {
|
|||||||
<Route path="*" element={<BaseAuthenticatedPage />}>
|
<Route path="*" element={<BaseAuthenticatedPage />}>
|
||||||
<Route path="" element={<HomeRoute />} />
|
<Route path="" element={<HomeRoute />} />
|
||||||
<Route path="tokens" element={<TokensRoute />} />
|
<Route path="tokens" element={<TokensRoute />} />
|
||||||
|
<Route path="backup" element={<BackupRoute />} />
|
||||||
<Route path="accounts" element={<AccountsRoute />} />
|
<Route path="accounts" element={<AccountsRoute />} />
|
||||||
<Route path="account/:accountId" element={<AccountRoute />} />
|
<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 Icon from "@mdi/react";
|
||||||
import {
|
import {
|
||||||
Divider,
|
Divider,
|
||||||
@ -11,10 +11,10 @@ import {
|
|||||||
import React from "react";
|
import React from "react";
|
||||||
import { useLocation } from "react-router-dom";
|
import { useLocation } from "react-router-dom";
|
||||||
import { useAccounts } from "../hooks/AccountsListProvider";
|
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 { usePublicMode } from "../hooks/context_providers/PublicModeProvider";
|
||||||
|
import { AccountWidget } from "./AccountWidget";
|
||||||
|
import { AmountWidget } from "./AmountWidget";
|
||||||
|
import { RouterLink } from "./RouterLink";
|
||||||
|
|
||||||
export function MoneyNavList(): React.ReactElement {
|
export function MoneyNavList(): React.ReactElement {
|
||||||
const publicMode = usePublicMode();
|
const publicMode = usePublicMode();
|
||||||
@ -28,17 +28,7 @@ export function MoneyNavList(): React.ReactElement {
|
|||||||
backgroundColor: "background.paper",
|
backgroundColor: "background.paper",
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
<NavLink
|
<NavLink label="Home" uri="/" icon={<Icon path={mdiHome} size={1} />} />
|
||||||
label="Accueil"
|
|
||||||
uri="/"
|
|
||||||
icon={<Icon path={mdiHome} size={1} />}
|
|
||||||
/>
|
|
||||||
|
|
||||||
<NavLink
|
|
||||||
label="API Tokens"
|
|
||||||
uri="/tokens"
|
|
||||||
icon={<Icon path={mdiApi} size={1} />}
|
|
||||||
/>
|
|
||||||
|
|
||||||
<NavLink
|
<NavLink
|
||||||
label="Accounts"
|
label="Accounts"
|
||||||
|
@ -1,7 +1,9 @@
|
|||||||
import { mdiCash } from "@mdi/js";
|
import { mdiApi, mdiCash } from "@mdi/js";
|
||||||
import Icon from "@mdi/react";
|
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 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 AppBar from "@mui/material/AppBar";
|
||||||
import Menu from "@mui/material/Menu";
|
import Menu from "@mui/material/Menu";
|
||||||
import MenuItem from "@mui/material/MenuItem";
|
import MenuItem from "@mui/material/MenuItem";
|
||||||
@ -10,8 +12,8 @@ import Typography from "@mui/material/Typography";
|
|||||||
import * as React from "react";
|
import * as React from "react";
|
||||||
import { useAuthInfo } from "./BaseAuthenticatedPage";
|
import { useAuthInfo } from "./BaseAuthenticatedPage";
|
||||||
import { DarkThemeButton } from "./DarkThemeButtonWidget";
|
import { DarkThemeButton } from "./DarkThemeButtonWidget";
|
||||||
import { RouterLink } from "./RouterLink";
|
|
||||||
import { PublicModeButton } from "./PublicModeButtonWidget";
|
import { PublicModeButton } from "./PublicModeButtonWidget";
|
||||||
|
import { RouterLink } from "./RouterLink";
|
||||||
|
|
||||||
export function MoneyWebAppBar(p: {
|
export function MoneyWebAppBar(p: {
|
||||||
onSignOut: () => void;
|
onSignOut: () => void;
|
||||||
@ -63,7 +65,7 @@ export function MoneyWebAppBar(p: {
|
|||||||
id="menu-appbar"
|
id="menu-appbar"
|
||||||
anchorEl={anchorEl}
|
anchorEl={anchorEl}
|
||||||
anchorOrigin={{
|
anchorOrigin={{
|
||||||
vertical: "top",
|
vertical: "bottom",
|
||||||
horizontal: "right",
|
horizontal: "right",
|
||||||
}}
|
}}
|
||||||
keepMounted
|
keepMounted
|
||||||
@ -74,7 +76,39 @@ export function MoneyWebAppBar(p: {
|
|||||||
open={Boolean(anchorEl)}
|
open={Boolean(anchorEl)}
|
||||||
onClose={handleCloseMenu}
|
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>
|
</Menu>
|
||||||
</div>
|
</div>
|
||||||
</Toolbar>
|
</Toolbar>
|
||||||
|
Loading…
x
Reference in New Issue
Block a user