import { Button } from "@/components/ui/button"; import { Card, CardContent } from "@/components/ui/card"; import { Form } from "@/components/ui/form"; import { Secrets } from "@/components/ui/secrets"; import { api } from "@/utils/api"; import { zodResolver } from "@hookform/resolvers/zod"; import { useForm } from "react-hook-form"; import { toast } from "sonner"; import { z } from "zod"; const addEnvironmentSchema = z.object({ env: z.string(), buildArgs: z.string(), }); type EnvironmentSchema = z.infer; interface Props { applicationId: string; } export const ShowEnvironment = ({ applicationId }: Props) => { const { mutateAsync, isLoading } = api.application.saveEnvironment.useMutation(); const { data, refetch } = api.application.one.useQuery( { applicationId, }, { enabled: !!applicationId, }, ); const form = useForm({ defaultValues: { env: data?.env || "", buildArgs: data?.buildArgs || "", }, resolver: zodResolver(addEnvironmentSchema), }); const onSubmit = async (data: EnvironmentSchema) => { mutateAsync({ env: data.env, buildArgs: data.buildArgs, applicationId, }) .then(async () => { toast.success("Environments Added"); await refetch(); }) .catch(() => { toast.error("Error to add environment"); }); }; return (
{data?.buildType === "dockerfile" && ( Available only at build-time. See documentation  here . } placeholder="NPM_TOKEN=xyz" /> )}
); };