import { BooleanSwitchWithLabel, Button, Label, Paper, RadioGroup, RadioGroupItem, TextField, Typography } from "@firecms/ui"; import { useProjectConfig } from "../../hooks"; import { useState } from "react"; import { useSnackbarController, useTranslation } from "@firecms/core"; export function AppCheckSettingsView() { const projectConfig = useProjectConfig(); const snackbarController = useSnackbarController(); const { t } = useTranslation(); const [enabled, setEnabled] = useState(Boolean(projectConfig.appCheck)); const [provider, setProvider] = useState<"recaptcha_v3" | "recaptcha_enterprise" | null>(projectConfig.serializedAppCheck?.provider ?? null); const [siteKey, setSiteKey] = useState(projectConfig.serializedAppCheck?.siteKey ?? null); const saveAppCheck = () => { console.debug("Saving app check", enabled, provider, siteKey); if (enabled && provider && siteKey) { try { projectConfig.updateAppCheck({ provider, siteKey }); snackbarController.open({ message: t("settings_appcheck_updated"), type: "success" }); } catch (e) { snackbarController.open({ message: t("settings_appcheck_error"), type: "error" }); } } else { projectConfig.updateAppCheck(null); } } return
{ e.preventDefault(); saveAppCheck(); }}> {t("settings_appcheck")} {t("settings_appcheck_description")} {t("settings_appcheck_add_domain", { domain: window.location.origin })} { setEnabled(value); }}/>
{ setProvider(value as "recaptcha_v3" | "recaptcha_enterprise") }}> setSiteKey(e.target.value)} disabled={!enabled}/>
{t("settings_appcheck_refresh_note")}
}