-
Notifications
You must be signed in to change notification settings - Fork 18
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[Runes] ownership_invalid_mutation #128
Comments
I guess i should create a new project with a Thanks for the warning, will fix it for sure |
Hey, getting same here. Looks like its called by children components updating the parent table. Here is my code: +page.svelte
const table = new TableHandler(visitLogs, { rowsPerPage: 10 });
aside class="flex gap-2">
<input
type="text"
class="input border-secondary-500"
bind:value={search.value}
oninput={() => search.set()}
placeholder="Filter logs..."
/>
<HeaderFilter {table} key="client" />
<HeaderFilter {table} key="assignee" />
{#if table.filters.length > 0}
<button type="button" class="btn variant-ghost-error" onclick={() => table.clearFilters()}>
<span>Reset</span>
<span>
<svg
xmlns="http://www.w3.org/2000/svg"
fill="none"
viewBox="0 0 24 24"
stroke-width="1.5"
stroke="currentColor"
class="size-6"
>
<path stroke-linecap="round" stroke-linejoin="round" d="M6 18 18 6M6 6l12 12" />
</svg>
</span>
</button>
{/if}
</aside>
<div class="table-container space-y-4">
<table class="table table-hover table-compact table-auto w-full">
<thead>
<tr>
<ThSort {table} field="client">Client</ThSort>
<ThSort {table} field="assignee">Carer</ThSort>
<ThSort {table} field="note">Note</ThSort>
</tr>
</thead>
<tbody>
{#each table.rows as row}
<tr>
<td>{row.client}</td>
<td>{row.assignee}</td>
<td>{row.note || 'No note'}</td>
</tr>
{/each}
</tbody>
</table>
<footer class="flex justify-between">
<RowCount {table} />
<Pagination {table} />
</footer>
</div> and the child component HeaderFilter.svelte
<script lang="ts">
import { camelCaseToWords } from '$lib/utils/text';
import { popup } from '@skeletonlabs/skeleton';
import type { PopupSettings } from '@skeletonlabs/skeleton';
import type { TableHandler } from '@vincjo/datatables';
type Props = { table: TableHandler; key: string };
let { table, key }: Props = $props();
const distinct = table.createCalculation(key).distinct({ sort: ['count', 'desc'] });
const search = table.createRecordFilter(distinct);
const filter = table.createAdvancedFilter(key);
const target = `popupClick-${key}`;
const popupClick: PopupSettings = {
event: 'click',
target,
placement: 'bottom',
closeQuery: '#will-close'
};
</script>
<button class="btn variant-filled-secondary" use:popup={popupClick}>{camelCaseToWords(key)}</button>
<div class="card p-4 variant-filled-secondary max-w-xs z-1000 fixed" data-popup={target}>
<input
type="text"
class="input mb-2"
bind:value={search.value}
oninput={() => search.set()}
placeholder={camelCaseToWords(key)}
/>
<div class="max-h-64 overflow-y-auto">
{#each search.records as { value }}
<button
class="block"
onclick={() => filter.set(value)}
class:active={filter.criteria.includes(value)}
>
<label class="flex items-center space-x-2">
<input class="checkbox" type="checkbox" checked={filter.criteria.includes(value)} />
<span>{value}</span>
</label>
</button>
{/each}
{#if filter.criteria.length > 0}
<hr />
<button type="button" class="btn !bg-transparent" onclick={() => filter.clear()}>
Clear filters</button
>
{/if}
</div>
</div> Error is: [svelte] ownership_invalid_mutationsrc/lib/components/logchecker/datatable/HeaderFilter.svelte mutated a value owned by src/lib/components/logchecker/datatable/PreClassificationDatatable.svelte. This is strongly discouraged. Consider passing values to child components with |
In the "Hello World" example using
ThSort
orThFilter
triggers the warningThis only triggers in dev mode, in production mode this does not trigger a warning.
The text was updated successfully, but these errors were encountered: