mirror of
https://github.com/wassname/talk.git
synced 2026-07-13 03:02:30 +08:00
Multiple validations
This commit is contained in:
@@ -1,8 +1,7 @@
|
||||
import coralApi from 'coral-framework/helpers/response';
|
||||
import * as actions from '../constants/install';
|
||||
|
||||
// import validate from 'coral-framework/helpers/validate';
|
||||
// import errorMsj from 'coral-framework/helpers/error';
|
||||
import validate from 'coral-framework/helpers/validate';
|
||||
import errorMsj from 'coral-framework/helpers/error';
|
||||
|
||||
export const nextStep = () => ({type: actions.NEXT_STEP});
|
||||
export const previousStep = () => ({type: actions.PREVIOUS_STEP});
|
||||
@@ -12,35 +11,46 @@ const installRequest = () => ({type: actions.INSTALL_REQUEST});
|
||||
const installSuccess = () => ({type: actions.INSTALL_SUCCESS});
|
||||
const installFailure = error => ({type: actions.INSTALL_FAILURE, error});
|
||||
|
||||
export const submit = () => (dispatch, getState) => {
|
||||
const formData = getState().install.toJS().data;
|
||||
console.log('Handling Submit');
|
||||
console.log(formData.settings);
|
||||
const addError = (name, error) => ({type: actions.ADD_ERROR, name, error});
|
||||
const hasError = error => ({type: actions.HAS_ERROR, error});
|
||||
const clearErrors = () => ({type: actions.CLEAR_ERRORS});
|
||||
|
||||
if (!(formData.settings != null)) {
|
||||
return console.log('Validation Failed');
|
||||
export const submitSettings = () => (dispatch, getState) => {
|
||||
const formData = getState().install.toJS().data.settings;
|
||||
|
||||
if (!(formData != null)) {
|
||||
return dispatch(hasError());
|
||||
}
|
||||
|
||||
const empty = Object.keys(formData.settings).filter(name => {
|
||||
console.log(name);
|
||||
return !formData.settings[name].length;
|
||||
// Required Validation
|
||||
const empty = Object.keys(formData).filter(name => {
|
||||
const cond = !formData[name].length;
|
||||
|
||||
// Adding Error
|
||||
dispatch(addError(name, 'Please, fill this field '));
|
||||
return cond;
|
||||
});
|
||||
|
||||
console.log(
|
||||
empty
|
||||
);
|
||||
if (empty.length) {
|
||||
return dispatch(hasError('Please fill the form'));
|
||||
}
|
||||
|
||||
// const empty = Object.keys(formData.settings)
|
||||
// .filter(name => !formData[name].length)
|
||||
// RegExp Validation
|
||||
const validation = Object.keys(formData).filter(name => {
|
||||
const cond = !validate[name](formData[name]);
|
||||
if (cond) {
|
||||
// Adding Error
|
||||
dispatch(addError(name, errorMsj[name]));
|
||||
}
|
||||
|
||||
// console.log(
|
||||
// empty
|
||||
// )
|
||||
// if (empty.length) {
|
||||
// console.log('Validation Failed')
|
||||
// }
|
||||
// .filter(name => data[name])
|
||||
return cond;
|
||||
});
|
||||
|
||||
if (validation.length) {
|
||||
return dispatch(hasError('Please check the form'));
|
||||
}
|
||||
|
||||
return dispatch(clearErrors());
|
||||
};
|
||||
|
||||
export const install = () => dispatch => {
|
||||
|
||||
@@ -1,11 +1,12 @@
|
||||
export const NEXT_STEP = 'NEXT_STEP';
|
||||
export const PREVIOUS_STEP = 'PREVIOUS_STEP';
|
||||
export const GO_TO_STEP = 'GO_TO_STEP';
|
||||
export const PREVIOUS_STEP = 'PREVIOUS_STEP';
|
||||
export const ADD_ERROR = 'ADD_ERROR';
|
||||
export const HAS_ERROR = 'HAS_ERROR';
|
||||
export const SHOW_ERRORS = 'SHOW_ERRORS';
|
||||
export const CLEAR_ERRORS = 'CLEAR_ERRORS';
|
||||
export const INSTALL_REQUEST = 'INSTALL_REQUEST';
|
||||
export const INSTALL_SUCCESS = 'INSTALL_SUCCESS';
|
||||
export const INSTALL_FAILURE = 'INSTALL_FAILURE';
|
||||
export const SHOW_ERRORS = 'SHOW_ERRORS';
|
||||
export const HAS_ERROR = 'HAS_ERROR';
|
||||
export const UPDATE_FORMDATA_SETTINGS = 'UPDATE_FORMDATA_SETTINGS';
|
||||
export const UPDATE_FORMDATA_USER = 'UPDATE_FORMDATA_USER';
|
||||
export const ADD_ERROR = 'ADD_ERROR';
|
||||
export const UPDATE_FORMDATA_SETTINGS = 'UPDATE_FORMDATA_SETTINGS';
|
||||
|
||||
@@ -3,7 +3,7 @@ import {connect} from 'react-redux';
|
||||
import styles from './style.css';
|
||||
import {Wizard, WizardNav} from 'coral-ui';
|
||||
import {Layout} from '../../components/ui/Layout';
|
||||
import {nextStep, previousStep, goToStep, updateUserFormData, updateSettingsFormData, submit} from '../../actions/install';
|
||||
import {nextStep, previousStep, goToStep, updateUserFormData, updateSettingsFormData, submitSettings} from '../../actions/install';
|
||||
|
||||
import InitialStep from './components/Steps/InitialStep';
|
||||
import AddOrganizationName from './components/Steps/AddOrganizationName';
|
||||
@@ -47,7 +47,7 @@ const mapDispatchToProps = dispatch => ({
|
||||
},
|
||||
handleSubmit: e => {
|
||||
e.preventDefault();
|
||||
dispatch(submit());
|
||||
dispatch(submitSettings());
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
@@ -3,10 +3,20 @@ import {Map} from 'immutable';
|
||||
import * as actions from '../constants/install';
|
||||
|
||||
const initialState = Map({
|
||||
data: Map(),
|
||||
errors: Map(),
|
||||
data: Map({
|
||||
settings: Map({
|
||||
organizationName: ''
|
||||
}),
|
||||
user: Map({
|
||||
displayName: ''
|
||||
})
|
||||
}),
|
||||
errors: Map({
|
||||
organizationName: ''
|
||||
}),
|
||||
showErrors: false,
|
||||
hasError: false,
|
||||
error: null,
|
||||
step: 0,
|
||||
navItems: [{
|
||||
text: '1. Add Organization Name',
|
||||
@@ -35,16 +45,16 @@ export default function install (state = initialState, action) {
|
||||
case actions.UPDATE_FORMDATA_USER:
|
||||
return state
|
||||
.setIn(['data', 'user', action.name], action.value);
|
||||
case actions.SHOW_ERRORS:
|
||||
return state
|
||||
.set('showErrors', action.show);
|
||||
case actions.HAS_ERROR:
|
||||
return state
|
||||
.set('hasError', action.has);
|
||||
.merge({
|
||||
hasError: true,
|
||||
showErrors: true
|
||||
});
|
||||
case actions.ADD_ERROR:
|
||||
return state
|
||||
.setIn(['errors', action.name], action.error);
|
||||
case actions.NO_ERROR:
|
||||
case actions.CLEAR_ERRORS:
|
||||
return state
|
||||
.set('errors', Map());
|
||||
default :
|
||||
|
||||
Reference in New Issue
Block a user