Skip to content

Commit 9fec86d

Browse files
committed
Update server config for Table
1 parent 0153806 commit 9fec86d

File tree

2 files changed

+18
-13
lines changed

2 files changed

+18
-13
lines changed

src/lib/components/Table/TableContent.svelte

Lines changed: 17 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -56,16 +56,13 @@
5656
pageSizes = [5, 10, 20, 50, 100], // Page sizes to display in the pagination component
5757
fitToScreen = true, // Whether to fit the table to the screen,
5858
exportable = false, // Whether to display the export button and enable export functionality
59-
serverSide = false, // Whether the table is client or server-side
60-
URL = '', // URL to fetch data from
61-
token = '', // Bearer token to authenticate the request
62-
sendModel = new Send(), // Model to send requests
63-
entityId = 0, // Entity ID to send with the request
64-
versionId = 0 // Version ID to send with the request,
59+
server
6560
} = config;
6661
6762
let searchValue = '';
6863
let isFetching = false;
64+
const serverSide = server !== undefined;
65+
const { baseUrl, sendModel, entityId, versionId } = server ?? {};
6966
7067
const filters = writable<{
7168
[key: string]: { [key in FilterOptionsEnum]?: number | string | Date };
@@ -305,20 +302,21 @@
305302
const { hiddenColumnIds } = pluginStates.hideColumns;
306303
307304
const updateTable = async () => {
305+
if (!sendModel) throw new Error('Server-side configuration is missing');
306+
308307
sendModel.limit = $pageSize;
309308
sendModel.offset = $pageSize * $pageIndex;
310-
sendModel.version = versionId;
311-
sendModel.id = entityId;
309+
sendModel.version = versionId || -1;
310+
sendModel.id = entityId || -1;
312311
sendModel.filter = normalizeFilters($filters);
313312
314313
let fetchData;
315314
316315
try {
317316
isFetching = true;
318-
fetchData = await fetch(URL, {
317+
fetchData = await fetch(baseUrl || '', {
319318
headers: {
320-
'Content-Type': 'application/json',
321-
Authorization: `Bearer ${token}`
319+
'Content-Type': 'application/json'
322320
},
323321
method: 'POST',
324322
body: JSON.stringify(sendModel)
@@ -363,6 +361,7 @@
363361
};
364362
365363
const sortServer = (order: 'asc' | 'desc' | undefined, id: string) => {
364+
if (!sendModel) throw new Error('Server-side configuration is missing');
366365
// Set parameter for sorting
367366
if (order === undefined) {
368367
sendModel.order = [];
@@ -386,10 +385,12 @@
386385
{#if $data.length > 0 || (columns && Object.keys(columns).length > 0)}
387386
<div class="table-container">
388387
<!-- Enable the search filter if table is not empty -->
389-
{#if !serverSide && search}
388+
{#if search}
390389
<form
391390
class="flex gap-2"
392391
on:submit|preventDefault={() => {
392+
if (!sendModel) throw new Error('Server-side configuration is missing');
393+
393394
sendModel.q = searchValue;
394395
$filterValue = searchValue;
395396
}}
@@ -406,6 +407,8 @@
406407
id="{tableId}-searchReset"
407408
class="absolute right-3 items-center"
408409
on:click|preventDefault={() => {
410+
if (!sendModel) throw new Error('Server-side configuration is missing');
411+
409412
searchValue = '';
410413
sendModel.q = '';
411414
$filterValue = '';
@@ -417,6 +420,8 @@
417420
id="{tableId}-searchSubmit"
418421
class="btn variant-filled-primary"
419422
on:click|preventDefault={() => {
423+
if (!sendModel) throw new Error('Server-side configuration is missing');
424+
420425
$filterValue = searchValue;
421426
sendModel.q = searchValue;
422427
}}>Search</button

src/lib/models/Models.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -107,7 +107,7 @@ export interface Columns {
107107
// Server config type for the table
108108
export type ServerConfig = {
109109
baseUrl?: string; // Base URL for server-side table
110-
sendModel?: Send; // Send model for server-side table
110+
sendModel: Send; // Send model for server-side table
111111
entityId?: number; // Entity ID for server-side table
112112
versionId?: number; // Version ID for server-side table
113113
};

0 commit comments

Comments
 (0)