"use client"; import { useMemo } from "react"; import type { Dispatch, SetStateAction } from "react"; import type { RegisterOptions, UseFormReturn } from "react-hook-form"; import { useLocale } from "@calcom/lib/hooks/useLocale"; import { Avatar } from "@calcom/ui/components/avatar"; import { Label, Switch, TextArea, TextField } from "@calcom/ui/components/form"; import { ImageUploader } from "@calcom/ui/components/image-uploader"; import { InfoIcon, KeyIcon } from "@coss/ui/icons"; import { Tooltip } from "@calcom/ui/components/tooltip"; import type { OAuthClientCreateFormValues } from "../create/OAuthClientCreateModal"; export const OAuthClientFormFields = ({ form, logo, setLogo, isClientReadOnly, isPkceLocked, }: { form: UseFormReturn; logo: string; setLogo: Dispatch>; isClientReadOnly?: boolean; isPkceLocked?: boolean; }) => { const { t } = useLocale(); const isFormDisabled = Boolean(isClientReadOnly); const allowUploadingLogo = !isFormDisabled; const redirectUriValidation: RegisterOptions = useMemo( () => ({ required: true, validate: (value: string) => { try { new URL(value); return true; } catch { return t("invalid_url"); } }, }), [t] ); const websiteUrlValidation: RegisterOptions = useMemo( () => ({ validate: (value: string) => { if (!value) return true; try { new URL(value); return true; } catch { return t("invalid_url"); } }, }), [t] ); return ( <>