dylanebert HF staff commited on
Commit
369f59c
·
1 Parent(s): e06f17f

bind sorting

Browse files
Files changed (1) hide show
  1. viewer/src/routes/+page.svelte +20 -23
viewer/src/routes/+page.svelte CHANGED
@@ -305,6 +305,9 @@
305
  let overrideSelection = false;
306
  let searchValue = "";
307
 
 
 
 
308
  $: {
309
  if (searchValue !== "") {
310
  selection = { Name: searchValue };
@@ -317,8 +320,20 @@
317
  }
318
  }
319
 
320
- onMount(async () => {
321
- rows = (await fetchRows()) || [];
 
 
 
 
 
 
 
 
 
 
 
 
322
  });
323
 
324
  async function newEntry() {
@@ -328,29 +343,11 @@
328
  }
329
 
330
  function handleRowUpdated(event: Event) {
331
- const updatedRow = (event as CustomEvent).detail;
332
- const rowIndex = rows.findIndex(
333
- (row) =>
334
- row.Code === updatedRow.Code || row.Paper === updatedRow.Paper || row.Project === updatedRow.Project
335
- );
336
- if (rowIndex !== -1) {
337
- rows[rowIndex] = updatedRow;
338
- } else {
339
- console.error("Row not found");
340
- }
341
  }
342
 
343
  function handleRowDeleted(event: Event) {
344
- const deletedRow = (event as CustomEvent).detail;
345
- const rowIndex = rows.findIndex(
346
- (row) =>
347
- row.Code === deletedRow.Code || row.Paper === deletedRow.Paper || row.Project === deletedRow.Project
348
- );
349
- if (rowIndex !== -1) {
350
- rows = [...rows.slice(0, rowIndex), ...rows.slice(rowIndex + 1)];
351
- } else {
352
- console.error("Row not found");
353
- }
354
  }
355
 
356
  let fetching = false;
@@ -383,7 +380,7 @@
383
  <!--spacer-->
384
  <div style="height: 1rem;" />
385
 
386
- <SvelteTable {columns} {rows} sortBy="Date" sortOrder={-1} bind:filterSelections={selection} />
387
  {/if}
388
 
389
  <EditModal bind:isOpen={isModalOpen} on:rowUpdated={handleRowUpdated} on:rowDeleted={handleRowDeleted} />
 
305
  let overrideSelection = false;
306
  let searchValue = "";
307
 
308
+ let sortBy: string = "Date";
309
+ let sortOrder: 1 | -1 | 0 = -1;
310
+
311
  $: {
312
  if (searchValue !== "") {
313
  selection = { Name: searchValue };
 
320
  }
321
  }
322
 
323
+ async function refreshRows() {
324
+ fetching = true;
325
+ try {
326
+ const fetchedRows = await fetchRows();
327
+ rows = fetchedRows || [];
328
+ } catch (error) {
329
+ console.error(error);
330
+ } finally {
331
+ fetching = false;
332
+ }
333
+ }
334
+
335
+ onMount(() => {
336
+ refreshRows();
337
  });
338
 
339
  async function newEntry() {
 
343
  }
344
 
345
  function handleRowUpdated(event: Event) {
346
+ refreshRows();
 
 
 
 
 
 
 
 
 
347
  }
348
 
349
  function handleRowDeleted(event: Event) {
350
+ refreshRows();
 
 
 
 
 
 
 
 
 
351
  }
352
 
353
  let fetching = false;
 
380
  <!--spacer-->
381
  <div style="height: 1rem;" />
382
 
383
+ <SvelteTable {columns} {rows} bind:sortBy bind:sortOrder bind:filterSelections={selection} />
384
  {/if}
385
 
386
  <EditModal bind:isOpen={isModalOpen} on:rowUpdated={handleRowUpdated} on:rowDeleted={handleRowDeleted} />