feat(RunnersOverview): row selection

This commit is contained in:
2023-04-12 16:18:45 +02:00
parent c5e8409079
commit 6993511c67
2 changed files with 44 additions and 0 deletions

View File

@@ -11,6 +11,9 @@
getSortedRowModel,
} from "@tanstack/svelte-table";
$: selected =
$table?.getSelectedRowModel().rows.map((row) => row.index) || [];
const columns = [
{
accessorKey: "id",
@@ -51,6 +54,7 @@
import GenerateRunnerCards from "../pdf_generation/GenerateRunnerCards.svelte";
import GenerateRunnerCertificates from "../pdf_generation/GenerateRunnerCertificates.svelte";
import { onMount } from "svelte";
import InputElement from "../shared/InputElement.svelte";
$: active_deletes = [];
let dataLoaded = false;
export let current_runners = [];
@@ -76,6 +80,7 @@
pageSize: tablePageCount[0],
},
},
enableRowSelection: true,
getCoreRowModel: getCoreRowModel(),
getFilteredRowModel: getFilteredRowModel(),
getPaginationRowModel: getPaginationRowModel(),
@@ -128,6 +133,14 @@
<thead>
{#each $table.getHeaderGroups() as headerGroup}
<tr class="select-none">
<th class="inset-y-0 left-0 px-4 py-2 text-left bg-stone-100 w-px">
<InputElement
type="checkbox"
checked={$table.getIsAllRowsSelected()}
indeterminate={$table.getIsSomeRowsSelected()}
on:change={() => $table.toggleAllRowsSelected()}
/>
</th>
{#each headerGroup.headers as header}
<th class="cursor-pointer">
{#if !header.isPlaceholder}
@@ -183,6 +196,13 @@
<tbody>
{#each $table.getRowModel().rows as row}
<tr>
<td class="inset-y-0 left-0 px-4 py-2">
<InputElement
type="checkbox"
checked={row.getIsSelected()}
on:change={() => row.toggleSelected()}
/>
</td>
{#each row.getVisibleCells() as cell}
<td>
<svelte:component
@@ -260,6 +280,10 @@
</select>
</div>
<pre>{JSON.stringify($table.getState(), null, 2)}</pre>
<div>
{Object.keys(selected).length} of{" "}
{$table.getPreFilteredRowModel().rows.length} Total Rows Selected
</div>
{/if}
{/if}