Skip welcome & menu and move to editor
Welcome to JS Bin
Load cached copy from
 
<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width">
  <title>JS Bin</title>
  <script src="https://cdnjs.cloudflare.com/ajax/libs/babel-core/6.1.19/browser.js"></script>
  <script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.4.1/react.js"></script>
  <script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.4.1/react-dom.js"></script>
  <script src="https://cdnjs.cloudflare.com/ajax/libs/redux/3.6.0/redux.js"></script>
  <script src="https://cdnjs.cloudflare.com/ajax/libs/react-redux/5.0.1/react-redux.js"></script>
  <script src="https://cdnjs.cloudflare.com/ajax/libs/redux-form/6.4.3/redux-form.js"></script>
</head>
<body>
  <div id="app"></div>
</body>
</html>
 
const { FieldArray, Field } = ReduxForm;
class Kitchens extends React.Component {
    render() {
        const { fields, meta: { touched, error } } = this.props;
        console.log(fields);
        const cls = 'kwfUp-cartWizardCartKitchens';
        return (
            <div className={cls}>
                <ul>
                    <li>
                        <button type="button" onClick={() => fields.push({})}>Add Member</button>
                        {touched && error && <span>{error}</span>}
                    </li>
                    {fields.map((member, index) =>
                        <li key={index}>
                            <button
                                type="button"
                                title="Remove Member"
                                onClick={() => fields.remove(index)}/>
                            <h4>Member #{index + 1}</h4>
                        </li>
                    )}
                </ul>
            </div>
        )
    }
}
const validate = values => {
    const errors = {};
    return errors;
};
class Cart extends React.Component {
    render() {
        const cls = 'kwfUp-cartWizardCart';
        return (
            <div className={cls}>
                <form>
                    <FieldArray name="kitchens" component={Kitchens} />
                    <div>
                        <button type="submit" className="next">Next</button>
                    </div>
                </form>
            </div>
        )
    }
}
const CartForm = ReduxForm.reduxForm({
    form: 'wizard',
    destroyOnUnmount: false,
    forceUnregisterOnUnmount: true,
    validate
})(Cart);
class Wizard extends React.Component {
    render() {
            const step = 1;
        const cls = 'kwfUp-cartWizard';
        return (
            <div className={cls}>
                {step === 1 && <CartForm />}
            </div>
        )
    }
}
const { createStore, combineReducers } = Redux;
const step = 1;
const formReducer = ReduxForm.reducer;
const store = createStore(combineReducers({
  step,
  formReducer
}));
store.subscribe(() => {
  console.log(store.getState());
});
const initialize = ReduxForm.initialize;
store.dispatch(initialize('wizard', {
  kitchens: [{
    "id": "2-1-1-1-5-9-2", "deliveryOption": "selfservice"
  },{
    "id": "2-1-6-1-5-9-2","deliveryOption": "selfservice"
  }]
}));
const Provider = ReactRedux.Provider;
ReactDOM.render(
        <Provider store={store}>
            <Wizard />
        </Provider>,
        document.getElementById('app')
    );
Output

You can jump to the latest bin by adding /latest to your URL

Dismiss x
public
Bin info
kaufmopro
0viewers