eliminacion y cracion de registros reactivos

This commit is contained in:
2026-05-14 11:28:09 -05:00
parent 6f2ce605a8
commit 23ae03343b
4 changed files with 34 additions and 16 deletions

View File

@@ -155,11 +155,11 @@ loading = false;
async function handleDelete() {
if (!selectedItem || !canDelete || !companyStore.activeCompany) return;
if (confirm('¿Eliminar esta conversión?')) {
const itemToDelete = selectedItem;
if (confirm(`¿Eliminar la conversión "${itemToDelete.from_unit_code}${itemToDelete.to_unit_code}"?`)) {
try {
await unitConversionsApi.delete(selectedItem.id, companyStore.activeCompany.id);
selectedIds = [];
reloadData();
await unitConversionsApi.delete(itemToDelete.id, companyStore.activeCompany.id);
handleTableSuccess(itemToDelete, true);
} catch (err) {
error = 'Error al eliminar';
}
@@ -191,14 +191,31 @@ loading = false;
}
}
function handleSuccess() {
function handleSuccess(saved: UnitConversion) {
createDialogOpen = false;
editingItem = null;
selectedIds = [];
reloadData();
if (editingItem) {
allItems = allItems.map((i: UnitConversion) => (i.id === saved.id ? saved : i));
} else {
allItems = [saved, ...allItems];
totalItems += 1;
}
editingItem = null;
}
const columns = $derived(createColumns(handleSuccess, { canEdit, canDelete }));
function handleTableSuccess(item?: UnitConversion, isDelete?: boolean) {
if (isDelete && item) {
allItems = allItems.filter((i: UnitConversion) => i.id !== item.id);
totalItems = Math.max(0, totalItems - 1);
selectedIds = [];
} else if (item) {
allItems = allItems.map((i: UnitConversion) => (i.id === item.id ? item : i));
} else {
reloadData();
}
}
const columns = $derived(createColumns(handleTableSuccess, { canEdit, canDelete }));
</script>
<div class="flex h-[calc(100svh-4rem)] flex-col gap-6 overflow-hidden p-6 group-has-data-[collapsible=icon]/sidebar-wrapper:h-[calc(100svh-3rem)]">