diff --git a/src/routes/index.tsx b/src/routes/index.tsx
index e7af946..bf7136a 100644
--- a/src/routes/index.tsx
+++ b/src/routes/index.tsx
@@ -1,14 +1,13 @@
-import { PageID } from "codes/page";
import LoadingScreen from "components/LoadingScreen";
-import { AppContextProvider } from "contexts/AppContext";
import useAuth from "hooks/useAuth";
-import DashboardLayout from "layouts/dashbord";
-import SimpleLayout from "layouts/simple";
-import { ElementType, Suspense, lazy, useMemo } from "react";
-import { RouteObject, useRoutes } from "react-router-dom";
-import { getRoute } from "./path";
-
-const Loadable = (Component: ElementType) => (props: any) => {
+import { ElementType, Suspense, lazy } from "react";
+import { useRoutes } from "react-router-dom";
+import AppRoutes from "./sub/app";
+import AuthRoutes from "./sub/auth";
+import CommonRoutes from "./sub/common";
+import DashboardRoutes from "./sub/dashboard";
+
+export const Loadable = (Component: ElementType) => (props: any) => {
return (
}>
@@ -16,130 +15,6 @@ const Loadable = (Component: ElementType) => (props: any) => {
);
};
-const CommonRoutes = (): RouteObject => ({
- element: ,
- children: [
- {
- path: getRoute(PageID.APP_PRIVACY_POLICY),
- element: ,
- },
- ],
-});
-
-const AuthRoutes = (): RouteObject => ({
- element: ,
- children: [
- {
- path: getRoute(PageID.LOGIN),
- element: ,
- },
- {
- path: getRoute(PageID.LOGOUT),
- element: ,
- },
- {
- path: getRoute(PageID.CLEAR_CHANGE_CONTRACT),
- element: ,
- },
- ],
-});
-
-const AppRoutes = (): RouteObject => ({
- element: (
-
-
-
- ),
- children: [
- {
- path: getRoute(PageID.APP_RECEIPT_ISSUING_ORDER_INDEX),
- element: ,
- },
- {
- path: getRoute(PageID.APP_RECEIPT_ISSUING_ORDER_MAIL_ORDER),
- element: ,
- },
- {
- path: getRoute(PageID.APP_RECEIPT_ISSUING_ORDER_EMAIL_ORDER),
- element: ,
- },
- ],
-});
-
-const DashboardRoutes = (): RouteObject => {
- const { canAccess } = useAuth();
-
- const children: RouteObject[] = useMemo(() => {
- const allChildren = [
- {
- pageId: PageID.DASHBOARD_OVERVIEW,
- element: ,
- },
- {
- pageId: PageID.DASHBOARD_CONTRACT_LIST,
- element: ,
- },
- {
- pageId: PageID.DASHBOARD_CONTRACT_DETAIL,
- element: ,
- },
- {
- pageId: PageID.DASHBOARD_CONTRACT_CREATE,
- element: ,
- },
- {
- pageId: PageID.DASHBOARD_USE_SUMMARY_LIST_BY_CONTRACT,
- element: ,
- },
- {
- pageId:
- PageID.DASHBOARD_RECEIPT_ISSUING_ORDER_CREATE_CUSTOM_HELLO_TECHNO,
- element: ,
- },
- {
- pageId: PageID.DASHBOARD_RECEIPT_ISSUING_ORDER_LIST_CUSTOM_HELLO_TECHNO,
- element: ,
- },
- {
- pageId:
- PageID.DASHBOARD_RECEIPT_ISSUING_ORDER_DETAIL_CUSTOM_HELLO_TECHNO,
- element: ,
- },
- {
- pageId: PageID.DASHBOARD_USE_SUMMARY_LIST_CUSTOM_HELLO_TECHNO,
- element: ,
- },
- {
- pageId: PageID.DASHBOARD_USE_SUMMARY_DETAIL_CUSTOM_HELLO_TECHNO,
- element: ,
- },
- {
- pageId: PageID.DASHBOARD_LOGIN_USER_LIST,
- element: ,
- },
- {
- pageId: PageID.DASHBOARD_LOGIN_USER_CREATE,
- element: ,
- },
- {
- pageId: PageID.DASHBOARD_LOGIN_USER_CHANGE_PASSWORD,
- element: ,
- },
- ];
- return allChildren
- .filter(({ pageId }) => canAccess(pageId))
- .map(({ pageId, ...others }) => ({
- ...others,
- path: getRoute(pageId),
- }));
- }, [canAccess]);
-
- return {
- element: ,
- children,
- };
-};
-
export function Routes() {
const { initialized } = useAuth();
return useRoutes([
@@ -147,10 +22,6 @@ export function Routes() {
AuthRoutes(),
AppRoutes(),
DashboardRoutes(),
- {
- path: "403",
- element: ,
- },
{
path: "*",
element: initialized ? : ,
@@ -158,76 +29,4 @@ export function Routes() {
]);
}
-// 認証関連 -------------------------------
-const Login = Loadable(lazy(() => import("pages/auth/login")));
-const Logout = Loadable(lazy(() => import("pages/auth/logout")));
-const ClearContract = Loadable(lazy(() => import("pages/auth/clear-contract")));
-
-// App ---------------------------
-const ReceiptIssuingOrder = Loadable(
- lazy(() => import("pages/app/ReceiptIssuingOrder"))
-);
-const MailOrder = Loadable(lazy(() => import("pages/app/MailOrder")));
-const EmailOrder = Loadable(lazy(() => import("pages/app/EmailOrder")));
-
-//ダッシュボード ----------------------------
-const Dashboard = Loadable(lazy(() => import("pages/dashboard")));
-// 契約関連
-const ContractList = Loadable(
- lazy(() => import("pages/dashboard/contract/list"))
-);
-const ContractDetail = Loadable(
- lazy(() => import("pages/dashboard/contract/detail"))
-);
-const ContractCreate = Loadable(
- lazy(() => import("pages/dashboard/contract/create"))
-);
-// 領収証発行依頼
-const ReceiptIssuingOrderCreateHelloTechno = Loadable(
- lazy(
- () =>
- import("pages/dashboard/receipt-issuing-order/custom/hello-techno/create")
- )
-);
-const ReceiptIssuingOrderListHelloTechno = Loadable(
- lazy(
- () =>
- import("pages/dashboard/receipt-issuing-order/custom/hello-techno/list")
- )
-);
-const ReceiptIssuingOrderDetailHelloTechno = Loadable(
- lazy(
- () =>
- import("pages/dashboard/receipt-issuing-order/custom/hello-techno/detail")
- )
-);
-
-// 利用実績関連
-const UseSummaryByContractList = Loadable(
- lazy(() => import("pages/dashboard/use-summary/list"))
-);
-const UseSummaryListHelloTechno = Loadable(
- lazy(() => import("pages/dashboard/use-summary/custom/hello-techno/list"))
-);
-const UseSummaryDetailHelloTechno = Loadable(
- lazy(() => import("pages/dashboard/use-summary/custom/hello-techno/detail"))
-);
-
-// ログインユーザー管理
-const LoginUserList = Loadable(
- lazy(() => import("pages/dashboard/login-user/list"))
-);
-const LoginUserCreate = Loadable(
- lazy(() => import("pages/dashboard/login-user/create"))
-);
-const ChangePassword = Loadable(
- lazy(() => import("pages/dashboard/login-user/change-password"))
-);
-
-// その他 ---------------------------------
-
-const PrivacyPolicy = Loadable(
- lazy(() => import("pages/common/PrivacyPolicy"))
-);
-const Page403 = Loadable(lazy(() => import("pages/common/Page403")));
const Page404 = Loadable(lazy(() => import("pages/common/Page404")));
diff --git a/src/routes/sub/app.tsx b/src/routes/sub/app.tsx
new file mode 100644
index 0000000..38f8a38
--- /dev/null
+++ b/src/routes/sub/app.tsx
@@ -0,0 +1,41 @@
+import { PageID } from "codes/page";
+import { AppContextProvider } from "contexts/AppContext";
+import SimpleLayout from "layouts/simple";
+import { lazy, useMemo } from "react";
+import { RouteObject } from "react-router-dom";
+import { Loadable } from "routes";
+import { getRoute } from "routes/path";
+
+export default function AppRoutes(): RouteObject {
+ const ReceiptIssuingOrder = Loadable(
+ lazy(() => import("pages/app/ReceiptIssuingOrder"))
+ );
+ const MailOrder = Loadable(lazy(() => import("pages/app/MailOrder")));
+ const EmailOrder = Loadable(lazy(() => import("pages/app/EmailOrder")));
+
+ const children: RouteObject[] = useMemo(() => {
+ return [
+ {
+ path: getRoute(PageID.APP_RECEIPT_ISSUING_ORDER_INDEX),
+ element: ,
+ },
+ {
+ path: getRoute(PageID.APP_RECEIPT_ISSUING_ORDER_MAIL_ORDER),
+ element: ,
+ },
+ {
+ path: getRoute(PageID.APP_RECEIPT_ISSUING_ORDER_EMAIL_ORDER),
+ element: ,
+ },
+ ];
+ }, []);
+
+ return {
+ element: (
+
+
+
+ ),
+ children,
+ };
+}
diff --git a/src/routes/sub/auth.tsx b/src/routes/sub/auth.tsx
new file mode 100644
index 0000000..4da21df
--- /dev/null
+++ b/src/routes/sub/auth.tsx
@@ -0,0 +1,37 @@
+import { PageID } from "codes/page";
+import SimpleLayout from "layouts/simple";
+import { lazy, useMemo } from "react";
+import { RouteObject } from "react-router-dom";
+import { Loadable } from "routes";
+import { getRoute } from "routes/path";
+
+export default function AuthRoutes(): RouteObject {
+ const Login = Loadable(lazy(() => import("pages/auth/login")));
+ const Logout = Loadable(lazy(() => import("pages/auth/logout")));
+ const ClearContract = Loadable(
+ lazy(() => import("pages/auth/clear-contract"))
+ );
+
+ const children: RouteObject[] = useMemo(() => {
+ // 認証関連 -------------------------------
+ return [
+ {
+ path: getRoute(PageID.LOGIN),
+ element: ,
+ },
+ {
+ path: getRoute(PageID.LOGOUT),
+ element: ,
+ },
+ {
+ path: getRoute(PageID.CLEAR_CHANGE_CONTRACT),
+ element: ,
+ },
+ ];
+ }, []);
+
+ return {
+ element: ,
+ children,
+ };
+}
diff --git a/src/routes/sub/common.tsx b/src/routes/sub/common.tsx
new file mode 100644
index 0000000..7668783
--- /dev/null
+++ b/src/routes/sub/common.tsx
@@ -0,0 +1,25 @@
+import { PageID } from "codes/page";
+import SimpleLayout from "layouts/simple";
+import { lazy, useMemo } from "react";
+import { RouteObject } from "react-router-dom";
+import { Loadable } from "routes";
+import { getRoute } from "routes/path";
+
+export default function CommonRoutes(): RouteObject {
+ const PrivacyPolicy = Loadable(
+ lazy(() => import("pages/common/PrivacyPolicy"))
+ );
+ const children: RouteObject[] = useMemo(() => {
+ return [
+ {
+ path: getRoute(PageID.APP_PRIVACY_POLICY),
+ element: ,
+ },
+ ];
+ }, []);
+
+ return {
+ element: ,
+ children,
+ };
+}
diff --git a/src/routes/sub/dashboard.tsx b/src/routes/sub/dashboard.tsx
new file mode 100644
index 0000000..38c0ce3
--- /dev/null
+++ b/src/routes/sub/dashboard.tsx
@@ -0,0 +1,138 @@
+import { PageID } from "codes/page";
+import useAuth from "hooks/useAuth";
+import DashboardLayout from "layouts/dashbord";
+import { lazy, useMemo } from "react";
+import { RouteObject } from "react-router-dom";
+import { Loadable } from "routes";
+import { getRoute } from "routes/path";
+
+export default function DashboardRoutes(): RouteObject {
+ const { canAccess } = useAuth();
+
+ const Dashboard = Loadable(lazy(() => import("pages/dashboard")));
+ // 契約関連
+ const ContractList = Loadable(
+ lazy(() => import("pages/dashboard/contract/list"))
+ );
+ const ContractDetail = Loadable(
+ lazy(() => import("pages/dashboard/contract/detail"))
+ );
+ const ContractCreate = Loadable(
+ lazy(() => import("pages/dashboard/contract/create"))
+ );
+ // 領収証発行依頼
+ const ReceiptIssuingOrderCreateHelloTechno = Loadable(
+ lazy(
+ () =>
+ import(
+ "pages/dashboard/receipt-issuing-order/custom/hello-techno/create"
+ )
+ )
+ );
+ const ReceiptIssuingOrderListHelloTechno = Loadable(
+ lazy(
+ () =>
+ import("pages/dashboard/receipt-issuing-order/custom/hello-techno/list")
+ )
+ );
+ const ReceiptIssuingOrderDetailHelloTechno = Loadable(
+ lazy(
+ () =>
+ import(
+ "pages/dashboard/receipt-issuing-order/custom/hello-techno/detail"
+ )
+ )
+ );
+
+ // 利用実績関連
+ const UseSummaryByContractList = Loadable(
+ lazy(() => import("pages/dashboard/use-summary/list"))
+ );
+ const UseSummaryListHelloTechno = Loadable(
+ lazy(() => import("pages/dashboard/use-summary/custom/hello-techno/list"))
+ );
+ const UseSummaryDetailHelloTechno = Loadable(
+ lazy(() => import("pages/dashboard/use-summary/custom/hello-techno/detail"))
+ );
+
+ // ログインユーザー管理
+ const LoginUserList = Loadable(
+ lazy(() => import("pages/dashboard/login-user/list"))
+ );
+ const LoginUserCreate = Loadable(
+ lazy(() => import("pages/dashboard/login-user/create"))
+ );
+ const ChangePassword = Loadable(
+ lazy(() => import("pages/dashboard/login-user/change-password"))
+ );
+
+ const children: RouteObject[] = useMemo(() => {
+ const allChildren = [
+ {
+ pageId: PageID.DASHBOARD_OVERVIEW,
+ element: ,
+ },
+ {
+ pageId: PageID.DASHBOARD_CONTRACT_LIST,
+ element: ,
+ },
+ {
+ pageId: PageID.DASHBOARD_CONTRACT_DETAIL,
+ element: ,
+ },
+ {
+ pageId: PageID.DASHBOARD_CONTRACT_CREATE,
+ element: ,
+ },
+ {
+ pageId: PageID.DASHBOARD_USE_SUMMARY_LIST_BY_CONTRACT,
+ element: ,
+ },
+ {
+ pageId:
+ PageID.DASHBOARD_RECEIPT_ISSUING_ORDER_CREATE_CUSTOM_HELLO_TECHNO,
+ element: ,
+ },
+ {
+ pageId: PageID.DASHBOARD_RECEIPT_ISSUING_ORDER_LIST_CUSTOM_HELLO_TECHNO,
+ element: ,
+ },
+ {
+ pageId:
+ PageID.DASHBOARD_RECEIPT_ISSUING_ORDER_DETAIL_CUSTOM_HELLO_TECHNO,
+ element: ,
+ },
+ {
+ pageId: PageID.DASHBOARD_USE_SUMMARY_LIST_CUSTOM_HELLO_TECHNO,
+ element: ,
+ },
+ {
+ pageId: PageID.DASHBOARD_USE_SUMMARY_DETAIL_CUSTOM_HELLO_TECHNO,
+ element: ,
+ },
+ {
+ pageId: PageID.DASHBOARD_LOGIN_USER_LIST,
+ element: ,
+ },
+ {
+ pageId: PageID.DASHBOARD_LOGIN_USER_CREATE,
+ element: ,
+ },
+ {
+ pageId: PageID.DASHBOARD_LOGIN_USER_CHANGE_PASSWORD,
+ element: ,
+ },
+ ];
+ return allChildren
+ .filter(({ pageId }) => canAccess(pageId))
+ .map(({ pageId, ...others }) => ({
+ ...others,
+ path: getRoute(pageId),
+ }));
+ }, [canAccess]);
+
+ return {
+ element: ,
+ children,
+ };
+}