Menu
This commit is contained in:
@@ -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
@@ -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>
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -22,8 +22,8 @@ const AllLists = ({ onSelect }) => {
|
|||||||
|
|
||||||
return (
|
return (
|
||||||
<>
|
<>
|
||||||
{lists.map(list => (
|
{lists.map((list, i) => (
|
||||||
<ListEntry list={list} />
|
<ListEntry list={list} key={i} />
|
||||||
))}
|
))}
|
||||||
</>
|
</>
|
||||||
);
|
);
|
||||||
|
|||||||
Reference in New Issue
Block a user