fix/transportes-funciones

This commit is contained in:
2026-04-21 14:48:30 -06:00
parent d0cd10de84
commit 41e262b577
12 changed files with 425 additions and 74 deletions

View File

@@ -11,8 +11,9 @@
hasMore: boolean;
loadMore: () => void;
emptyMessage?: string;
selectedIds?: number[];
onSelectedIdsChange?: (ids: number[]) => void;
selectedIds?: (number | string)[];
onSelectedIdsChange?: (ids: (number | string)[]) => void;
getRowId?: (row: TData) => string | number;
onRowClick?: (row: TData) => void;
onRowDoubleClick?: (row: TData) => void;
};
@@ -26,6 +27,7 @@
emptyMessage = 'No hay resultados.',
selectedIds = [],
onSelectedIdsChange,
getRowId,
onRowClick,
onRowDoubleClick,
}: InfiniteDataTableProps<TData, TValue> = $props();
@@ -36,7 +38,7 @@
},
columns,
getCoreRowModel: getCoreRowModel(),
getRowId: (row: any) => row.id?.toString(),
getRowId: (row: any) => (getRowId ? getRowId(row).toString() : (row.id || row.transporter_key || row.driver_id || row.trailer_number || row.vehicle_key || '').toString()),
state: {
get rowSelection() {
const selection: Record<string, boolean> = {};
@@ -60,8 +62,7 @@
const nextSelectedIds = Object.entries(rowSelection)
.filter(([, selected]) => Boolean(selected))
.map(([id]) => Number(id))
.filter((id) => Number.isFinite(id));
.map(([id]) => (isNaN(Number(id)) ? id : Number(id)));
onSelectedIdsChange(nextSelectedIds);
},
@@ -189,6 +190,7 @@
.filter(Boolean)
.join(' ')}
onclick={() => onRowClick?.(row.original)}
ondblclick={() => onRowDoubleClick?.(row.original)}
>
{#each visibleCells as cell (cell.id)}
{@const colId = cell.column.id}

View File

@@ -37,16 +37,6 @@ export function createColumns(onSuccess?: () => void): ColumnDef<Driver>[] {
accessorKey: 'last_name',
header: 'Apellido',
cell: ({ row }) => row.original.last_name || '-'
},
{
id: 'actions',
header: 'Acciones',
cell: ({ row }) => {
return renderComponent(DataTableActions, {
item: row.original,
onSuccess
});
}
}
];
}

View File

@@ -50,15 +50,5 @@ export function createColumns(onSuccess?: () => void): ColumnDef<Trailer>[] {
return row.original.country || '-';
}
},
{
id: 'actions',
header: 'Acciones',
cell: ({ row }) => {
return renderComponent(DataTableActions, {
item: row.original,
onSuccess
});
}
}
];
}

View File

@@ -160,11 +160,10 @@
void handleSubmit();
}
onMount(() => {
$effect(() => {
if (!browser) return;
document.addEventListener('save-form', onSaveFormEvent);
});
onDestroy(() => {
document.removeEventListener('save-form', onSaveFormEvent);
return () => document.removeEventListener('save-form', onSaveFormEvent);
});
</script>

View File

@@ -169,11 +169,10 @@
void handleSubmit();
}
onMount(() => {
$effect(() => {
if (!browser) return;
document.addEventListener('save-form', onSaveFormEvent);
});
onDestroy(() => {
document.removeEventListener('save-form', onSaveFormEvent);
return () => document.removeEventListener('save-form', onSaveFormEvent);
});
</script>

View File

@@ -50,15 +50,5 @@ export function createColumns(onSuccess?: () => void): ColumnDef<Transporter>[]
return row.original.transport_code || '-';
}
},
{
id: 'actions',
header: 'Acciones',
cell: ({ row }) => {
return renderComponent(DataTableActions, {
item: row.original,
onSuccess
});
}
}
];
}

View File

@@ -50,15 +50,5 @@ export function createColumns(onSuccess?: () => void): ColumnDef<Vehicle>[] {
return row.original.transport_type || '-';
}
},
{
id: 'actions',
header: 'Acciones',
cell: ({ row }) => {
return renderComponent(DataTableActions, {
item: row.original,
onSuccess
});
}
}
];
}

View File

@@ -11,7 +11,6 @@
import { statesApi, type State } from '$lib/api/dashboard/reference_data/states';
import { companyStore } from '$lib/stores/company.svelte';
import { browser } from '$app/environment';
import { onMount, onDestroy } from 'svelte';
let {
open = $bindable(false),
@@ -202,11 +201,10 @@
void handleSubmit();
}
onMount(() => {
$effect(() => {
if (!browser) return;
document.addEventListener('save-form', onSaveFormEvent);
});
onDestroy(() => {
document.removeEventListener('save-form', onSaveFormEvent);
return () => document.removeEventListener('save-form', onSaveFormEvent);
});
</script>