react-querybuilder
Version:
React Query Builder component for constructing queries and filters, with utilities for executing them in various database and evaluation contexts
38 lines (37 loc) • 1.58 kB
text/typescript
import type { Classnames, Controls, FullField, QueryBuilderContextProps, RuleGroupTypeAny, Translations, TranslationsFull } from "../types/index.mjs";
export type UseMergedContextParams<
F extends FullField = FullField,
O extends string = string,
Finalize extends boolean | undefined = undefined
> = QueryBuilderContextProps<F, O> & {
initialQuery?: RuleGroupTypeAny;
qbId?: string;
/**
* When true, props and context are merged with defaults to ensure all properties
* are defined. Action elements and value selectors are merged with their respective
* bulk override components. Only needs to be true when run from `QueryBuilder`.
*/
finalize?: Finalize;
};
export type UseMergedContextReturn<
F extends FullField = FullField,
O extends string = string,
Finalize extends boolean | undefined = undefined
> = QueryBuilderContextProps<F, O> & {
initialQuery?: RuleGroupTypeAny;
qbId?: string;
} & {
controlElements: Finalize extends true ? Controls<F, O> : Partial<Controls<F, O>>;
controlClassnames: Classnames;
translations: Finalize extends true ? TranslationsFull : Partial<Translations>;
} & Required<Pick<QueryBuilderContextProps<F, O>, "debugMode" | "enableDragAndDrop" | "enableMountQueryChange">>;
/**
* Merges inherited context values with props, giving precedence to props.
*
* @group Hooks
*/
export declare const useMergedContext: <
F extends FullField = FullField,
O extends string = string,
Finalize extends boolean | undefined = undefined
>({ finalize,...props }: UseMergedContextParams<F, O, Finalize>) => UseMergedContextReturn<F, O, Finalize>;