Merge pull request #4626 from veksen/veksen/textarea-resets-while-editing

fix: prevent environment form from resetting while editing
(cherry picked from commit 73e4fdd757)
This commit is contained in:
Mauricio Siu
2026-08-05 23:47:59 -06:00
committed by Mauricio Siu
parent 982f4d70f7
commit b024c9c2fd
@@ -60,14 +60,16 @@ export const ShowEnvironment = ({ applicationId }: Props) => {
const currentBuildArgs = form.watch("buildArgs"); const currentBuildArgs = form.watch("buildArgs");
const currentBuildSecrets = form.watch("buildSecrets"); const currentBuildSecrets = form.watch("buildSecrets");
const currentCreateEnvFile = form.watch("createEnvFile"); const currentCreateEnvFile = form.watch("createEnvFile");
const { isDirty } = form.formState;
const hasChanges = const hasChanges =
currentEnv !== (data?.env || "") || currentEnv !== (data?.env || "") ||
currentBuildArgs !== (data?.buildArgs || "") || currentBuildArgs !== (data?.buildArgs || "") ||
currentBuildSecrets !== (data?.buildSecrets || "") || currentBuildSecrets !== (data?.buildSecrets || "") ||
currentCreateEnvFile !== (data?.createEnvFile ?? true); currentCreateEnvFile !== (data?.createEnvFile ?? true);
// Skip reset while editing so background refetches don't wipe edits
useEffect(() => { useEffect(() => {
if (data) { if (data && !isDirty) {
form.reset({ form.reset({
env: data.env || "", env: data.env || "",
buildArgs: data.buildArgs || "", buildArgs: data.buildArgs || "",
@@ -75,7 +77,7 @@ export const ShowEnvironment = ({ applicationId }: Props) => {
createEnvFile: data.createEnvFile ?? true, createEnvFile: data.createEnvFile ?? true,
}); });
} }
}, [data, form]); }, [data, isDirty, form]);
const onSubmit = async (formData: EnvironmentSchema) => { const onSubmit = async (formData: EnvironmentSchema) => {
mutateAsync({ mutateAsync({
@@ -87,6 +89,7 @@ export const ShowEnvironment = ({ applicationId }: Props) => {
}) })
.then(async () => { .then(async () => {
toast.success("Environments Added"); toast.success("Environments Added");
form.reset(formData);
await refetch(); await refetch();
}) })
.catch(() => { .catch(() => {