feat: enhance variant deletion handling to update loaded variants on success
This commit is contained in:
parent
078d4e2461
commit
953a395f24
@ -175,7 +175,15 @@ export default function ProductIndex({ products, categories, productNames, filte
|
||||
variant: deletingVariant.variant.id,
|
||||
}),
|
||||
{
|
||||
onSuccess: () => setDeletingVariant(null),
|
||||
onSuccess: () => {
|
||||
setDeletingVariant(null);
|
||||
setLoadedVariants((prev) => ({
|
||||
...prev,
|
||||
[deletingVariant.product.id]: (prev[deletingVariant.product.id] ?? []).filter(
|
||||
(v) => v.id !== deletingVariant.variant.id,
|
||||
),
|
||||
}));
|
||||
},
|
||||
},
|
||||
);
|
||||
}
|
||||
|
||||
@ -156,7 +156,15 @@ export default function RawMaterialIndex({ rawMaterials, rawMaterialNames, filte
|
||||
variant: deletingVariant.variant.id,
|
||||
}),
|
||||
{
|
||||
onSuccess: () => setDeletingVariant(null),
|
||||
onSuccess: () => {
|
||||
setDeletingVariant(null);
|
||||
setLoadedVariants((prev) => ({
|
||||
...prev,
|
||||
[deletingVariant.rawMaterial.id]: (prev[deletingVariant.rawMaterial.id] ?? []).filter(
|
||||
(v) => v.id !== deletingVariant.variant.id,
|
||||
),
|
||||
}));
|
||||
},
|
||||
onError: () => setDeletingVariant(null),
|
||||
},
|
||||
);
|
||||
@ -327,6 +335,14 @@ export default function RawMaterialIndex({ rawMaterials, rawMaterialNames, filte
|
||||
variants={loadedVariants[rawMaterial.id] ?? []}
|
||||
isLoading={loadingVariants[rawMaterial.id] ?? false}
|
||||
allPreviewItems={allPreviewItems}
|
||||
onDeleteSuccess={(variantId: number) => {
|
||||
setLoadedVariants((prev) => ({
|
||||
...prev,
|
||||
[rawMaterial.id]: (prev[rawMaterial.id] ?? []).filter(
|
||||
(v) => v.id !== variantId,
|
||||
),
|
||||
}));
|
||||
}}
|
||||
/>
|
||||
)}
|
||||
/>
|
||||
|
||||
@ -27,11 +27,13 @@ export function RawMaterialVariantSubRow({
|
||||
variants: loadedVariants,
|
||||
isLoading,
|
||||
allPreviewItems,
|
||||
onDeleteSuccess,
|
||||
}: {
|
||||
rawMaterial: RawMaterial;
|
||||
variants: RawMaterialVariant[];
|
||||
isLoading: boolean;
|
||||
allPreviewItems: ImagePreviewItem[];
|
||||
onDeleteSuccess?: (variantId: number) => void;
|
||||
}) {
|
||||
const { can } = useCan();
|
||||
const [deletingVariant, setDeletingVariant] =
|
||||
@ -48,7 +50,11 @@ export function RawMaterialVariantSubRow({
|
||||
variant: deletingVariant.id,
|
||||
}),
|
||||
{
|
||||
onSuccess: () => setDeletingVariant(null),
|
||||
onSuccess: () => {
|
||||
const deletedId = deletingVariant.id;
|
||||
setDeletingVariant(null);
|
||||
onDeleteSuccess?.(deletedId);
|
||||
},
|
||||
},
|
||||
);
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user