feat: Add Footer to every page with nav (#1009)

* Add Footer to AuthAndNav, rename

* Fix in preferences layout

* Remove double footer
This commit is contained in:
Presley Pizzo
2022-04-14 13:58:53 -04:00
committed by GitHub
parent 82275a81c7
commit 76f8ff9f21
8 changed files with 38 additions and 36 deletions

View File

@ -1,6 +1,7 @@
import React from "react"
import { Route, Routes } from "react-router-dom"
import { AuthAndNav, RequireAuth } from "./components"
import { RequireAuth } from "./components"
import { AuthAndFrame } from "./components/AuthAndFrame/AuthAndFrame"
import { PreferencesLayout } from "./components/Preferences/Layout"
import { IndexPage } from "./pages"
import { NotFoundPage } from "./pages/404"
@ -39,18 +40,18 @@ export const AppRouter: React.FC = () => (
<Route
index
element={
<AuthAndNav>
<AuthAndFrame>
<TemplatesPage />
</AuthAndNav>
</AuthAndFrame>
}
/>
<Route path=":organization/:template">
<Route
index
element={
<AuthAndNav>
<AuthAndFrame>
<TemplatePage />
</AuthAndNav>
</AuthAndFrame>
}
/>
<Route
@ -68,9 +69,9 @@ export const AppRouter: React.FC = () => (
<Route
path=":workspace"
element={
<AuthAndNav>
<AuthAndFrame>
<WorkspacePage />
</AuthAndNav>
</AuthAndFrame>
}
/>
</Route>
@ -78,25 +79,25 @@ export const AppRouter: React.FC = () => (
<Route
path="users"
element={
<AuthAndNav>
<AuthAndFrame>
<UsersPage />
</AuthAndNav>
</AuthAndFrame>
}
/>
<Route
path="orgs"
element={
<AuthAndNav>
<AuthAndFrame>
<OrganizationsPage />
</AuthAndNav>
</AuthAndFrame>
}
/>
<Route
path="settings"
element={
<AuthAndNav>
<AuthAndFrame>
<SettingsPage />
</AuthAndNav>
</AuthAndFrame>
}
/>

View File

@ -0,0 +1,21 @@
import React from "react"
import { Navbar } from "../Navbar"
import { Footer } from "../Page/Footer"
import { RequireAuth } from "../Page/RequireAuth"
interface AuthAndFrameProps {
children: JSX.Element
}
/**
* Wraps page in RequireAuth and renders it between Navbar and Footer
*/
export const AuthAndFrame: React.FC<AuthAndFrameProps> = ({ children }) => (
<RequireAuth>
<>
<Navbar />
{children}
<Footer />
</>
</RequireAuth>
)

View File

@ -1,12 +0,0 @@
import React from "react"
import { Navbar } from "../Navbar"
import { RequireAuth, RequireAuthProps } from "./RequireAuth"
export const AuthAndNav: React.FC<RequireAuthProps> = ({ children }) => (
<RequireAuth>
<>
<Navbar />
{children}
</>
</RequireAuth>
)

View File

@ -1,3 +1,2 @@
export * from "./AuthAndNav"
export * from "./Footer"
export * from "./RequireAuth"

View File

@ -1,7 +1,7 @@
import Box from "@material-ui/core/Box"
import React from "react"
import { Outlet } from "react-router-dom"
import { AuthAndNav } from "../Page"
import { AuthAndFrame } from "../AuthAndFrame/AuthAndFrame"
import { TabPanel } from "../TabPanel"
export const Language = {
@ -21,7 +21,7 @@ const menuItems = [
export const PreferencesLayout: React.FC = () => {
return (
<AuthAndNav>
<AuthAndFrame>
<Box display="flex" flexDirection="column">
<Box style={{ maxWidth: "1380px", margin: "1em auto" }}>
<TabPanel title={Language.preferencesLabel} menuItems={menuItems}>
@ -29,6 +29,6 @@ export const PreferencesLayout: React.FC = () => {
</TabPanel>
</Box>
</Box>
</AuthAndNav>
</AuthAndFrame>
)
}

View File

@ -8,7 +8,6 @@ import { EmptyState } from "../../../../components/EmptyState"
import { ErrorSummary } from "../../../../components/ErrorSummary"
import { Header } from "../../../../components/Header"
import { FullScreenLoader } from "../../../../components/Loader/FullScreenLoader"
import { Footer } from "../../../../components/Page"
import { Column, Table } from "../../../../components/Table"
import { unsafeSWRArgument } from "../../../../util"
import { firstOrItem } from "../../../../util/array"
@ -98,7 +97,6 @@ export const TemplatePage: React.FC = () => {
<Paper style={{ maxWidth: "1380px", margin: "1em auto", width: "100%" }}>
<Table {...tableProps} />
</Paper>
<Footer />
</div>
)
}

View File

@ -9,7 +9,6 @@ import { CodeExample } from "../../components/CodeExample/CodeExample"
import { ErrorSummary } from "../../components/ErrorSummary"
import { Header } from "../../components/Header"
import { FullScreenLoader } from "../../components/Loader/FullScreenLoader"
import { Footer } from "../../components/Page"
import { Column, Table } from "../../components/Table"
export const TemplatesPage: React.FC = () => {
@ -74,7 +73,6 @@ export const TemplatesPage: React.FC = () => {
<Paper style={{ maxWidth: "1380px", margin: "1em auto", width: "100%" }}>
<Table {...tableProps} />
</Paper>
<Footer />
</div>
)
}

View File

@ -5,7 +5,6 @@ import useSWR from "swr"
import * as Types from "../../api/types"
import { ErrorSummary } from "../../components/ErrorSummary"
import { FullScreenLoader } from "../../components/Loader/FullScreenLoader"
import { Footer } from "../../components/Page"
import { Workspace } from "../../components/Workspace"
import { unsafeSWRArgument } from "../../util"
import { firstOrItem } from "../../util/array"
@ -50,8 +49,6 @@ export const WorkspacePage: React.FC = () => {
<div className={styles.inner}>
<Workspace organization={organization} template={template} workspace={workspace} />
</div>
<Footer />
</div>
)
}