TinyBase logoTinyBase

onSortedRowIds

The onSortedRowIds function registers a listener that is called whenever the sorted Row Ids in a Table change.

onSortedRowIds(
  tableId: MaybeGetter<string>,
  cellId: MaybeGetter<string | undefined>,
  descending: MaybeGetter<boolean>,
  offset: MaybeGetter<number>,
  limit: MaybeGetter<number | undefined>,
  listener: SortedRowIdsListener,
  mutator?: boolean,
  storeOrStoreId?: MaybeGetter<StoreOrStoreId | undefined>,
): void
TypeDescription
tableIdMaybeGetter<string>

The Id of the Table to listen to.

cellIdMaybeGetter<string | undefined>

The Id of the Cell to sort by, or undefined for default order.

descendingMaybeGetter<boolean>

Whether to sort descending.

offsetMaybeGetter<number>

The index of the first Row to include.

limitMaybeGetter<number | undefined>

The maximum number of Rows to include, or undefined for all.

listenerSortedRowIdsListener

The function to call when sorted Row Ids change.

mutator?boolean

An optional boolean indicating the listener mutates Store data.

storeOrStoreId?MaybeGetter<StoreOrStoreId | undefined>

The Store to use, or its Id.

returnsvoid

This has no return value.

Example

This example registers a Svelte listener and responds to a TinyBase change.

App.svelte
<svelte:options runes={true} />

<script>
  import {onSortedRowIds} from 'tinybase/ui-svelte';

  let {store} = $props();
  let seen = $state('');

  onSortedRowIds('pets', 'species', false, 0, undefined, () =>
 (seen = 'changed'), false, store);
</script>

{seen}
import {flushSync, mount} from 'svelte';
import {createStore} from 'tinybase';
import App from './App.svelte';

const store = createStore()
  .setTables({
    pets: {
      fido: {species: 'dog', color: 'brown', sold: false, next: 'felix'},
      felix: {species: 'cat', color: 'black', sold: true},
    },
    species: {dog: {price: 5}, cat: {price: 4}},
  })
  .setValues({open: true, employees: 3});
const app = document.body.appendChild(document.createElement('div'));
flushSync(() => mount(App, {target: app, props: {store}}));
flushSync(() => {
  store.setRow('pets', 'cujo', {species: 'wolf'});
});
flushSync();
console.log(app.textContent);
// -> 'changed'

Since

v8.1.0

When called with an object as the first argument, the onSortedRowIds function destructures it to make it easier to skip optional parameters.

onSortedRowIds(
  args: SortedRowIdsArgs,
  listener: SortedRowIdsListener,
  mutator?: boolean,
  storeOrStoreId?: MaybeGetter<StoreOrStoreId | undefined>,
): void
TypeDescription
argsSortedRowIdsArgs

A SortedRowIdsArgs object containing the Id of the Table in the Store, and optional cellId, descending, offset, limit, and sorter parameters.

listenerSortedRowIdsListener

The function to call when sorted Row Ids change.

mutator?boolean

An optional boolean indicating the listener mutates Store data.

storeOrStoreId?MaybeGetter<StoreOrStoreId | undefined>

The Store to use, or its Id.

returnsvoid

This has no return value.

Since

v9.1.0