import {forwardRef} from 'react' import PropTypes from 'prop-types' import { Box, Grid, Snackbar, Typography, Tooltip, Zoom, useMediaQuery } from '@mui/material' import {styled} from '@mui/material/styles' import MuiAlert from '@mui/material/Alert' import ExplicitIcon from '@mui/icons-material/Explicit' import {formatJsonString, getAlias} from '../../lib/utils/format' import VweKomante from '../komante/vwe-komante' import EntegreMizik from './entegre-mizik' import OkiMizik from './oki-mizik' import Pataje from './pataje' import DiferansDialog from './diferans-dialog' const PREFIX = 'teks' const classes = { root: `${PREFIX}-root`, tooltip: `${PREFIX}-tooltip`, text: `${PREFIX}-text`, gridText: `${PREFIX}-gridText`, grid: `${PREFIX}-grid`, koute: `${PREFIX}-koute`, vwe: `${PREFIX}-vwe`, pataje: `${PREFIX}-pataje` } const Root = styled('div')(( { theme } ) => ({ [`& .${classes.text}`]: { marginBottom: '0.5em' }, [`& .${classes.gridText}`]: { border: '2px solid grey', borderRadius: '5px', marginTop: '2em', padding: '1em' }, [`& .${classes.grid}`]: { marginTop: '1em' }, [`& .${classes.pataje}`]: { position: 'fixed', top: '59px', left: '110px', zIndex: 2, [theme.breakpoints.up('sm')]: { top: '62px', left: '340px' } } })) const langToArray = parole => { const langArray = [] if (parole && parole.traductions) { const {francais, anglais, espagnol, allemand, italien} = parole.traductions if (francais) { langArray.push({title: 'Traduction', flag: 'fr', lang: francais}) } if (anglais) { langArray.push({title: 'Translation', flag: 'en', lang: anglais}) } if (espagnol) { langArray.push({title: 'Traducción', flag: 'es', lang: espagnol}) } if (allemand) { langArray.push({title: 'Übersetzung', flag: 'de', lang: allemand}) } if (italien) { langArray.push({title: 'Traduzione', flag: 'it', lang: italien}) } } return langArray } const alignTeks = (langArray, isMobile) => { if (langArray.length > 0 && !isMobile) { return 'justify' } if (langArray.length > 0 && isMobile) { return 'justify' } if (langArray.length === 0 && isMobile) { return 'justify' } if (langArray.length === 0 && !isMobile) { return 'center' } } const Alert = forwardRef(function Alert(props, ref) { return }) const ExplicitTooltip = Tooltip export default function Teks({parole, paroleId, commentaires, open, success, error, setSuccess, setError, handleClose}) { const isMobile = useMediaQuery('(max-width:800px)') const langArray = langToArray(parole) const aliases = getAlias(parole.artistes, parole.prioriteArtistes) return (
{aliases} {parole.titre} ({parole?.annee}) {parole.explicite && ( )} {parole?.user?.data && ( parole soumise par {parole.user.data.attributes.username} )} {parole?.userAdmin?.data && !parole.user.data && ( parole soumise par {parole.userAdmin.data.attributes.firstname} )} {(parole.okiMizikID || parole.streamAudio.length > 0) && ( )} {parole.okiMizikID && ( )} {parole?.difference?.length > 0 && ( )} 0 ? 6 : null}>
Transcription {formatJsonString(parole.transcription)}
{langArray.map(({title, flag, lang}) => (
{flag === 'fr' && ( 🇫🇷 )} {flag === 'en' && ( 🇬🇧 )} {flag === 'es' && ( 🇪🇸 )} {flag === 'de' && ( 🇩🇪 )} {flag === 'it' && ( 🇮🇹 )} {title} {formatJsonString(lang)}
))}
{success && ( {success} )} {error && ( Une erreur s’est produite : {error.message} )} {commentaires && ( )}
) } Teks.propTypes = { parole: PropTypes.object.isRequired, paroleId: PropTypes.number.isRequired, commentaires: PropTypes.array, open: PropTypes.bool.isRequired, success: PropTypes.string, error: PropTypes.string, setSuccess: PropTypes.func.isRequired, setError: PropTypes.func.isRequired, handleClose: PropTypes.func.isRequired } Teks.defaultProps = { commentaires: null, success: '', error: '' }