import { useEffect, useState } from "react"; import { useForm } from "react-hook-form"; import { zodResolver } from "@hookform/resolvers/zod"; import * as z from "zod"; import { Button } from "@/components/ui/button"; import { Input } from "@/components/ui/input"; import { Form, FormControl, FormField, FormItem, FormLabel, FormMessage, } from "@/components/ui/form"; import { useAzureClientCredentialToken } from "@/hooks/useAzureClientCredentialToken"; import { EyeOpenIcon, EyeClosedIcon } from "@radix-ui/react-icons"; const AzureClientSecretCredentialSchema = z .object({ tenant_id: z.string().min(1, "tenant_id is required"), client_id: z.string().min(1, "client_id is required"), client_secret: z.string().min(1, "client_secret is required"), }) .strict(); const formSchema = z .object({ credential: AzureClientSecretCredentialSchema, }) .strict(); type FormData = z.infer; export function AzureClientSecretCredentialTokenForm() { const [showClientSecret, setShowClientSecret] = useState(false); const { azureOrganizationAuthToken, isLoading, createOrUpdateToken, isUpdating, } = useAzureClientCredentialToken(); const form = useForm({ resolver: zodResolver(formSchema), defaultValues: { credential: azureOrganizationAuthToken?.credential || { tenant_id: "", client_id: "", client_secret: "", }, }, }); const onSubmit = (data: FormData) => { createOrUpdateToken(data); }; const toggleClientSecretVisibility = () => { setShowClientSecret((v) => !v); }; useEffect(() => { if (azureOrganizationAuthToken?.credential) { form.reset({ credential: azureOrganizationAuthToken.credential }); } }, [azureOrganizationAuthToken, form]); return (

Azure Client Secret Credential

Configure your Azure Client Secret Credential to give access to your Azure account.

{azureOrganizationAuthToken && (
Status: {azureOrganizationAuthToken.valid ? "Active" : "Inactive"}
)}
( Tenant ID
)} /> ( Client ID
)} /> ( Client Secret
)} />
{azureOrganizationAuthToken && (
Last updated:{" "} {new Date( azureOrganizationAuthToken.modified_at, ).toLocaleDateString()}
)}
{azureOrganizationAuthToken && (

Credential Information

ID: {azureOrganizationAuthToken.id}
Type: {azureOrganizationAuthToken.token_type}
Created:{" "} {new Date( azureOrganizationAuthToken.created_at, ).toLocaleDateString()}
)}
); }