Adapt all Awtis components to new api

This commit is contained in:
2020-12-18 22:13:52 +01:00
parent 81a5ed4ce0
commit a1a9a8a5af
4 changed files with 39 additions and 38 deletions
+9 -9
View File
@@ -14,33 +14,33 @@ import {
import MizikBadjMeni from './mizik-badj-meni' import MizikBadjMeni from './mizik-badj-meni'
export default function AwtisBiyografi({alias, miziks, biyografi, isBioOpen, setIsBioOpen}) { export default function AwtisBiyografi({alias, teks, biyografi, esByografiOuve, meteEsByografiOuve}) {
const handleClose = () => { const handleClose = () => {
setIsBioOpen(false) meteEsByografiOuve(false)
} }
const descriptionElementRef = React.useRef(null) const descriptionElementRef = React.useRef(null)
React.useEffect(() => { React.useEffect(() => {
if (isBioOpen) { if (esByografiOuve) {
const {current: descriptionElement} = descriptionElementRef const {current: descriptionElement} = descriptionElementRef
if (descriptionElement !== null) { if (descriptionElement !== null) {
descriptionElement.focus() descriptionElement.focus()
} }
} }
}, [isBioOpen]) }, [esByografiOuve])
return ( return (
<div> <div>
<Dialog <Dialog
scroll='paper' scroll='paper'
open={isBioOpen} open={esByografiOuve}
aria-labelledby='scroll-dialog-title' aria-labelledby='scroll-dialog-title'
aria-describedby='scroll-dialog-description' aria-describedby='scroll-dialog-description'
onClose={handleClose} onClose={handleClose}
> >
<Box display='flex' justifyContent='center' alignItems='center'> <Box display='flex' justifyContent='center' alignItems='center'>
<DialogTitle id='scroll-dialog-title' align='center'>{alias}</DialogTitle> <DialogTitle id='scroll-dialog-title' align='center'>{alias}</DialogTitle>
<MizikBadjMeni miziks={miziks} /> <MizikBadjMeni teks={teks} />
</Box> </Box>
<DialogContent dividers> <DialogContent dividers>
<DialogContentText <DialogContentText
@@ -72,10 +72,10 @@ export default function AwtisBiyografi({alias, miziks, biyografi, isBioOpen, set
AwtisBiyografi.propTypes = { AwtisBiyografi.propTypes = {
alias: PropTypes.string.isRequired, alias: PropTypes.string.isRequired,
miziks: PropTypes.array.isRequired, teks: PropTypes.array.isRequired,
biyografi: PropTypes.string, biyografi: PropTypes.string,
isBioOpen: PropTypes.bool.isRequired, esByografiOuve: PropTypes.bool.isRequired,
setIsBioOpen: PropTypes.func.isRequired meteEsByografiOuve: PropTypes.func.isRequired
} }
AwtisBiyografi.defaultProps = { AwtisBiyografi.defaultProps = {
+11 -10
View File
@@ -41,9 +41,10 @@ const useStyles = makeStyles(theme => ({
})) }))
export default function AwtisKat({anAwtis}) { export default function AwtisKat({anAwtis}) {
const [isBioOpen, setIsBioOpen] = useState(false) const [esByografiOuve, meteEsByografiOuve] = useState(false)
const noImageUrl = 'https://place-hold.it/140x140?text=Pa%20ni%20imaj'
const {alias, biyografi, miziks, foto} = anAwtis const {alias, biyografi, teks, foto} = anAwtis
const classes = useStyles() const classes = useStyles()
const [expanded, setExpanded] = useState(false) const [expanded, setExpanded] = useState(false)
@@ -52,7 +53,7 @@ export default function AwtisKat({anAwtis}) {
} }
const handleClick = () => { const handleClick = () => {
setIsBioOpen(true) meteEsByografiOuve(true)
} }
return ( return (
@@ -64,7 +65,7 @@ export default function AwtisKat({anAwtis}) {
className={classes.media} className={classes.media}
component='img' component='img'
alt={alias} alt={alias}
image={`${foto.length > 0 ? `${process.env.NEXT_PUBLIC_API_URL}${foto[0].url}` : null}`} image={`${foto.length > 0 ? `${process.env.NEXT_PUBLIC_API_URL}${foto[0].url}` : noImageUrl}`}
title={alias} title={alias}
/> />
<CardContent> <CardContent>
@@ -72,7 +73,7 @@ export default function AwtisKat({anAwtis}) {
{alias} {alias}
</Typography> </Typography>
<Typography align='center' variant='body2' color='textSecondary' component='h5'> <Typography align='center' variant='body2' color='textSecondary' component='h5'>
{anAwtis.miziks.length} tèks {anAwtis.teks.length} tèks
</Typography> </Typography>
</CardContent> </CardContent>
</CardActionArea> </CardActionArea>
@@ -91,18 +92,18 @@ export default function AwtisKat({anAwtis}) {
</CardActions> </CardActions>
<Collapse unmountOnExit in={expanded} timeout='auto'> <Collapse unmountOnExit in={expanded} timeout='auto'>
<CardContent> <CardContent>
<MizikLis miziks={miziks} /> <MizikLis teks={teks} />
</CardContent> </CardContent>
</Collapse> </Collapse>
</Card> </Card>
</Grid> </Grid>
{isBioOpen && ( {esByografiOuve && (
<AwtisBiyografi <AwtisBiyografi
alias={alias} alias={alias}
miziks={miziks} teks={teks}
biyografi={biyografi} biyografi={biyografi}
isBioOpen={isBioOpen} esByografiOuve={esByografiOuve}
setIsBioOpen={setIsBioOpen} meteEsByografiOuve={meteEsByografiOuve}
/> />
)} )}
</> </>
+4 -4
View File
@@ -25,7 +25,7 @@ const useStyles = makeStyles(theme => ({
} }
})) }))
export default function MizikBadjMeni({miziks}) { export default function MizikBadjMeni({teks}) {
const classes = useStyles() const classes = useStyles()
const [open, setOpen] = useState(false) const [open, setOpen] = useState(false)
const anchorRef = useRef(null) const anchorRef = useRef(null)
@@ -76,7 +76,7 @@ export default function MizikBadjMeni({miziks}) {
vertical: 'top', vertical: 'top',
horizontal: 'right' horizontal: 'right'
}} }}
badgeContent={miziks.length} badgeContent={teks.length}
color='primary' color='primary'
> >
<MenuBookIcon style={{fontSize: 30}} /> <MenuBookIcon style={{fontSize: 30}} />
@@ -91,7 +91,7 @@ export default function MizikBadjMeni({miziks}) {
<Paper> <Paper>
<ClickAwayListener onClickAway={handleClose}> <ClickAwayListener onClickAway={handleClose}>
<MenuList autoFocusItem={open} id='menu-list-grow' onKeyDown={handleListKeyDown}> <MenuList autoFocusItem={open} id='menu-list-grow' onKeyDown={handleListKeyDown}>
{miziks.map(m => <MenuItem key={m._id} onClick={() => handleClick(m.slug)}>{m.titre}</MenuItem>)} {teks.map(t => <MenuItem key={t._id} onClick={() => handleClick(t.slug)}>{t.tit}</MenuItem>)}
</MenuList> </MenuList>
</ClickAwayListener> </ClickAwayListener>
</Paper> </Paper>
@@ -103,5 +103,5 @@ export default function MizikBadjMeni({miziks}) {
} }
MizikBadjMeni.propTypes = { MizikBadjMeni.propTypes = {
miziks: PropTypes.array.isRequired teks: PropTypes.array.isRequired
} }
+15 -15
View File
@@ -12,17 +12,17 @@ const useStyles = makeStyles(theme => ({
} }
})) }))
export default function MizikLis({setMobileOpen, hasAwtis, miziks, selectedMizikSlug, setSelectedMizikSlug}) { export default function MizikLis({setMobileOpen, niAwtis, teks, slugTeksChwazi, meteSlugTeksChwazi}) {
const classes = useStyles() const classes = useStyles()
const router = useRouter() const router = useRouter()
const handleClick = slug => { const handleClick = slug => {
if (setSelectedMizikSlug) { if (meteSlugTeksChwazi) {
setSelectedMizikSlug(slug) meteSlugTeksChwazi(slug)
} }
if (slug !== selectedMizikSlug) { if (slug !== slugTeksChwazi) {
if (hasAwtis) { if (niAwtis) {
router.push(`/teks/${slug}`).then(() => window.scrollTo(0, 0)) router.push(`/teks/${slug}`).then(() => window.scrollTo(0, 0))
} else { } else {
router.push(`/teks/${slug}#${slug}`).then(() => window.scrollTo(0, 0)) router.push(`/teks/${slug}#${slug}`).then(() => window.scrollTo(0, 0))
@@ -36,15 +36,15 @@ export default function MizikLis({setMobileOpen, hasAwtis, miziks, selectedMizik
return ( return (
<List component='nav' className={classes.root} aria-label='mizik'> <List component='nav' className={classes.root} aria-label='mizik'>
{miziks.map(({slug, titre, awtis}) => ( {teks.map(({slug, tit, awtis}) => (
<ListItem <ListItem
key={slug} key={slug}
button button
id={slug} id={slug}
selected={selectedMizikSlug === slug} selected={slugTeksChwazi === slug}
onClick={() => handleClick(slug)} onClick={() => handleClick(slug)}
> >
<ListItemText primary={titre} secondary={hasAwtis ? awtis.map(a => a.alias).join() : null} /> <ListItemText primary={tit} secondary={niAwtis ? awtis.map(a => a.alias).join() : null} />
</ListItem> </ListItem>
))} ))}
</List> </List>
@@ -53,15 +53,15 @@ export default function MizikLis({setMobileOpen, hasAwtis, miziks, selectedMizik
MizikLis.propTypes = { MizikLis.propTypes = {
setMobileOpen: PropTypes.func, setMobileOpen: PropTypes.func,
hasAwtis: PropTypes.bool, niAwtis: PropTypes.bool,
miziks: PropTypes.array.isRequired, teks: PropTypes.array.isRequired,
selectedMizikSlug: PropTypes.string, slugTeksChwazi: PropTypes.string,
setSelectedMizikSlug: PropTypes.func meteSlugTeksChwazi: PropTypes.func
} }
MizikLis.defaultProps = { MizikLis.defaultProps = {
setMobileOpen: null, setMobileOpen: null,
hasAwtis: false, niAwtis: false,
selectedMizikSlug: null, slugTeksChwazi: null,
setSelectedMizikSlug: null meteSlugTeksChwazi: null
} }