import React from 'react'; import { FunctionComponent } from 'react'; import { useDialogContext, useDialogDispatch, } from './TranslationDialogContextProvider'; import { styled } from '@mui/material/styles'; import TextField from '@mui/material/TextField'; import { keyframes } from '@mui/styled-engine'; import { ScFieldTitle } from '../common/FieldTitle'; import { isLanguagePermitted } from '../tools/isLanguagePermitted'; const inputLoading = keyframes` 0% { background-position: 0%; } 100% { background-position: 100%; } `; const ScTextField = styled(TextField)` margin: 0px; & .Mui-disabled { background: ${({ theme }) => theme.palette.grey[200]}; } `; const LoadingTextArea = styled('div')` margin-top: 10px; padding: 5px; border: 1px solid #ccc; width: 100%; border-radius: 5px; font-style: inherit; font-family: inherit; box-sizing: border-box; display: block; height: 42px; background: linear-gradient( 90deg, rgba(0, 0, 0, 0), rgba(0, 0, 0, 0), rgba(0, 0, 0, 0.1), rgba(0, 0, 0, 0), rgba(0, 0, 0, 0) ); background-size: 500% 500%; animation: ${inputLoading} 1.5s linear infinite alternate; `; export const TranslationFields: FunctionComponent = () => { const dispatch = useDialogDispatch(); const selectedLanguages = useDialogContext((c) => c.selectedLanguages); const availableLanguages = useDialogContext((c) => c.availableLanguages); const translationsForm = useDialogContext((c) => c.translationsForm); const formDisabled = useDialogContext((c) => c.formDisabled); const loading = useDialogContext((c) => c.loading); const properties = useDialogContext((c) => c.dependencies.properties); const onChange = (key: string) => (e: any) => { dispatch({ type: 'ON_INPUT_CHANGE', payload: { key, value: e.target.value }, }); }; const Loading = () => ( <> {selectedLanguages ? ( [...selectedLanguages].map((lang) => ) ) : ( )} ); return ( <> {loading ? ( ) : ( [...selectedLanguages].map((key) => { const lang = availableLanguages?.find((l) => l.tag === key); const languagePermitted = isLanguagePermitted( key, properties.permittedLanguageIds, availableLanguages ); return ( {lang?.name || key} ); }) )} ); };