"use client" import { OrgSettingsSection } from "@/components/admin/settings/org-settings-form" import { SettingsCard, SettingsField, SettingsGrid, SettingsToggleRow, } from "@/components/settings/settings-kit" import { DeployLockedHint, useDeployFieldLocked } from "@/components/admin/settings/deploy-locked-hint" 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 { 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({ enforce_org_search })} /> setSearch({ web_search })} providerSecrets={providerSecrets} columns={1} /> : null} > {suiteEngine === "meilisearch" ? ( ) : undefined } > setSearch({ meilisearch_url: e.target.value })} /> ) : undefined } > setSearch({ meilisearch_api_key: e.target.value })} placeholder={meiliKeyLocked ? "Défini via MEILISEARCH_API_KEY" : undefined} /> ) : null} {suiteEngine === "typesense" ? ( ) : undefined } > setSearch({ typesense_url: e.target.value })} /> ) : undefined } > setSearch({ typesense_api_key: e.target.value })} placeholder={typesenseKeyLocked ? "Défini via TYPESENSE_API_KEY" : undefined} /> ) : null} ) }