"use client" import { useEffect, useState } from "react" import { OrgSettingsSection } from "@/components/admin/settings/org-settings-form" import { AgendaVideoProviderSelectLabel } from "@/components/agenda/agenda-video-provider-select-label" import { useOrgSettingsStore } from "@/lib/admin-settings/org-settings-store" import { AGENDA_VIDEO_PROVIDER_LABELS, AGENDA_VIDEO_PROVIDERS, type AgendaVideoProvider, } from "@/lib/agenda/agenda-settings-types" 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 type { MailThemeMode } from "@/lib/mail-settings/types" const THEME_OPTIONS: { id: MailThemeMode; label: string }[] = [ { id: "light", label: "Clair" }, { id: "dark", label: "Sombre" }, { id: "system", label: "Système" }, ] export function AgendaSection() { const agenda = useOrgSettingsStore((s) => s.agenda) const setAgenda = useOrgSettingsStore((s) => s.setAgenda) const [draft, setDraft] = useState(agenda) useEffect(() => { setDraft(agenda) }, [agenda]) const updateApiKey = (provider: AgendaVideoProvider, value: string) => { setDraft((prev) => ({ ...prev, video_provider_api_keys: { ...prev.video_provider_api_keys, [provider]: value, }, })) } return ( setAgenda(draft)} >

Clés API visioconférence (organisation)

Stockées côté serveur. UltiMeet n'exige pas de clé API.

{(["zoom", "google_meet", "teams", "jitsi"] as AgendaVideoProvider[]).map( (provider) => (
updateApiKey(provider, e.target.value)} />
), )}
) }