settings-spell-check-language.tsx 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. import { useMemo } from 'react'
  2. import { useTranslation } from 'react-i18next'
  3. import getMeta from '../../../../utils/meta'
  4. import { useProjectSettingsContext } from '../../context/project-settings-context'
  5. import SettingsMenuSelect from './settings-menu-select'
  6. import type { Optgroup } from './settings-menu-select'
  7. import type { SpellCheckLanguage } from '../../../../../../types/project-settings'
  8. export default function SettingsSpellCheckLanguage() {
  9. const { t } = useTranslation()
  10. const languages = getMeta('ol-languages') as SpellCheckLanguage[] | undefined
  11. const { spellCheckLanguage, setSpellCheckLanguage } =
  12. useProjectSettingsContext()
  13. const optgroup: Optgroup = useMemo(
  14. () => ({
  15. label: 'Language',
  16. options:
  17. languages?.map(language => ({
  18. value: language.code,
  19. label: language.name,
  20. })) ?? [],
  21. }),
  22. [languages]
  23. )
  24. return (
  25. <SettingsMenuSelect
  26. onChange={setSpellCheckLanguage}
  27. value={spellCheckLanguage}
  28. options={[{ value: '', label: t('off') }]}
  29. optgroup={optgroup}
  30. label={t('spell_check')}
  31. name="spellCheckLanguage"
  32. />
  33. )
  34. }