/
types.ts
33 lines (29 loc) · 870 Bytes
/
types.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
import type { DetailedHTMLProps, HTMLAttributes } from 'react'
export type Sheet<T extends string | number | symbol = string> = {
[key in T]: string
}
export type Sheets<T extends Sheet> = { [key in Language]?: Sheet<keyof T> }
export type Replacement = string | number | JSX.Element
// https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes
export enum Language {
en = 'en',
es = 'es',
zh = 'zh',
de = 'de',
fr = 'fr',
it = 'it',
hi = 'hi',
ja = 'ja',
ko = 'ko',
pt = 'pt',
ru = 'ru',
ar = 'ar',
bn = 'bn',
vi = 'vi',
tr = 'tr',
fa = 'fa',
}
export type Languages = keyof typeof Language
export type TextProps = DetailedHTMLProps<HTMLAttributes<HTMLSpanElement>, HTMLSpanElement> &
DetailedHTMLProps<HTMLAttributes<HTMLParagraphElement>, HTMLParagraphElement> &
DetailedHTMLProps<HTMLAttributes<HTMLDivElement>, HTMLDivElement>