Reckless_Satoshi 6b2dedce13 Add Tradebox, OrderDetails, Notifications, OrderPage functional components. (#315)
* Re-init new tradebox

* Wip progress on OrderDetails

* Wip 2 OrderDetails

* Fix multiple requests on load

* Add functional Order page

* Fixes order page

* Fix delete storage

* Fix order page style

* Add Public order prompt

* Add paused order prompt

* Add expired prompt

* Create statusToContract logics

* Move fetch order loop to Main

* Add payout and wait prompts

* Fix order fetch on badOrder

* Fix styles

* Add chat and dispute prompts

* Add remaining prompts

* Fix style

* Add notifications component

* Fix take order style, add more notifications

* Add page title notification

* Add more notifications and small tradebox fixes

* Small fixes

* Small fixes to routing failure prompt

* Remove old trade box

* Add bad take order
2022-11-21 12:56:29 +00:00

72 lines
2.3 KiB
TypeScript

import React from 'react';
import { useTranslation } from 'react-i18next';
import { Select, MenuItem, useTheme, Grid, Typography } from '@mui/material';
import Language from '../../models/Language.model';
import Flags from 'country-flag-icons/react/3x2';
import { CataloniaFlag, BasqueCountryFlag } from '../Icons';
const menuLanuguages = [
{ name: 'English', i18nCode: 'en', flag: Flags.US },
{ name: 'Español', i18nCode: 'es', flag: Flags.ES },
{ name: 'Deutsch', i18nCode: 'de', flag: Flags.DE },
{ name: 'Polski', i18nCode: 'pl', flag: Flags.PL },
{ name: 'Français', i18nCode: 'fr', flag: Flags.FR },
{ name: 'Русский', i18nCode: 'ru', flag: Flags.RU },
{ name: 'Italiano', i18nCode: 'it', flag: Flags.IT },
{ name: 'Português', i18nCode: 'pt', flag: Flags.BR },
{ name: '简体', i18nCode: 'zh-si', flag: Flags.CN },
{ name: '繁體', i18nCode: 'zh-tr', flag: Flags.CN },
{ name: 'Svenska', i18nCode: 'sv', flag: Flags.SE },
{ name: 'Čeština', i18nCode: 'cs', flag: Flags.CZ },
{ name: 'ภาษาไทย', i18nCode: 'th', flag: Flags.TH },
{ name: 'Català', i18nCode: 'ca', flag: CataloniaFlag },
{ name: 'Euskara', i18nCode: 'eu', flag: BasqueCountryFlag },
];
interface SelectLanguageProps {
language: Language;
setLanguage: (lang: Language) => void;
}
const SelectLanguage = ({ language, setLanguage }: SelectLanguageProps): JSX.Element => {
const theme = useTheme();
const { t, i18n } = useTranslation();
const flagProps = {
width: 1.5 * theme.typography.fontSize,
height: 1.5 * theme.typography.fontSize,
};
const handleChangeLang = function (e: any) {
setLanguage(e.target.value);
i18n.changeLanguage(e.target.value);
};
return (
<Select
fullWidth={true}
value={language}
inputProps={{
style: { textAlign: 'center' },
}}
onChange={handleChangeLang}
>
{menuLanuguages.map((language, index) => (
<MenuItem key={index} value={language.i18nCode}>
<Grid container>
<Grid item style={{ width: '1.9em', position: 'relative', top: '0.15em' }}>
<language.flag {...flagProps} />
</Grid>
<Grid item>
<Typography variant='inherit'>{language.name}</Typography>
</Grid>
</Grid>
</MenuItem>
))}
</Select>
);
};
export default SelectLanguage;