Enhance deletion processes with event-check validations.
Added validation to prevent deletion of shipments, dewars, pucks, or samples if they have associated events. Updated frontend components to handle and display error messages based on API responses for improved user feedback.
This commit is contained in:
@ -78,13 +78,27 @@ const ShipmentDetails: React.FC<ShipmentDetailsProps> = ({
|
||||
const confirmed = window.confirm('Are you sure you want to delete this dewar?');
|
||||
if (confirmed && selectedShipment) {
|
||||
try {
|
||||
const updatedShipment = await ShipmentsService.removeDewarFromShipmentShipmentsShipmentIdRemoveDewarDewarIdDelete(selectedShipment.id, dewarId);
|
||||
const updatedShipment = await ShipmentsService.removeDewarFromShipmentShipmentsShipmentIdRemoveDewarDewarIdDelete(
|
||||
selectedShipment.id,
|
||||
dewarId
|
||||
);
|
||||
setSelectedShipment(updatedShipment);
|
||||
setLocalSelectedDewar(null);
|
||||
refreshShipments();
|
||||
} catch (error) {
|
||||
console.error('Failed to delete dewar:', error);
|
||||
alert('Failed to delete dewar. Please try again.');
|
||||
alert('Dewar deleted successfully!');
|
||||
} catch (error: any) {
|
||||
console.error('Full error object:', error);
|
||||
|
||||
let errorMessage = 'Failed to delete dewar. Please try again.';
|
||||
|
||||
if (error instanceof ApiError && error.body) {
|
||||
console.error('API error body:', error.body);
|
||||
errorMessage = error.body.detail || errorMessage;
|
||||
} else if (error.message) {
|
||||
errorMessage = error.message;
|
||||
}
|
||||
|
||||
alert(`Failed to delete dewar: ${errorMessage}`);
|
||||
}
|
||||
}
|
||||
};
|
||||
|
Reference in New Issue
Block a user