|
1 |
| -'use client' |
2 |
| -import { ReactSelect } from '@payloadcms/ui/elements/ReactSelect' |
| 1 | +import type { I18n } from '@payloadcms/translations' |
| 2 | +import type { LanguageOptions } from 'payload/types' |
| 3 | + |
3 | 4 | import { FieldLabel } from '@payloadcms/ui/forms/FieldLabel'
|
4 |
| -import { useTranslation } from '@payloadcms/ui/providers/Translation' |
5 | 5 | import React from 'react'
|
6 | 6 |
|
7 | 7 | import { ToggleTheme } from '../ToggleTheme/index.js'
|
| 8 | +import { LanguageSelector } from './LanguageSelector.js' |
8 | 9 | import './index.scss'
|
9 | 10 |
|
10 | 11 | const baseClass = 'payload-settings'
|
11 | 12 |
|
12 | 13 | export const Settings: React.FC<{
|
13 | 14 | className?: string
|
| 15 | + i18n: I18n |
| 16 | + languageOptions: LanguageOptions |
14 | 17 | }> = (props) => {
|
15 |
| - const { className } = props |
16 |
| - |
17 |
| - const { i18n, languageOptions, switchLanguage, t } = useTranslation() |
| 18 | + const { className, i18n, languageOptions } = props |
18 | 19 |
|
19 | 20 | return (
|
20 | 21 | <div className={[baseClass, className].filter(Boolean).join(' ')}>
|
21 |
| - <h3>{t('general:payloadSettings')}</h3> |
| 22 | + <h3>{i18n.t('general:payloadSettings')}</h3> |
22 | 23 | <div className={`${baseClass}__language`}>
|
23 |
| - <FieldLabel htmlFor="language-select" label={t('general:language')} /> |
24 |
| - <ReactSelect |
25 |
| - inputId="language-select" |
26 |
| - onChange={async ({ value }) => { |
27 |
| - await switchLanguage(value) |
28 |
| - }} |
29 |
| - options={languageOptions} |
30 |
| - value={languageOptions.find((language) => language.value === i18n.language)} |
31 |
| - /> |
| 24 | + <FieldLabel htmlFor="language-select" label={i18n.t('general:language')} /> |
| 25 | + <LanguageSelector languageOptions={languageOptions} /> |
32 | 26 | </div>
|
33 | 27 | <ToggleTheme />
|
34 | 28 | </div>
|
|
0 commit comments