Skip to content

Commit f6f6f45

Browse files
authored
fix: [DHIS2-20665] show correctly filtered option set (#4420)
fix: add `filteredOptions` to component state object
1 parent e14b0bd commit f6f6f45

File tree

1 file changed

+12
-8
lines changed

1 file changed

+12
-8
lines changed

src/core_modules/capture-core/components/D2Form/field/Components/internal/withRulesOptionVisibilityHandler/withRulesOptionVisibilityHandler.tsx

Lines changed: 12 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -38,9 +38,13 @@ type Props = {
3838
rulesOptionsVisibility: {[key: typeof effectKeys[keyof typeof effectKeys]]: Array<any> },
3939
}
4040

41+
type State = {
42+
filteredOptions: any;
43+
}
44+
4145
const getCreateRulesOptionsVisibilityHandlerHOC =
4246
(InnerComponent: React.ComponentType<any>) =>
43-
(class CreateRulesOptionsVisibilityHandlerHOC extends React.Component<Props> {
47+
(class CreateRulesOptionsVisibilityHandlerHOC extends React.Component<Props, State> {
4448
static getFilteredOptions = (props: Props) => {
4549
const { options, rulesOptionsVisibility, optionGroups } = props;
4650

@@ -51,18 +55,18 @@ const getCreateRulesOptionsVisibilityHandlerHOC =
5155
return options.filter(option => filters.every(f => f(option)));
5256
}
5357

54-
filteredOptions: any;
55-
5658
constructor(props: Props) {
5759
super(props);
58-
59-
this.filteredOptions = CreateRulesOptionsVisibilityHandlerHOC.getFilteredOptions(props);
60+
this.state = {
61+
filteredOptions: CreateRulesOptionsVisibilityHandlerHOC.getFilteredOptions(this.props),
62+
};
6063
}
6164

62-
6365
componentDidUpdate(prevProps: Props) {
6466
if (this.props.rulesOptionsVisibility !== prevProps.rulesOptionsVisibility) {
65-
this.filteredOptions = CreateRulesOptionsVisibilityHandlerHOC.getFilteredOptions(this.props);
67+
this.setState({
68+
filteredOptions: CreateRulesOptionsVisibilityHandlerHOC.getFilteredOptions(this.props),
69+
});
6670
}
6771
}
6872

@@ -71,7 +75,7 @@ const getCreateRulesOptionsVisibilityHandlerHOC =
7175

7276
return (
7377
<InnerComponent
74-
options={this.filteredOptions}
78+
options={this.state.filteredOptions}
7579
{...passOnProps}
7680
/>
7781
);

0 commit comments

Comments
 (0)