@helix-x/datagrid-ui - v0.1.2
    Preparing search index...

    Interface HxDataSource<T>

    The grid's one required dependency: something that turns a request into rows.

    const dataSource: HxDataSource<Person> = {
    getRows: async (request, signal) => {
    const response = await fetch('/api/people', {
    method: 'POST',
    headers: { 'content-type': 'application/json' },
    body: JSON.stringify(request),
    signal,
    });
    return response.json();
    },
    };

    Memoise the object (or define it outside the component). A new identity on every render causes a refetch.

    interface HxDataSource<T> {
        getRows(
            request: HxRowsRequest,
            signal: AbortSignal,
        ): Promise<HxRowsResponse<T>>;
    }

    Type Parameters

    • T

      The row type.

    Index
    • Fetch one page of rows.

      Parameters

      • request: HxRowsRequest

        The page, sort and filters being asked for.

      • signal: AbortSignal

        Aborts when the grid supersedes this request. Pass it to fetch so a slow response for an old sort can never overwrite a newer one.

      Returns Promise<HxRowsResponse<T>>

      The page of rows plus the total row count.