Skip to content

Commit 8b27c8d

Browse files
authored
Merge pull request #49791 from etCoderDysto/report-fields-validation
fix: Display error message when saving the same report list value
2 parents 867bbb4 + d23de9c commit 8b27c8d

File tree

1 file changed

+15
-3
lines changed

1 file changed

+15
-3
lines changed

src/pages/workspace/reportFields/ReportFieldsAddListValuePage.tsx

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import type {StackScreenProps} from '@react-navigation/stack';
2-
import React, {useCallback} from 'react';
2+
import React, {useCallback, useMemo} from 'react';
33
import {Keyboard} from 'react-native';
44
import {useOnyx} from 'react-native-onyx';
55
import FormProvider from '@components/Form/FormProvider';
@@ -14,6 +14,7 @@ import useThemeStyles from '@hooks/useThemeStyles';
1414
import * as ReportField from '@libs/actions/Policy/ReportField';
1515
import Navigation from '@libs/Navigation/Navigation';
1616
import * as PolicyUtils from '@libs/PolicyUtils';
17+
import * as ReportUtils from '@libs/ReportUtils';
1718
import * as WorkspaceReportFieldUtils from '@libs/WorkspaceReportFieldUtils';
1819
import type {SettingsNavigatorParamList} from '@navigation/types';
1920
import AccessOrNotFoundWrapper from '@pages/workspace/AccessOrNotFoundWrapper';
@@ -37,10 +38,21 @@ function ReportFieldsAddListValuePage({
3738
const {inputCallbackRef} = useAutoFocusInput();
3839
const [formDraft] = useOnyx(ONYXKEYS.FORMS.WORKSPACE_REPORT_FIELDS_FORM_DRAFT);
3940

41+
const listValues = useMemo(() => {
42+
let reportFieldListValues: string[];
43+
if (reportFieldID) {
44+
const reportFieldKey = ReportUtils.getReportFieldKey(reportFieldID);
45+
reportFieldListValues = Object.values(policy?.fieldList?.[reportFieldKey]?.values ?? {});
46+
} else {
47+
reportFieldListValues = formDraft?.[INPUT_IDS.LIST_VALUES] ?? [];
48+
}
49+
return reportFieldListValues;
50+
}, [formDraft, policy?.fieldList, reportFieldID]);
51+
4052
const validate = useCallback(
4153
(values: FormOnyxValues<typeof ONYXKEYS.FORMS.WORKSPACE_REPORT_FIELDS_FORM>) =>
42-
WorkspaceReportFieldUtils.validateReportFieldListValueName(values[INPUT_IDS.VALUE_NAME].trim(), '', formDraft?.[INPUT_IDS.LIST_VALUES] ?? [], INPUT_IDS.VALUE_NAME),
43-
[formDraft],
54+
WorkspaceReportFieldUtils.validateReportFieldListValueName(values[INPUT_IDS.VALUE_NAME].trim(), '', listValues, INPUT_IDS.VALUE_NAME),
55+
[listValues],
4456
);
4557

4658
const createValue = useCallback(

0 commit comments

Comments
 (0)