"use client" import { OrgSettingsSection } from "@/components/admin/settings/org-settings-form" import { AdminSettingsCard } from "@/components/admin/settings/admin-settings-card" import { DeployLockedHint, useDeployFieldLocked } from "@/components/admin/settings/deploy-locked-hint" import { FieldGroup } from "@/components/admin/settings/field-group" import { AutomationTabMasonry } from "@/components/gmail/settings/automation/automation-tab-masonry" import { WebSearchProvidersEditor } from "@/components/web-search/web-search-providers-editor" import { useOrgSettingsStore } from "@/lib/admin-settings/org-settings-store" import { Input } from "@/components/ui/input" import { Label } from "@/components/ui/label" import { Switch } from "@/components/ui/switch" import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue, } from "@/components/ui/select" import { normalizeSearchProviders } from "@/lib/web-search/search-provider-catalog" import { TechBrandSelectLabel } from "@/components/admin/settings/tech-brand-select-label" export function SearchSection() { const search = useOrgSettingsStore((s) => s.search) const setSearch = useOrgSettingsStore((s) => s.setSearch) const effective = useOrgSettingsStore((s) => s.meta?.effective.search) const providerSecrets = useOrgSettingsStore((s) => s.meta?.secrets?.web_search_providers) const webSearch = normalizeSearchProviders(search.web_search) const engineLocked = useDeployFieldLocked("search", "suite_engine") const meiliURLLocked = useDeployFieldLocked("search", "meilisearch_url") const meiliKeyLocked = useDeployFieldLocked("search", "meilisearch_api_key") const typesenseURLLocked = useDeployFieldLocked("search", "typesense_url") const typesenseKeyLocked = useDeployFieldLocked("search", "typesense_api_key") const suiteEngine = engineLocked ? ((effective?.suite_engine as typeof search.suite_engine) ?? search.suite_engine) : search.suite_engine const meiliURL = meiliURLLocked ? (effective?.meilisearch_url ?? search.meilisearch_url) : search.meilisearch_url const typesenseURL = typesenseURLLocked ? (effective?.typesense_url ?? search.typesense_url) : search.typesense_url return ( Fournisseurs pour l'enrichissement IA contacts et le tool UltiAI{" "} web_search. Les utilisateurs peuvent surcharger cette config dans leurs réglages si l'imposition org. est désactivée. } > setSearch({ web_search })} providerSecrets={providerSecrets} columns={1} /> : null} > {suiteEngine === "meilisearch" ? (
setSearch({ meilisearch_url: e.target.value })} /> {meiliURLLocked ? ( ) : null} setSearch({ meilisearch_api_key: e.target.value })} placeholder={meiliKeyLocked ? "Défini via MEILISEARCH_API_KEY" : undefined} /> {meiliKeyLocked ? ( ) : null}
) : null} {suiteEngine === "typesense" ? (
setSearch({ typesense_url: e.target.value })} /> {typesenseURLLocked ? ( ) : null} setSearch({ typesense_api_key: e.target.value })} placeholder={typesenseKeyLocked ? "Défini via TYPESENSE_API_KEY" : undefined} /> {typesenseKeyLocked ? ( ) : null}
) : null}
) }