fix(releases-widget): delete the empty repository when canceling Add Reposotory (#3082)

This commit is contained in:
Andre Silva
2025-05-11 21:11:55 +01:00
committed by GitHub
parent 5686910a47
commit 72862efae2

View File

@@ -83,11 +83,12 @@ export const WidgetMultiReleasesRepositoriesInput = ({
fieldPath: `options.${property}.${index}`, fieldPath: `options.${property}.${index}`,
repository: item, repository: item,
onRepositorySave: (saved) => onRepositorySave(saved, index), onRepositorySave: (saved) => onRepositorySave(saved, index),
onRepositoryCancel: () => onRepositoryRemove(index),
versionFilterPrecisionOptions, versionFilterPrecisionOptions,
}); });
}; };
const onReleaseRemove = (index: number) => { const onRepositoryRemove = (index: number) => {
form.setValues((previous) => { form.setValues((previous) => {
const previousValues = previous.options?.[property] as ReleasesRepository[]; const previousValues = previous.options?.[property] as ReleasesRepository[];
return { return {
@@ -99,6 +100,7 @@ export const WidgetMultiReleasesRepositoriesInput = ({
}; };
}); });
}; };
return ( return (
<Fieldset legend={t("label")}> <Fieldset legend={t("label")}>
<Stack gap="5"> <Stack gap="5">
@@ -145,7 +147,7 @@ export const WidgetMultiReleasesRepositoriesInput = ({
{tRepository("edit.label")} {tRepository("edit.label")}
</Button> </Button>
<ActionIcon variant="transparent" color="red" onClick={() => onReleaseRemove(index)}> <ActionIcon variant="transparent" color="red" onClick={() => onRepositoryRemove(index)}>
<IconTrash size={15} /> <IconTrash size={15} />
</ActionIcon> </ActionIcon>
</Group> </Group>
@@ -185,6 +187,7 @@ interface ReleaseEditProps {
fieldPath: string; fieldPath: string;
repository: ReleasesRepository; repository: ReleasesRepository;
onRepositorySave: (repository: ReleasesRepository) => FormValidation; onRepositorySave: (repository: ReleasesRepository) => FormValidation;
onRepositoryCancel?: () => void;
versionFilterPrecisionOptions: string[]; versionFilterPrecisionOptions: string[];
} }
@@ -206,6 +209,14 @@ const ReleaseEditModal = createModal<ReleaseEditProps>(({ innerProps, actions })
setLoading(false); setLoading(false);
}, [innerProps, tempRepository, actions]); }, [innerProps, tempRepository, actions]);
const handleCancel = useCallback(() => {
if (innerProps.onRepositoryCancel) {
innerProps.onRepositoryCancel();
}
actions.closeModal();
}, [innerProps, actions]);
const handleChange = useCallback((changedValue: Partial<ReleasesRepository>) => { const handleChange = useCallback((changedValue: Partial<ReleasesRepository>) => {
setTempRepository((prev) => ({ ...prev, ...changedValue })); setTempRepository((prev) => ({ ...prev, ...changedValue }));
}, []); }, []);
@@ -332,7 +343,7 @@ const ReleaseEditModal = createModal<ReleaseEditProps>(({ innerProps, actions })
<Divider my={"sm"} /> <Divider my={"sm"} />
<Group justify="flex-end"> <Group justify="flex-end">
<Button variant="default" onClick={actions.closeModal} color="gray.5"> <Button variant="default" onClick={handleCancel} color="gray.5">
{tRepository("editForm.cancel.label")} {tRepository("editForm.cancel.label")}
</Button> </Button>