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,
|
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,
|
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),
|
onError: () => setDeletingVariant(null),
|
||||||
},
|
},
|
||||||
);
|
);
|
||||||
@ -327,6 +335,14 @@ export default function RawMaterialIndex({ rawMaterials, rawMaterialNames, filte
|
|||||||
variants={loadedVariants[rawMaterial.id] ?? []}
|
variants={loadedVariants[rawMaterial.id] ?? []}
|
||||||
isLoading={loadingVariants[rawMaterial.id] ?? false}
|
isLoading={loadingVariants[rawMaterial.id] ?? false}
|
||||||
allPreviewItems={allPreviewItems}
|
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,
|
variants: loadedVariants,
|
||||||
isLoading,
|
isLoading,
|
||||||
allPreviewItems,
|
allPreviewItems,
|
||||||
|
onDeleteSuccess,
|
||||||
}: {
|
}: {
|
||||||
rawMaterial: RawMaterial;
|
rawMaterial: RawMaterial;
|
||||||
variants: RawMaterialVariant[];
|
variants: RawMaterialVariant[];
|
||||||
isLoading: boolean;
|
isLoading: boolean;
|
||||||
allPreviewItems: ImagePreviewItem[];
|
allPreviewItems: ImagePreviewItem[];
|
||||||
|
onDeleteSuccess?: (variantId: number) => void;
|
||||||
}) {
|
}) {
|
||||||
const { can } = useCan();
|
const { can } = useCan();
|
||||||
const [deletingVariant, setDeletingVariant] =
|
const [deletingVariant, setDeletingVariant] =
|
||||||
@ -48,7 +50,11 @@ export function RawMaterialVariantSubRow({
|
|||||||
variant: deletingVariant.id,
|
variant: deletingVariant.id,
|
||||||
}),
|
}),
|
||||||
{
|
{
|
||||||
onSuccess: () => setDeletingVariant(null),
|
onSuccess: () => {
|
||||||
|
const deletedId = deletingVariant.id;
|
||||||
|
setDeletingVariant(null);
|
||||||
|
onDeleteSuccess?.(deletedId);
|
||||||
|
},
|
||||||
},
|
},
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user