Migrate to lingui
Switch to "lingui" for better DX. Tried to persist existing languages as much as possible. Removed "vite-plugin-node-polyfills" because it's incompatible with "lingui"
This commit is contained in:
@@ -8,28 +8,20 @@
|
||||
|
||||
import Stack from '@mui/material/Stack';
|
||||
import Typography from '@mui/material/Typography';
|
||||
import { Trans, useTranslation } from 'react-i18next';
|
||||
|
||||
import { TranslationKey } from '@/base/Base.types.ts';
|
||||
interface SuperscriptProps {
|
||||
superscript: string;
|
||||
text: string;
|
||||
}
|
||||
|
||||
/**
|
||||
* Expects a translation key of format "{{value}}<0>superscript</0>"
|
||||
* @param i18nKey
|
||||
* @param value
|
||||
* @constructor
|
||||
* Displays a text with a superscript portion.
|
||||
*/
|
||||
export const Superscript = ({ i18nKey, value }: { i18nKey: TranslationKey; value: string }) => {
|
||||
const { t } = useTranslation();
|
||||
|
||||
return (
|
||||
<Stack sx={{ flexDirection: 'row', gap: 0.25 }}>
|
||||
<Trans
|
||||
t={t}
|
||||
// the type of "key" causes tsc error: "TS2590: Expression produces a union type that is too complex to represent"
|
||||
i18nKey={i18nKey as any}
|
||||
values={{ value }}
|
||||
components={[<Typography variant="caption" sx={{ fontSize: 'x-small', opacity: 0.75 }} />]}
|
||||
/>
|
||||
</Stack>
|
||||
);
|
||||
};
|
||||
export const Superscript = ({ superscript, text }: SuperscriptProps) => (
|
||||
<Stack sx={{ flexDirection: 'row', gap: 0.25 }}>
|
||||
{text}
|
||||
<Typography variant="caption" sx={{ fontSize: 'x-small', opacity: 0.75 }}>
|
||||
{superscript}
|
||||
</Typography>
|
||||
</Stack>
|
||||
);
|
||||
|
||||
Reference in New Issue
Block a user