From 6ec8eca60e9138521fa1e85e560559427e8698c3 Mon Sep 17 00:00:00 2001 From: crupest Date: Fri, 20 Nov 2020 18:31:15 +0800 Subject: ... --- FrontEnd/src/app/index.sass | 2 ++ FrontEnd/src/app/views/admin/Admin.tsx | 18 ++++++++-- FrontEnd/src/app/views/admin/AdminNav.tsx | 41 ++++++++++++++++++++++ FrontEnd/src/app/views/admin/AdminSubPage.tsx | 34 ------------------ .../src/app/views/admin/HighlightTimelineAdmin.tsx | 13 +++++++ FrontEnd/src/app/views/admin/UserAdmin.tsx | 5 ++- FrontEnd/src/app/views/admin/admin.sass | 0 7 files changed, 73 insertions(+), 40 deletions(-) create mode 100644 FrontEnd/src/app/views/admin/AdminNav.tsx delete mode 100644 FrontEnd/src/app/views/admin/AdminSubPage.tsx create mode 100644 FrontEnd/src/app/views/admin/HighlightTimelineAdmin.tsx create mode 100644 FrontEnd/src/app/views/admin/admin.sass (limited to 'FrontEnd/src') diff --git a/FrontEnd/src/app/index.sass b/FrontEnd/src/app/index.sass index b8cc464e..e3c1c5b9 100644 --- a/FrontEnd/src/app/index.sass +++ b/FrontEnd/src/app/index.sass @@ -10,6 +10,8 @@ @import './views/timeline/timeline' @import './views/user/user' +@import './views/admin/admin' + body margin: 0 diff --git a/FrontEnd/src/app/views/admin/Admin.tsx b/FrontEnd/src/app/views/admin/Admin.tsx index e17da5bc..ac640700 100644 --- a/FrontEnd/src/app/views/admin/Admin.tsx +++ b/FrontEnd/src/app/views/admin/Admin.tsx @@ -1,9 +1,12 @@ import React, { Fragment } from "react"; import { Redirect, Route, Switch, useRouteMatch, match } from "react-router"; +import { Container } from "react-bootstrap"; import { AuthUser } from "@/services/user"; +import AdminNav from "./AdminNav"; import UserAdmin from "./UserAdmin"; +import HighlightTimelineAdmin from "./HighlightTimelineAdmin"; interface AdminProps { user: AuthUser; @@ -20,9 +23,18 @@ const Admin: React.FC = ({ user }) => { {(p) => { const match = p.match as match<{ name: string }>; const name = match.params["name"]; - if (name === "users") { - return ; - } + return ( + + + {(() => { + if (name === "users") { + return ; + } else if (name === "highlighttimelines") { + return ; + } + })()} + + ); }} diff --git a/FrontEnd/src/app/views/admin/AdminNav.tsx b/FrontEnd/src/app/views/admin/AdminNav.tsx new file mode 100644 index 00000000..040b479f --- /dev/null +++ b/FrontEnd/src/app/views/admin/AdminNav.tsx @@ -0,0 +1,41 @@ +import React from "react"; +import { Nav } from "react-bootstrap"; +import { useHistory, useRouteMatch } from "react-router"; + +const AdminNav: React.FC = () => { + const match = useRouteMatch<{ name: string }>(); + const history = useHistory(); + + const name = match.params.name; + + function toggle(newTab: string): void { + history.push(`/admin/${newTab}`); + } + + return ( + + ); +}; + +export default AdminNav; diff --git a/FrontEnd/src/app/views/admin/AdminSubPage.tsx b/FrontEnd/src/app/views/admin/AdminSubPage.tsx deleted file mode 100644 index 5efe1ee3..00000000 --- a/FrontEnd/src/app/views/admin/AdminSubPage.tsx +++ /dev/null @@ -1,34 +0,0 @@ -import React from "react"; -import { Container, Nav } from "react-bootstrap"; -import { useHistory, useRouteMatch } from "react-router"; - -const AdminSubPage: React.FC = ({ children }) => { - const match = useRouteMatch<{ name: string }>(); - const history = useHistory(); - - const name = match.params.name; - - function toggle(newTab: string): void { - history.push(`/admin/${newTab}`); - } - - return ( - - - {children} - - ); -}; - -export default AdminSubPage; diff --git a/FrontEnd/src/app/views/admin/HighlightTimelineAdmin.tsx b/FrontEnd/src/app/views/admin/HighlightTimelineAdmin.tsx new file mode 100644 index 00000000..3de7d5a6 --- /dev/null +++ b/FrontEnd/src/app/views/admin/HighlightTimelineAdmin.tsx @@ -0,0 +1,13 @@ +import React from "react"; + +import { AuthUser } from "@/services/user"; + +export interface HighlightTimelineAdminProps { + user: AuthUser; +} + +const HighlightTimelineAdmin: React.FC = () => { + return <>This is highlight timeline administration page.; +}; + +export default HighlightTimelineAdmin; diff --git a/FrontEnd/src/app/views/admin/UserAdmin.tsx b/FrontEnd/src/app/views/admin/UserAdmin.tsx index c78490d8..37ad2ef7 100644 --- a/FrontEnd/src/app/views/admin/UserAdmin.tsx +++ b/FrontEnd/src/app/views/admin/UserAdmin.tsx @@ -9,7 +9,6 @@ import { } from "react-bootstrap"; import OperationDialog from "../common/OperationDialog"; -import AdminSubPage from "./AdminSubPage"; import { User, AuthUser } from "@/services/user"; import { getHttpUserClient, HttpUser } from "@/http/user"; @@ -266,7 +265,7 @@ const UserAdmin: React.FC = (props) => { }); return ( - + <>