Usage

Scroll a list in a test.

This type is used by List

tsx
// Scroll a list in a test.
import { List, Text } from 'kuito';
import { assert, render, screen, scroll, test } from 'kuito/tests';

const rows = Array.from({ length: 200 }, (_, index) => `Row ${index}`);

const Long = () => <List data={rows} renderItem={({ item }) => <Text height={44}>{item}</Text>} />;

test('rows far down bind once the list scrolls to them', async () => {
  await render(<Long />);

  assert.equal(screen.queryByText('Row 150'), null);

  await scroll(screen.getByText('Row 0'), { y: 150 * 44 });

  assert.ok(screen.getByText('Row 150'));
});

Type declaration

ts
export interface ListItem<T> {
  item: T;
  /** The item's position, a signal like `For`'s index: it follows items before it as they come and go. */
  index: ReadonlySignal<number>;
  /** Whether the row is on screen, by `viewability`'s threshold. */
  visible: ReadonlySignal<boolean>;
}

Members 3

NameTypeRequiredDescription
itemTYes—
indexReadonlySignal<number>YesThe item's position, a signal like For's index: it follows items before it as they come and go.
visibleReadonlySignal<boolean>YesWhether the row is on screen, by viewability's threshold.
Generated from the public TypeScript declarations: signatures, props and defaults come from the checked source, descriptions from its JSDoc. No defaults are invented.