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(), }); type EnvironmentSchema = z.infer; const addBuildArgsSchema = z.object({ buildArgs: z.string(), }); type BuildArgsSchema = z.infer; interface Props { applicationId: string; } export const ShowEnvironment = ({ applicationId }: Props) => { const saveEnvironmentMutation = api.application.saveEnvironment.useMutation(); const saveBuildArgsMutation = api.application.saveBuildArgs.useMutation(); const { data, refetch } = api.application.one.useQuery( { applicationId, }, { enabled: !!applicationId, }, ); const envForm = useForm({ defaultValues: { env: data?.env || "", }, resolver: zodResolver(addEnvironmentSchema), }); const buildArgsForm = useForm({ defaultValues: { buildArgs: data?.buildArgs || "", }, resolver: zodResolver(addBuildArgsSchema), }); const onEnvSubmit = async (data: EnvironmentSchema) => { saveEnvironmentMutation .mutateAsync({ env: data.env, applicationId, }) .then(async () => { toast.success("Environments Added"); await refetch(); }) .catch(() => { toast.error("Error to add environment"); }); }; const onBuildArgsSubmit = async (data: BuildArgsSchema) => { saveBuildArgsMutation .mutateAsync({ buildArgs: data.buildArgs, applicationId, }) .then(async () => { toast.success("Buildargs Added"); await refetch(); }) .catch(() => { toast.error("Error to add build-args"); }); }; return (
); };