![Create React App Officially Deprecated Amid React 19 Compatibility Issues](https://cdn.sanity.io/images/cgdhsj6q/production/04fa08cf844d798abc0e1a6391c129363cc7e2ab-1024x1024.webp?w=400&fit=max&auto=format)
Security News
Create React App Officially Deprecated Amid React 19 Compatibility Issues
Create React App is officially deprecated due to React 19 issues and lack of maintenance—developers should switch to Vite or other modern alternatives.
@react-querybuilder/material
Advanced tools
Custom MUI (Material Design) components for react-querybuilder
Official react-querybuilder components for MUI/Material Design.
To see them in action, check out the react-querybuilder
demo or load the example in CodeSandbox.
npm i react-querybuilder @react-querybuilder/material @mui/icons-material @mui/material
# OR yarn add / pnpm add / bun add
To render MUI-compatible components in the query builder, wrap the <QueryBuilder />
element in <QueryBuilderMaterial />
.
import { createTheme, ThemeProvider } from '@mui/material/styles';
import { QueryBuilderMaterial } from '@react-querybuilder/material';
import { QueryBuilder, RuleGroupType } from 'react-querybuilder';
const muiTheme = createTheme();
const fields = [
{ name: 'firstName', label: 'First Name' },
{ name: 'lastName', label: 'Last Name' },
];
const App = () => {
const [query, setQuery] = useState<RuleGroupType>({ combinator: 'and', rules: [] });
return (
<ThemeProvider theme={muiTheme}>
<QueryBuilderMaterial>
<QueryBuilder fields={fields} query={query} onQueryChange={setQuery} />
</QueryBuilderMaterial>
</ThemeProvider>
);
};
materialControlElements
which can be assigned directly to the controlElements
prop on <QueryBuilder />
(and also exports each component individually), but wrapping <QueryBuilder />
in <QueryBuilderMaterial />
is the recommended method.[v7.7.0] - 2024-10-08
useValueEditor
hook now requires the entire ValueEditorProps
object instead of only requiring a subset of the props.controlElements
properties ruleGroupHeaderElements
and ruleGroupBodyElements
, enabling customization/replacement/augmentation of the subcomponents within the rule group header and body wrappers without needing to reimplement the entire RuleGroup
component.suppressStandardClassnames
. When true
, no classes will be added automatically to any elements (custom classes defined in controlClassnames
will still be applied). This includes conditional and event-based classes for validation, drag-and-drop, etc.Alt
or Option ⌥
) is pressed while the drag phase begins. When using the default styles, the drag-and-drop indicator line will be green (#669933
) instead of rebeccapurple
(#663399
).useQueryBuilderNative
hook. Works the same as useQueryBuilder
, but tailored for React Native implementations.parseNumbers
prop now accepts an optional "-limited" suffix on existing string
config values "enhanced", "strict", and "native". When the "-limited" suffix is used (e.g., parseNumbers="strict-limited"
), values will only be parsed for numericity when the inputType
is "number"
.formatQuery
now accepts an optional concatOperator
parameter to support non-standard concatenation methods in the various SQL dialects. The default is the ANSI standard "||"
, which is supported by PostgreSQL, Oracle, SQLite, and various others, while SQL Server uses "+"
. A value of "CONCAT"
will enable MySQL compatibility by using the CONCAT
function (do not use this for Oracle as its CONCAT
function is limited).toArray
method now accepts an optional configuration parameter. If the retainEmptyStrings
property of that object is true
, the function will not filter out string elements that are empty or purely whitespace.useValueEditor
now includes a parseNumberMethod
property, which is a processed version of the parseNumbers
prop.formatQuery
now accepts an optional preset
option as a shortcut to configure the output for improved compatibility with different query language dialects. Options include "ansi", "mssql", "mysql", "oracle", "postgres", and "sqlite".formatQuery
now accepts an optional fieldIdentifierSeparator
string. When used in conjunction with the quoteFieldNamesWith
option, field names will be separated by this string and bracketed individually per the quoteFieldNamesWith
configuration (e.g., [table name].[field name] = 'value'
instead of [table name.field name] = 'value'
).formatQuery
export format "natural_language", similar to the "sql" or "cel" formats but with English-language operators.ParseNumbersMethod
renamed to ParseNumberMethod
(singular) to better reflect its assocation with the parseNumber
method as opposed to the parseNumbers
prop.formatQuery
uses actual JSON objects instead of manually constructing JSON.parse
-able strings. This should lead to more reliably valid results.operator
is "between" or "notBetween", (2) the values are numeric, and (3) parseNumbers
is true
, formatQuery
will place the smaller value first and the larger value second, regardless of their order in the rule's value
property.parseJSONata
encounters an expression group where only two conditions exist for the same field, one greater-than and one less-than, a single "between"/"notBetween" rule will be generated. Previously a rule group with two separate rules would be generated.MantineValueSelector
no longer sets the value to ""
when clicking the selected option again.FAQs
Custom MUI (Material Design) components for react-querybuilder
The npm package @react-querybuilder/material receives a total of 2,676 weekly downloads. As such, @react-querybuilder/material popularity was classified as popular.
We found that @react-querybuilder/material demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Create React App is officially deprecated due to React 19 issues and lack of maintenance—developers should switch to Vite or other modern alternatives.
Security News
Oracle seeks to dismiss fraud claims in the JavaScript trademark dispute, delaying the case and avoiding questions about its right to the name.
Security News
The Linux Foundation is warning open source developers that compliance with global sanctions is mandatory, highlighting legal risks and restrictions on contributions.