redux-saga-final-form

https://github.com/Short-io/redux-saga-final-form#readme

Usage no npm install needed!

<script type="module">
  import reduxSagaFinalForm from 'https://cdn.skypack.dev/redux-saga-final-form';
</script>

README

redux-saga-final-form

Simple integration between react-final-form and redux-saga

This module is created as a replacement for unsupported redux-promise-listener or react-redux-promise-listener

Installation

npm install --save redux-saga-final-form

or

yarn add redux-saga-final-form

Usage

in your form component

import { useListener } from 'redux-saga-final-form';
import { Form } from "react-final-form";

export const MyComponent = () => {
    const formListener = useListener(SUBMIT_START_ACTION, SUBMIT_SUCCESS_ACTION, SUBMIT_FAIL_ACTION);
    return (
        <Form
            onSubmit={formListener}
            render={(formRenderProps) => (
                <form onSubmit={formRenderProps.handleSubmit}>
                    ...
                </form>
            )}
        />
    );
};

and in your sagas:

import { handleListeners } from "redux-saga-final-form";
import createSagaMiddleware from "redux-saga";

const store = createStore(
  reducer,
  initialState,
  applyMiddleware(...otherMiddleware, handleListeners)
)

SUBMIT_START_ACTION example:

export const submitStartAction = (payload: { formField1: string }) => ({
    type: SUBMIT_START_ACTION
    payload
});