Skip to content

Commit a10ffeb

Browse files
fix: [DHIS2-20478] prevent search when there are errors in the search form fields (#4408)
1 parent 4b338c6 commit a10ffeb

File tree

3 files changed

+10
-3
lines changed

3 files changed

+10
-3
lines changed

src/core_modules/capture-core/components/Pages/common/TEIRelationshipsWidget/TeiSearch/SearchOrgUnitSelector/SearchOrgUnitSelectorRefHandler.component.tsx

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ export const SearchOrgUnitSelectorRefHandler = (props: Props) => {
1313
const { innerRef, ...passOnProps } = props;
1414
return (
1515
<SearchOrgUnitSelector
16+
ref={innerRef}
1617
{...passOnProps}
1718
/>
1819
);

src/core_modules/capture-core/components/Pages/common/TEIRelationshipsWidget/TeiSearch/TeiSearchForm/TeiSearchForm.component.tsx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -75,8 +75,8 @@ class SearchFormPlain extends React.Component<Props, State> {
7575
}
7676

7777
handleSearchAttempt = () => {
78-
const isFormValid = this.validateForm();
79-
if (!isFormValid) {
78+
const { error: validateFormError, isValid: isFormValid } = this.validateForm();
79+
if (validateFormError || !isFormValid) {
8080
this.props.onSearchValidationFailed(this.props.id, this.props.searchGroupId);
8181
return;
8282
}
@@ -114,7 +114,7 @@ class SearchFormPlain extends React.Component<Props, State> {
114114

115115
let isValid = this.formInstance.validateFormScrollToFirstFailedField({});
116116

117-
if (isValid && !this.props.searchGroup.unique) isValid = this.orgUnitSelectorInstance?.validateAndScrollToIfFailed();
117+
if (isValid && !this.props.searchGroup.unique) isValid = this.orgUnitSelectorInstance.validateAndScrollToIfFailed();
118118

119119
if (isValid && !this.props.searchGroup.unique) isValid = this.validNumberOfAttributes();
120120

src/core_modules/capture-core/components/SearchBox/SearchForm/SearchForm.component.tsx

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -155,6 +155,12 @@ const SearchFormIndex = ({
155155

156156
if (isValid) {
157157
setError(false);
158+
159+
const isValidForm = formReference[formId].validateFormScrollToFirstFailedField({});
160+
if (!isValidForm) {
161+
return;
162+
}
163+
158164
saveCurrentFormData({ searchScopeType, searchScopeId, formId, formsValues, searchGroupsForSelectedScope });
159165
switch (searchScopeType) {
160166
case searchScopes.PROGRAM:

0 commit comments

Comments
 (0)