UNPKG

synapse-react-client

Version:

[![npm version](https://badge.fury.io/js/synapse-react-client.svg)](https://badge.fury.io/js/synapse-react-client) [![code style: prettier](https://img.shields.io/badge/code_style-prettier-ff69b4.svg?style=flat-square)](https://github.com/prettier/prettie

73 lines 2.09 kB
import { UniqueFacetIdentifier } from '@/utils/types'; import { QueryBundleRequest, QueryFilter } from '@sage-bionetworks/synapse-types'; import * as React from 'react'; export type QueryChangeCommitOptions = { debounce: true; } | { noCommit: true; }; export type TableQueryReducerState = { currentQueryRequest: QueryBundleRequest; nextQueryRequest: QueryBundleRequest; isConfirmingChange: boolean; }; export type TableQueryReducerAction = { commitOptions?: QueryChangeCommitOptions; } & ({ type: 'setQuery'; queryOrUpdater: React.SetStateAction<QueryBundleRequest>; } | { type: 'addValueToSelectedFacet'; facet: UniqueFacetIdentifier; value: string; } | { type: 'removeSelectedFacet'; facetsToRemove: UniqueFacetIdentifier | UniqueFacetIdentifier[]; } | { type: 'setRangeFacetValue'; facet: UniqueFacetIdentifier; min?: string; max?: string; } | { type: 'removeValueFromSelectedFacet'; facet: UniqueFacetIdentifier; value: string; } | { type: 'setPageSize'; pageSize: number; } | { type: 'goToPage'; pageNumber: number; } | { type: 'resetQuery'; } | { type: 'removeQueryFilter'; queryFilter: QueryFilter; } | { type: 'removeValueFromQueryFilter'; queryFilter: QueryFilter; value: string; } | { type: 'resetUncommittedChanges'; } | { type: 'commitChanges'; } | { type: 'confirmChanges'; } | { type: 'cancelChanges'; } | { type: 'resetDebounce'; }); /** * Utility hook that internally uses a reducer to manage the state of a table query. * @param initQueryRequest * @param requireConfirmationOnChange * @param onQueryChange */ export declare function useTableQueryReducer(initQueryRequest: QueryBundleRequest, requireConfirmationOnChange: boolean, onQueryChange?: (queryJsonString: string) => void): { currentQueryRequest: QueryBundleRequest; nextQueryRequest: QueryBundleRequest; isConfirmingChange: boolean; dispatch: React.ActionDispatch<[action: TableQueryReducerAction]>; }; //# sourceMappingURL=useTableQueryReducer.d.ts.map