Quellcode durchsuchen

NotFound時にログイン画面へ遷移させるケースを追加

develop
sosuke.iwabuchi vor 2 Jahren
Ursprung
Commit
1357016f9a
3 geänderte Dateien mit 41 neuen und 2 gelöschten Zeilen
  1. +7
    -2
      src/pages/auth/login.tsx
  2. +16
    -0
      src/pages/common/Page404.tsx
  3. +18
    -0
      src/storage/localstorage/index.ts

+ 7
- 2
src/pages/auth/login.tsx Datei anzeigen

@@ -1,15 +1,16 @@
import { yupResolver } from "@hookform/resolvers/yup";
import { LoadingButton } from "@mui/lab";
import { AppBar, Box, Grid, Stack, Typography } from "@mui/material";
import { Box, Stack, Typography } from "@mui/material";
import { PageID } from "codes/page";
import InputAlert from "components/form/InputAlert";
import { FormProvider, RHFTextField } from "components/hook-form";
import useAuth from "hooks/useAuth";
import useNavigateCustom from "hooks/useNavigateCustom";
import useSnackbarCustom from "hooks/useSnackbarCustom";
import { useState } from "react";
import { useEffect, useState } from "react";
import { useForm } from "react-hook-form";
import { getPath } from "routes/path";
import { StoreId, setStore } from "storage/localstorage";
import * as Yup from "yup";

type FormProps = {
@@ -56,6 +57,10 @@ export default function Login() {
}
};

useEffect(() => {
setStore(StoreId.LOGIN_ROUTE, true);
}, []);

return (
<FormProvider methods={form} onSubmit={form.handleSubmit(handleSubmit)}>
<Box sx={{ p: 3, pt: 5, mx: "auto", maxWidth: 500 }} textAlign="center">


+ 16
- 0
src/pages/common/Page404.tsx Datei anzeigen

@@ -1,5 +1,21 @@
import { Box } from "@mui/material";
import { PageID } from "codes/page";
import useNavigateCustom from "hooks/useNavigateCustom";
import { useEffect } from "react";
import { getPath } from "routes/path";
import { StoreId, getStore } from "storage/localstorage";

export default function Page404() {
const { navigateWhenChanged } = useNavigateCustom();

// ログインページにアクセス経験ある場合は、ログインページへ遷移させる
useEffect(() => {
const canLoginRoute = !!getStore(StoreId.LOGIN_ROUTE);

if (canLoginRoute) {
navigateWhenChanged(getPath(PageID.LOGIN));
}
}, []);

return <Box>NotFound.</Box>;
}

+ 18
- 0
src/storage/localstorage/index.ts Datei anzeigen

@@ -0,0 +1,18 @@
let id = 0;
export const StoreId = {
LOGIN_ROUTE: "LOGIN_ROUTE",
} as const;
export type StoreId = (typeof StoreId)[keyof typeof StoreId];

export const getStore = (id: StoreId): string | null => {
return localStorage.getItem(id);
};
export const setStore = (id: StoreId, data: any) => {
localStorage.setItem(id, data);
};
export const removeStore = (id: StoreId) => {
localStorage.removeItem(id);
};
export const clearStore = () => {
localStorage.clear();
};

Laden…
Abbrechen
Speichern