@lifi/widget
Version:
LI.FI Widget for cross-chain bridging and swapping. It will drive your multi-chain strategy and attract new users from everywhere.
32 lines (27 loc) • 1.06 kB
text/typescript
import { useTranslation } from 'react-i18next'
import { useWidgetConfig } from '../providers/WidgetProvider/WidgetProvider.js'
import { useSettings } from '../stores/settings/useSettings.js'
import { useSettingsActions } from '../stores/settings/useSettingsActions.js'
export const useLanguages = () => {
const { t, i18n } = useTranslation()
const { languages } = useWidgetConfig()
const { language } = useSettings(['language'])
const { setValue } = useSettingsActions()
const sortedLanguages = Object.keys(i18n.store.data).sort()
const selectedLanguageCode = sortedLanguages.includes(
language || i18n.resolvedLanguage || ''
)
? language || i18n.resolvedLanguage
: languages?.default || languages?.allow?.[0]
return {
availableLanguages: sortedLanguages,
selectedLanguageCode: selectedLanguageCode,
selectedLanguageDisplayName: t('language.name', {
lng: selectedLanguageCode,
}),
setLanguageWithCode: (code: string) => {
setValue('language', code)
i18n.changeLanguage(code)
},
}
}