Create backup route skeleton
This commit is contained in:
		@@ -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>
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user