Skip to main content

useCASharePointDataTable

@spartanfx/react v1.2.2


@spartanfx/react / codeapps / useCASharePointDataTable

Function: useCASharePointDataTable()

function useCASharePointDataTable<TRecord>(config): UseCADataTableReturn<TRecord>;

Power Apps Code Apps DataTable hook backed by a SharePoint list.

Consumes a generated SharePoint-list service produced by pac code add-data-source -a shared_sharepointonline -t <ListName> -d <siteUrl>.

Type Parameters

TRecord

TRecord = any

Configuration

Required

PropertyTypeDescription
serviceICATabularService<TRecord & CADataTableRecord, string>Generated tabular service from pac code add-data-source.

Options

PropertyTypeDescription
autoRefresh?booleanEnable auto-refresh after mutations (default: true).
cacheDuration?numberCache TTL for read results in ms (default: 60_000).
columns?( | IColumn | IDataTableColumn<TRecord>)[]Columns to display. May mix simplified IDataTableColumn and Fluent IColumn.
debug?booleanEnable verbose console logging (default: false).
fieldInfo?IDataTableFieldType[]Optional field metadata for renderers and tooltips. CodeApps services do not expose schema at runtime — supply this when you need rich column rendering (User, Lookup, Choice, DateTime, ...).
filterDiscoveryLimit?numberSample size for the default filter-options discovery (default: 1000). Only used when onGetFilterOptions is not provided.
filterOptionsCacheTTL?numberCache TTL for filter-options results in ms (default: 5 minutes). Filter values are far less volatile than table data.
groupByLevel1?stringField name for level-1 grouping.
groupByLevel2?stringField name for level-2 grouping.
groupByLevel3?stringField name for level-3 grouping.
groupsDefaultCollapsed?booleanWhether groups start collapsed.
inPlaceSearchText?stringDefault search text. Triggers a filter that matches any of searchFields against the value via contains().
odataFilter?stringOData $filter expression applied to every read. Always AND-combined with column filters and search text.
retryPolicy?ICARetryPolicyRetry policy for transient failures.
rowLimit?numberPage size (default: 100).
searchFields?string[]Columns to search across when onSearch is invoked. Required when search is enabled — OData has no built-in cross-column search.
translatedFields?string[]Fields whose filter values should be translated for display.

Events & callbacks

PropertyTypeDescription
inPlaceFilterItems?(item) => booleanClient-side post-filter. Applied after server-side filtering, useful for computed predicates the connector can't express.
onError?(error) => voidError callback. Called for every operational failure.
onGetFilterOptions?(fieldName, currentFilters) => Promise<IFilterCriteria[]>Override the filter-options discovery. Default implementation queries the data source for distinct values from a top-N sample, which is inexact for large tables — supply a custom implementation for accurate results.
onNotify?CANotifyFnNotification callback. If omitted, hook errors surface via error state only.
translate?(text) => stringTranslation function (rendered through component).

Appearance & theming

PropertyTypeDescription
appearance?AppearanceModeAppearance mode for theming.

Full type reference: IUseCASharePointDataTableConfig

Returns

UseCADataTableReturn<TRecord>

Example

import { ProjectsService } from './generated/services/ProjectsService';
import type { Projects } from './generated/models/ProjectsModel';
import { useCASharePointDataTable } from '@spartanfx/react/codeapps';

const dataTableProps = useCASharePointDataTable<Projects>({
service: ProjectsService as any,
columns,
searchFields: ['Title', 'Description'],
rowLimit: 100,
});

return <DataTable {...dataTableProps} />;