Skip to content

Commit ebbe9fa

Browse files
Fix 1655
1 parent c37e661 commit ebbe9fa

2 files changed

Lines changed: 23 additions & 13 deletions

File tree

src/controls/dynamicForm/dynamicField/DynamicField.tsx

Lines changed: 22 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,8 @@ export class DynamicField extends React.Component<IDynamicFieldProps, IDynamicFi
3232
spfxContext: { pageContext: this.props.context.pageContext }
3333
});
3434
this.state = {
35-
changedValue: props.defaultValue !== undefined || props.defaultValue !== '' || props.defaultValue !== null || !this.isEmptyArray(props.defaultValue) ? props.defaultValue : null
35+
changedValue: props.defaultValue !== undefined || props.defaultValue !== '' || props.defaultValue !== null || !this.isEmptyArray(props.defaultValue) ? props.defaultValue : null,
36+
listItemId: props.listItemId
3637
};
3738
}
3839

@@ -642,22 +643,27 @@ export class DynamicField extends React.Component<IDynamicFieldProps, IDynamicFi
642643

643644
private getRequiredErrorText = (): string => {
644645
const {
645-
changedValue
646+
changedValue,
647+
listItemId
646648
} = this.state;
647-
const {value,newValue,required}=this.props;
648-
if(newValue===undefined){
649-
return required && (changedValue === undefined || changedValue === '' || changedValue === null || this.isEmptyArray(changedValue))
650-
&& (value === undefined || value === '' || value === null || this.isEmptyArray(value))? strings.DynamicFormRequiredErrorMessage : null;
651-
}
652-
else{
653-
return required && (changedValue === undefined || changedValue === '' || changedValue === null || this.isEmptyArray(changedValue)) ? strings.DynamicFormRequiredErrorMessage : null;
649+
const { value, newValue, required } = this.props;
650+
651+
if (listItemId !== undefined && listItemId !== '' && listItemId !== null) {
652+
if (newValue === undefined) {
653+
return required && (changedValue === undefined || changedValue === '' || changedValue === null || this.isEmptyArray(changedValue))
654+
&& (value === undefined || value === '' || value === null || this.isEmptyArray(value)) ? strings.DynamicFormRequiredErrorMessage : null;
655+
} else {
656+
return required && (changedValue === undefined || changedValue === '' || changedValue === null || this.isEmptyArray(changedValue)) ? strings.DynamicFormRequiredErrorMessage : null;
657+
}
654658
}
655-
659+
660+
return null;
656661
}
657662

658663
private getNumberErrorText = (): string => {
659664
const {
660-
changedValue
665+
changedValue,
666+
listItemId
661667
} = this.state;
662668
const {
663669
cultureName,
@@ -674,10 +680,13 @@ export class DynamicField extends React.Component<IDynamicFieldProps, IDynamicFi
674680
return strings.DynamicFormRequiredErrorMessage;
675681
}
676682

677-
if (required && newValue===undefined && (value === undefined || value === '' || value === null || this.isEmptyArray(value)) && (changedValue === undefined || changedValue === '' || changedValue === null || this.isEmptyArray(changedValue)) ) {
678-
return strings.DynamicFormRequiredErrorMessage;
683+
if(listItemId !== undefined && listItemId !== '' && listItemId !== null){
684+
if (required && newValue===undefined && (value === undefined || value === '' || value === null || this.isEmptyArray(value)) && (changedValue === undefined || changedValue === '' || changedValue === null || this.isEmptyArray(changedValue)) ) {
685+
return strings.DynamicFormRequiredErrorMessage;
686+
}
679687
}
680688

689+
681690
let minValue = minimumValue !== undefined && minimumValue !== -(Number.MAX_VALUE) ? minimumValue : undefined;
682691
let maxValue = maximumValue !== undefined && maximumValue !== Number.MAX_VALUE ? maximumValue : undefined;
683692

src/controls/dynamicForm/dynamicField/IDynamicFieldState.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,4 +3,5 @@ export interface IDynamicFieldState {
33
* The options available to the listPicker
44
*/
55
changedValue: any; // eslint-disable-line @typescript-eslint/no-explicit-any
6+
listItemId:any; // eslint-disable-line @typescript-eslint/no-explicit-any
67
}

0 commit comments

Comments
 (0)