This commit is contained in:
Max Lynch
2021-01-25 10:58:25 -06:00
parent bb75ec7208
commit 045fcca6a9
3 changed files with 60 additions and 12 deletions
+4 -2
View File
@@ -1,4 +1,4 @@
import { IonApp, IonRouterOutlet } from '@ionic/react'; import { IonApp, IonRouterOutlet, IonSplitPane } from '@ionic/react';
import { IonReactRouter } from '@ionic/react-router'; import { IonReactRouter } from '@ionic/react-router';
import { Redirect, Route } from 'react-router-dom'; import { Redirect, Route } from 'react-router-dom';
@@ -6,15 +6,17 @@ import Menu from './Menu';
import Tabs from './pages/Tabs'; import Tabs from './pages/Tabs';
const AppShell = ({ page, pageProps }) => { const AppShell = () => {
return ( return (
<IonApp> <IonApp>
<IonReactRouter> <IonReactRouter>
<IonSplitPane contentId="main">
<Menu /> <Menu />
<IonRouterOutlet id="main"> <IonRouterOutlet id="main">
<Route path="/tabs" render={() => <Tabs />} /> <Route path="/tabs" render={() => <Tabs />} />
<Route exact path="/" render={() => <Redirect to="/tabs" />} /> <Route exact path="/" render={() => <Redirect to="/tabs" />} />
</IonRouterOutlet> </IonRouterOutlet>
</IonSplitPane>
</IonReactRouter> </IonReactRouter>
</IonApp> </IonApp>
); );
+49 -3
View File
@@ -1,10 +1,45 @@
import { Plugins, StatusBarStyle } from '@capacitor/core'; import { Plugins, StatusBarStyle } from '@capacitor/core';
import { IonContent, IonHeader, IonMenu, IonTitle, IonToolbar } from '@ionic/react'; import {
import { useEffect, useState } from 'react'; IonContent,
IonHeader,
IonIcon,
IonItem,
IonLabel,
IonList,
IonMenu,
IonMenuToggle,
IonRouterContext,
IonTitle,
IonToolbar,
} from '@ionic/react';
import { useContext, useEffect, useState } from 'react';
import { cog, flash, list } from 'ionicons/icons';
import { useHistory, useLocation } from 'react-router-dom';
const pages = [
{
title: 'Feed',
icon: flash,
url: '/tabs/feed',
},
{
title: 'Lists',
icon: list,
url: '/tabs/lists',
},
{
title: 'Settings',
icon: cog,
url: '/tabs/settings',
},
];
const Menu = () => { const Menu = () => {
const { StatusBar } = Plugins; const { StatusBar } = Plugins;
const ionRouterContext = useContext(IonRouterContext);
const location = useLocation();
const [isDark, setIsDark] = useState(false); const [isDark, setIsDark] = useState(false);
const handleOpen = async () => { const handleOpen = async () => {
@@ -33,7 +68,18 @@ const Menu = () => {
<IonTitle>Menu</IonTitle> <IonTitle>Menu</IonTitle>
</IonToolbar> </IonToolbar>
</IonHeader> </IonHeader>
<IonContent></IonContent> <IonContent>
<IonList>
{pages.map(p => (
<IonMenuToggle autoHide={false}>
<IonItem routerLink={p.url} routerDirection="none" detail={false} lines="none">
<IonIcon icon={p.icon} slot="start" />
<IonLabel>{p.title}</IonLabel>
</IonItem>
</IonMenuToggle>
))}
</IonList>
</IonContent>
</IonMenu> </IonMenu>
); );
}; };
+2 -2
View File
@@ -22,8 +22,8 @@ const AllLists = ({ onSelect }) => {
return ( return (
<> <>
{lists.map(list => ( {lists.map((list, i) => (
<ListEntry list={list} /> <ListEntry list={list} key={i} />
))} ))}
</> </>
); );