import {FormSelect, Select} from '@common/ui/forms/select/select'; import {SettingsPanel} from '../../settings-panel'; import {Trans} from '@common/i18n/trans'; import {useFormContext} from 'react-hook-form'; import {AdminSettingsWithFiles} from '@common/admin/settings/requests/update-admin-settings'; import {Item} from '@common/ui/forms/listbox/item'; import {SectionHelper} from '@common/ui/section-helper'; import {SettingsErrorGroup} from '@common/admin/settings/settings-error-group'; import {Fragment, useState} from 'react'; import {FormTextField} from '@common/ui/forms/input-field/text-field/text-field'; import {useSearchModels} from '@common/admin/settings/pages/search-settings/requests/use-search-models'; import {Button} from '@common/ui/buttons/button'; import {useImportSearchModels} from '@common/admin/settings/pages/search-settings/requests/use-import-search-models'; export function SearchSettings() { return ( } description={ } > ); } function SearchMethodSelect() { const {watch} = useFormContext(); const selectedMethod = watch('server.scout_driver'); return ( {isInvalid => ( } description={ } > Mysql Meilisearch TNTSearch Elasticsearch Algolia {selectedMethod === 'mysql' && } {selectedMethod === 'meilisearch' && } {selectedMethod === 'algolia' && } {selectedMethod === 'Matchish\\ScoutElasticSearch\\Engines\\ElasticSearchEngine' && ( )} )} ); } function MysqlFields() { const {clearErrors} = useFormContext(); return ( } onSelectionChange={() => { clearErrors(); }} > ); } function MeilisearchFields() { return ( } description={ ( {parts} ), }} /> } /> ); } function ElasticsearchField() { return ( } description={ ( {parts} ), }} /> } /> ); } function AlgoliaFields() { return ( } required /> } required /> ); } function ImportRecordsPanel() { const {getValues} = useFormContext(); const {data} = useSearchModels(); const importModels = useImportSearchModels(); const [selectedModel, setSelectedModel] = useState('*'); return ( } description={

} actions={
} /> ); }