Make '/teks' dymamic & add Drawer components

This commit is contained in:
2020-12-13 23:20:07 +01:00
parent bdff3dae6a
commit 5b9a11a730
8 changed files with 422 additions and 34 deletions
+43 -9
View File
@@ -1,10 +1,8 @@
import React from 'react'
import PropTypes from 'prop-types'
import {useRouter} from 'next/router'
import {makeStyles} from '@material-ui/core/styles'
import List from '@material-ui/core/List'
import ListItem from '@material-ui/core/ListItem'
import ListItemText from '@material-ui/core/ListItemText'
import {List, ListItem, ListItemText} from '@material-ui/core'
const useStyles = makeStyles(theme => ({
root: {
@@ -14,14 +12,39 @@ const useStyles = makeStyles(theme => ({
}
}))
export default function MizikLis({miziks}) {
export default function MizikLis({setMobileOpen, hasAwtis, miziks, selectedMizikSlug, setSelectedMizikSlug}) {
const classes = useStyles()
const router = useRouter()
const handleClick = slug => {
if (setSelectedMizikSlug) {
setSelectedMizikSlug(slug)
}
if (slug !== selectedMizikSlug) {
if (hasAwtis) {
router.push(`/teks/${slug}`)
} else {
router.push(`/teks/${slug}#${slug}`)
}
}
if (setMobileOpen) {
setMobileOpen(false)
}
}
return (
<List component='nav' className={classes.root} aria-label='mizik'>
{miziks.map(m => (
<ListItem key={m._id} button>
<ListItemText primary={m.titre} />
{miziks.map(({slug, titre, awtis}) => (
<ListItem
key={slug}
button
id={slug}
selected={selectedMizikSlug === slug}
onClick={() => handleClick(slug)}
>
<ListItemText primary={titre} secondary={hasAwtis ? awtis.map(a => a.alias).join() : null} />
</ListItem>
))}
</List>
@@ -29,5 +52,16 @@ export default function MizikLis({miziks}) {
}
MizikLis.propTypes = {
miziks: PropTypes.array.isRequired
setMobileOpen: PropTypes.func,
hasAwtis: PropTypes.bool,
miziks: PropTypes.array.isRequired,
selectedMizikSlug: PropTypes.string,
setSelectedMizikSlug: PropTypes.func
}
MizikLis.defaultProps = {
setMobileOpen: null,
hasAwtis: false,
selectedMizikSlug: null,
setSelectedMizikSlug: null
}