Files

142 lines
3.5 KiB
JavaScript
Raw Permalink Normal View History

2021-09-21 21:28:04 +02:00
import {useState} from 'react'
2022-01-19 06:35:04 +04:00
import {styled} from '@mui/material/styles'
2021-05-27 23:53:06 +02:00
import PropTypes from 'prop-types'
2022-01-19 07:06:26 +04:00
import {MenuItem, Menu, Button} from '@mui/material'
2021-05-27 23:53:06 +02:00
import {uniq} from 'lodash'
import OtomatikSwitch from './otomatik-switch'
2022-01-19 06:35:04 +04:00
const PREFIX = 'AjouteTradiksyon'
const classes = {
paper: `${PREFIX}-paper`,
root: `${PREFIX}-root`
}
const Root = styled('div')((
{
theme
2021-05-27 23:53:06 +02:00
}
2022-01-19 06:35:04 +04:00
) => ({
[`& .${classes.paper}`]: {
border: '1px solid #d3d4d5'
},
2021-05-27 23:53:06 +02:00
2022-01-19 06:35:04 +04:00
[`& .${classes.root}`]: {
2021-05-27 23:53:06 +02:00
'&:focus': {
backgroundColor: theme.palette.primary.main,
'& .MuiListItemIcon-root, & .MuiListItemText-primary': {
color: theme.palette.common.white
}
}
}
2022-01-19 06:35:04 +04:00
}))
function StyledMenu(props) {
return (
<Menu
elevation={0}
anchorOrigin={{
vertical: 'top',
horizontal: 'center'
}}
transformOrigin={{
vertical: 'bottom',
horizontal: 'center'
}}
{...props}
/>
)
}
const StyledMenuItem = MenuItem
2021-05-27 23:53:06 +02:00
2022-03-27 04:51:37 +04:00
function AjouteTradiksyon({showSwitch, disableSwitch, tradiksyonOtomatik, setTradiksyonOtomatik, chwaLang, setChwaLang}) {
2021-05-27 23:53:06 +02:00
const [anchorElement, setAnchorElement] = useState(null)
const handleClick = event => {
setAnchorElement(event.currentTarget)
}
const handleClose = event => {
setAnchorElement(null)
const chwaInik = uniq([...chwaLang, event.currentTarget.id])
setChwaLang(chwaInik.filter(c => c !== ''))
}
return (
<>
2022-03-27 04:51:37 +04:00
{showSwitch && (
2022-05-20 02:21:01 +04:00
<OtomatikSwitch tradiksyonOtomatik={tradiksyonOtomatik} setTradiksyonOtomatik={setTradiksyonOtomatik} disabled={disableSwitch} />
)}
<Root style={{textAlign: 'center', marginTop: 20}}>
<Button
aria-controls='lang-menu'
variant='outlined'
aria-haspopup='true'
onClick={handleClick}
>
Ajouter une traduction <br /> 🇫🇷 🇬🇧 🇪🇸 🇩🇪 🇮🇹
</Button>
<StyledMenu
keepMounted
id='lang-menu'
anchorEl={anchorElement}
open={Boolean(anchorElement)}
2022-03-22 07:12:41 +04:00
classes={{
paper: classes.paper
2022-03-22 07:12:41 +04:00
}}
onClose={handleClose}
>
<StyledMenuItem
id='fr'
classes={{
root: classes.root
}}
onClick={handleClose}
>🇫🇷 Français</StyledMenuItem>
<StyledMenuItem
id='en'
classes={{
root: classes.root
}}
onClick={handleClose}
2022-05-20 02:21:01 +04:00
>🇬🇧 Anglais</StyledMenuItem>
<StyledMenuItem
id='es'
classes={{
root: classes.root
}}
onClick={handleClose}
2022-05-20 02:21:01 +04:00
>🇪🇸 Espagnol</StyledMenuItem>
<StyledMenuItem
id='de'
classes={{
root: classes.root
}}
onClick={handleClose}
2022-05-20 02:21:01 +04:00
>🇩🇪 Allemand</StyledMenuItem>
<StyledMenuItem
id='it'
classes={{
root: classes.root
}}
onClick={handleClose}
2022-05-20 02:21:01 +04:00
>🇮🇹 Italien</StyledMenuItem>
</StyledMenu>
</Root>
</>
2021-05-27 23:53:06 +02:00
)
}
AjouteTradiksyon.propTypes = {
2022-03-27 04:51:37 +04:00
showSwitch: PropTypes.bool.isRequired,
disableSwitch: PropTypes.bool.isRequired,
tradiksyonOtomatik: PropTypes.bool.isRequired,
setTradiksyonOtomatik: PropTypes.func.isRequired,
2021-05-27 23:53:06 +02:00
chwaLang: PropTypes.array.isRequired,
setChwaLang: PropTypes.func.isRequired
}
export default AjouteTradiksyon