react-querybuilder
Version:
React Query Builder component for constructing queries and filters, with utilities for executing them in various database and evaluation contexts
36 lines (35 loc) • 1.56 kB
text/typescript
import type { Classnames, Controls, FullField, QueryBuilderContextProps, RuleGroupTypeAny, Translations, TranslationsFull } from "../types/index.mjs";
export type UseMergedContextProps<
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.
*/
export declare const useMergedContext: <
F extends FullField = FullField,
O extends string = string,
Finalize extends boolean | undefined = undefined
>({ finalize,...props }: UseMergedContextProps<F, O, Finalize>) => UseMergedContextReturn<F, O, Finalize>;