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} from '../../lib/utils/format' import VweKomante from '../komante/vwe-komante' import EntegreMizik from './entegre-mizik' import OkiMizik from './oki-mizik' import Pataje from './pataje' 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 = anTeks => { const langArray = [] if (anTeks && anTeks.tradiksyon) { const {francais, english, espagnol, deutsch, italiano} = anTeks.tradiksyon if (francais) { langArray.push({title: 'Traduction', flag: 'fr', lang: francais}) } if (english) { langArray.push({title: 'Translation', flag: 'en', lang: english}) } if (espagnol) { langArray.push({title: 'Traducción', flag: 'es', lang: espagnol}) } if (deutsch) { langArray.push({title: 'Übersetzung', flag: 'de', lang: deutsch}) } if (italiano) { langArray.push({title: 'Traduzione', flag: 'it', lang: italiano}) } } 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({anTeks, komante, open, success, error, setSuccess, setError, handleClose}) { const isMobile = useMediaQuery('(max-width:800px)') const langArray = langToArray(anTeks) const awtis = anTeks.awtis.map(({alias}) => alias) return (
{new Intl.ListFormat('fr').format(awtis)} {anTeks.tit} ({anTeks?.lanne}) {anTeks.eksplisit && ( )} {komante && ( )} {anTeks.user && ( texte soumis par {anTeks.user.username} )} {anTeks.userAdmin && !anTeks.user && ( texte soumis par {anTeks.userAdmin} )} {(anTeks.okiMizikID || anTeks.kouteyAchtey.length > 0) && ( )} {anTeks.okiMizikID && ( )} 0 ? 6 : null}>
Transcription {formatJsonString(anTeks.transkripsyon)}
{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} )}
) } Teks.propTypes = { anTeks: PropTypes.object.isRequired, komante: 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 = { komante: null, success: '', error: '' }