Skip to content

Commit 3d90562

Browse files
danyrojjDaniel Roytman
andauthored
Pass additional data to Rule children (#503)
* pass ruleID down to operator * add fieldConfig to be returned from operator's getMeta to be passed down as renderProps * pass rule id to Field and Widget * prop value shortcut * bump version 4.5.2 Co-authored-by: Daniel Roytman <daniel.roytman@forescout.com>
1 parent c6dddac commit 3d90562

File tree

8 files changed

+19
-9
lines changed

8 files changed

+19
-9
lines changed

modules/components/item/Rule.jsx

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -119,6 +119,7 @@ class Rule extends PureComponent {
119119
setField={!immutableFieldsMode ? this.props.setField : dummyFn}
120120
parentField={this.props.parentField}
121121
readonly={immutableFieldsMode}
122+
id={this.props.id}
122123
/>;
123124
}
124125

@@ -140,6 +141,7 @@ class Rule extends PureComponent {
140141
showOperatorLabel={showOperatorLabel}
141142
selectedFieldWidgetConfig={selectedFieldWidgetConfig}
142143
readonly={immutableOpsMode}
144+
id={this.props.id}
143145
/>;
144146
}
145147

@@ -162,6 +164,7 @@ class Rule extends PureComponent {
162164
setValue={!immutableValuesMode ? this.props.setValue : dummyFn}
163165
setValueSrc={!immutableValuesMode ? this.props.setValueSrc : dummyFn}
164166
readonly={immutableValuesMode}
167+
id={this.props.id}
165168
/>;
166169

167170
return (

modules/components/rule/Field.jsx

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -122,9 +122,10 @@ export default class Field extends PureComponent {
122122
}
123123

124124
render() {
125-
const {config, customProps, setField, readonly} = this.props;
125+
const {config, customProps, setField, readonly,id} = this.props;
126126
const {renderField} = config.settings;
127127
const renderProps = {
128+
id,
128129
config,
129130
customProps,
130131
readonly,

modules/components/rule/FieldWrapper.jsx

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import {Col} from "../utils";
55

66
export default class FieldWrapper extends PureComponent {
77
render() {
8-
const {config, selectedField, setField, parentField, classname, readonly} = this.props;
8+
const {config, selectedField, setField, parentField, classname, readonly,id} = this.props;
99
return (
1010
<Col className={classname}>
1111
{ config.settings.showLabels
@@ -18,6 +18,7 @@ export default class FieldWrapper extends PureComponent {
1818
setField={setField}
1919
customProps={config.settings.customFieldSelectProps}
2020
readonly={readonly}
21+
id={id}
2122
/>
2223
</Col>
2324
);

modules/components/rule/Operator.jsx

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ export default class Operator extends PureComponent {
5858

5959
return {
6060
placeholder, items,
61-
selectedKey, selectedKeys, selectedPath, selectedLabel, selectedOpts
61+
selectedKey, selectedKeys, selectedPath, selectedLabel, selectedOpts,fieldConfig
6262
};
6363
}
6464

@@ -78,9 +78,10 @@ export default class Operator extends PureComponent {
7878
}
7979

8080
render() {
81-
const {config, customProps, setOperator, readonly} = this.props;
81+
const {config, customProps, setOperator, readonly,id} = this.props;
8282
const {renderOperator} = config.settings;
8383
const renderProps = {
84+
id,
8485
config,
8586
customProps,
8687
readonly,

modules/components/rule/OperatorWrapper.jsx

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ export default class OperatorWrapper extends PureComponent {
77
render() {
88
const {
99
config, selectedField, selectedOperator, setOperator,
10-
selectedFieldPartsLabels, showOperator, showOperatorLabel, selectedFieldWidgetConfig, readonly
10+
selectedFieldPartsLabels, showOperator, showOperatorLabel, selectedFieldWidgetConfig, readonly,id
1111
} = this.props;
1212
const operator = showOperator
1313
&& <Col key={"operators-for-"+(selectedFieldPartsLabels || []).join("_")} className="rule--operator">
@@ -21,6 +21,7 @@ export default class OperatorWrapper extends PureComponent {
2121
selectedOperator={selectedOperator}
2222
setOperator={setOperator}
2323
readonly={readonly}
24+
id={id}
2425
/>
2526
</Col>;
2627
const hiddenOperator = showOperatorLabel

modules/components/rule/Widget.jsx

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ export default class Widget extends PureComponent {
2626
operator: PropTypes.string,
2727
readonly: PropTypes.bool,
2828
asyncListValues: PropTypes.array,
29+
id: PropTypes.string,
2930
//actions
3031
setValue: PropTypes.func,
3132
setValueSrc: PropTypes.func,
@@ -171,13 +172,13 @@ export default class Widget extends PureComponent {
171172
}
172173

173174
renderWidget = (delta, meta, props) => {
174-
const {config, isFuncArg, leftField, operator, value: values, valueError, readonly, parentField, parentFuncs} = props;
175+
const {config, isFuncArg, leftField, operator, value: values, valueError, readonly, parentField, parentFuncs, id} = props;
175176
const {settings} = config;
176177
const { widgets, iValues, aField } = meta;
177178
const value = isFuncArg ? iValues : values;
178179
const field = isFuncArg ? leftField : aField;
179180
const {valueSrc, valueLabel} = widgets[delta];
180-
181+
181182
const widgetLabel = settings.showLabels
182183
? <label className="rule--label">{valueLabel.label}</label>
183184
: null;
@@ -186,6 +187,7 @@ export default class Widget extends PureComponent {
186187
<div key={"widget-"+field+"-"+delta} className="widget--widget">
187188
{valueSrc == "func" ? null : widgetLabel}
188189
<WidgetFactory
190+
id={id}
189191
valueSrc={valueSrc}
190192
delta={delta}
191193
value={value}

modules/components/rule/WidgetFactory.jsx

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ export default ({
66
value: immValue, valueError: immValueError, asyncListValues,
77
isSpecialRange, fieldDefinition,
88
widget, widgetDefinition, widgetValueLabel, valueLabels, textSeparators, setValueHandler,
9-
config, field, operator, readonly, parentField, parentFuncs,
9+
config, field, operator, readonly, parentField, parentFuncs, id
1010
}) => {
1111
const {factory: widgetFactory, ...fieldWidgetProps} = widgetDefinition;
1212
const isConst = isFuncArg && fieldDefinition.valueSources && fieldDefinition.valueSources.length == 1 && fieldDefinition.valueSources[0] == "const";
@@ -45,6 +45,7 @@ export default ({
4545
setValue: setValueHandler,
4646
readonly: readonly,
4747
asyncListValues: asyncListValues,
48+
id,
4849
});
4950

5051
if (widget == "field") {

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "react-awesome-query-builder",
3-
"version": "4.5.1",
3+
"version": "4.5.2",
44
"description": "User-friendly query builder for React. Demo: https://ukrbublik.github.io/react-awesome-query-builder",
55
"keywords": [
66
"query-builder",

0 commit comments

Comments
 (0)