Add selector for errors

This commit is contained in:
soupette 2018-11-21 12:57:20 +01:00
parent bba6f9d85f
commit a225d144c6
18 changed files with 30 additions and 10 deletions

View File

@ -139,6 +139,7 @@ class InputAddonWithErrors extends React.Component { // eslint-disable-line reac
<InputErrors
className={errorsClassName}
errors={!noErrorsDescription && this.state.errors || []}
name={name}
style={errorsStyle}
/>
{spacer}

View File

@ -117,6 +117,7 @@ class InputCheckboxWithErrors extends React.Component {
<InputErrors
className={errorsClassName}
errors={this.state.errors}
name={name}
style={errorsStyle}
/>
{spacer}

View File

@ -137,6 +137,7 @@ class InputDateWithErrors extends React.Component { // eslint-disable-line react
<InputErrors
className={errorsClassName}
errors={!noErrorsDescription && this.state.errors || []}
name={name}
style={errorsStyle}
/>
{spacer}

View File

@ -135,6 +135,7 @@ class InputEmailWithErrors extends React.Component { // eslint-disable-line reac
<InputErrors
className={errorsClassName}
errors={!noErrorsDescription && this.state.errors || []}
name={name}
style={errorsStyle}
/>
{spacer}

View File

@ -23,6 +23,7 @@ function InputErrors(props) {
styles.errorContainer,
!isEmpty(props.className) && props.className,
)}
id={`errorOf${props.name}`}
key={key}
style={divStyle}
>
@ -37,12 +38,14 @@ function InputErrors(props) {
InputErrors.defaultProps = {
className: '',
errors: [],
name: '',
style: {},
};
InputErrors.propTypes = {
className: PropTypes.string,
errors: PropTypes.array,
name: PropTypes.string,
style: PropTypes.object,
};

View File

@ -117,6 +117,7 @@ class InputFileWithErrors extends React.PureComponent {
<InputErrors
className={errorsClassName}
errors={!noErrorsDescription && this.state.errors || []}
name={name}
style={errorsStyle}
/>
{spacer}

View File

@ -131,6 +131,7 @@ class InputNumberWithErrors extends React.Component { // eslint-disable-line rea
<InputErrors
className={errorsClassName}
errors={!noErrorsDescription && this.state.errors || []}
name={name}
style={errorsStyle}
/>
{spacer}

View File

@ -133,6 +133,7 @@ class InputPasswordWithErrors extends React.Component {
<InputErrors
className={errorsClassName}
errors={!noErrorsDescription && this.state.errors || []}
name={name}
style={errorsStyle}
/>
{spacer}

View File

@ -135,6 +135,7 @@ class InputSearchWithErrors extends React.Component { // eslint-disable-line rea
<InputErrors
className={errorsClassName}
errors={!noErrorsDescription && this.state.errors || []}
name={name}
style={errorsStyle}
/>
{spacer}

View File

@ -117,6 +117,7 @@ class InputSelectWithErrors extends React.Component {
<InputErrors
className={errorsClassName}
errors={this.state.errors}
name={name}
style={errorsStyle}
/>
</div>

View File

@ -131,6 +131,7 @@ class InputTextAreaWithErrors extends React.Component { // eslint-disable-line r
<InputErrors
className={errorsClassName}
errors={!noErrorsDescription && this.state.errors || []}
name={name}
style={errorsStyle}
/>
{spacer}

View File

@ -132,6 +132,7 @@ class InputTextWithErrors extends React.Component { // eslint-disable-line react
<InputErrors
className={errorsClassName}
errors={!noErrorsDescription && this.state.errors || []}
name={name}
style={errorsStyle}
/>
{spacer}

View File

@ -105,6 +105,7 @@ class InputToggleWithErrors extends React.Component {
<InputErrors
className={errorsClassName}
errors={!noErrorsDescription && this.state.errors || []}
name={name}
style={errorsStyle}
/>
{spacer}

View File

@ -51,6 +51,7 @@ class InputJSONWithErrors extends React.Component { // eslint-disable-line react
this.setErrors(errors);
}
}
setErrors = errors => this.setState({ errors });
setInit = () => this.setState({ hasInitialValue: true });
@ -143,6 +144,7 @@ class InputJSONWithErrors extends React.Component { // eslint-disable-line react
<InputErrors
className={errorsClassName}
errors={!noErrorsDescription && this.state.errors || []}
name={name}
style={errorsStyle}
/>
{spacer}

View File

@ -239,7 +239,7 @@ class PreviewWysiwyg extends React.PureComponent {
onChange={() => {}}
placeholder={placeholder}
/>
<input className={styles.editorInput} value="" tabIndex="-1" />
<input className={styles.editorInput} value="" onChange={() => {}} tabIndex="-1" />
</div>
);
}

View File

@ -137,6 +137,7 @@ class WysiwygWithErrors extends React.Component { // eslint-disable-line react/p
<InputErrors
className={errorsClassName}
errors={!noErrorsDescription && this.state.errors || []}
name={name}
style={errorsStyle}
/>
{spacer}

View File

@ -199,7 +199,7 @@ export class EditPage extends React.Component {
handleBlur = ({ target }) => {
const defaultValue = get(this.getModelAttribute(target.name), 'default');
if (isEmpty(target.value) && defaultValue && target.value !== false) {
return this.props.changeData({
target: {

View File

@ -1,16 +1,18 @@
import {
findIndex,
forEach,
isObject,
includes,
isArray,
isBoolean,
isEmpty,
isNaN,
isNull,
isNumber,
isObject,
isUndefined,
map,
mapKeys,
includes,
reject,
isEmpty,
findIndex,
isUndefined,
isBoolean,
isNumber,
} from 'lodash';
/* eslint-disable consistent-return */
@ -101,7 +103,7 @@ function validate(value, validations) {
case 'type':
if (validationValue === 'json') {
try {
if (isObject(value) || isBoolean(value) || isNumber(value) || isArray(value)) {
if (isObject(value) || isBoolean(value) || isNumber(value) || isArray(value) || isNaN(value) || isNull(value)) {
value = JSON.parse(JSON.stringify(value));
} else {
errors.push({ id: 'content-manager.error.validation.json' });