fix: populate slug conditionally

This commit is contained in:
Piyush Gupta
2025-11-25 22:40:26 +05:30
parent 34cbe0d416
commit e0f5900c0a
@@ -32,7 +32,13 @@ type ContentProps = {
const Content = ({ onComplete }: ContentProps) => { const Content = ({ onComplete }: ContentProps) => {
const { currentProject } = useProject(); const { currentProject } = useProject();
const { mutateAsync, isPending } = useCreateWsEnvironment(); const { mutateAsync, isPending } = useCreateWsEnvironment();
const { control, handleSubmit, setValue } = useForm<FormData>({ const {
control,
handleSubmit,
setValue,
getValues,
formState: { dirtyFields }
} = useForm<FormData>({
resolver: zodResolver(schema) resolver: zodResolver(schema)
}); });
@@ -53,9 +59,10 @@ const Content = ({ onComplete }: ContentProps) => {
onComplete(env); onComplete(env);
}; };
const handleEnvironmentNameChange = (e: React.ChangeEvent<HTMLInputElement>) => { const handleEnvironmentNameChange = () => {
const { value } = e.target; if (dirtyFields.environmentSlug) return;
setValue("environmentName", value);
const value = getValues("environmentName");
setValue("environmentSlug", slugify(value, { lowercase: true })); setValue("environmentSlug", slugify(value, { lowercase: true }));
}; };
@@ -67,7 +74,13 @@ const Content = ({ onComplete }: ContentProps) => {
name="environmentName" name="environmentName"
render={({ field: { onChange, ...field }, fieldState: { error } }) => ( render={({ field: { onChange, ...field }, fieldState: { error } }) => (
<FormControl label="Environment Name" isError={Boolean(error)} errorText={error?.message}> <FormControl label="Environment Name" isError={Boolean(error)} errorText={error?.message}>
<Input {...field} onChange={handleEnvironmentNameChange} /> <Input
{...field}
onChange={(e) => {
onChange(e);
handleEnvironmentNameChange();
}}
/>
</FormControl> </FormControl>
)} )}
/> />