@braineet/ui
Version:
Braineet design system
30 lines • 959 B
JavaScript
import React, { useEffect, useCallback } from 'react';
import { useFormikContext } from 'formik';
import { jsx as _jsx } from "react/jsx-runtime";
var AutoSave = function AutoSave(_ref) {
var _ref$debounceMs = _ref.debounceMs,
debounceMs = _ref$debounceMs === void 0 ? 1000 : _ref$debounceMs,
isWebhook = _ref.isWebhook,
setWebhook = _ref.setWebhook;
var formik = useFormikContext();
var debouncedSubmit = useCallback(function () {
formik.submitForm();
}, [formik.submitForm, debounceMs]);
useEffect(function () {
return function () {
if (!isWebhook) {
var handler = setTimeout(debouncedSubmit, debounceMs);
return function () {
clearTimeout(handler);
};
}
setWebhook(false);
};
}, [debouncedSubmit, formik.values]);
return /*#__PURE__*/_jsx("div", {});
};
AutoSave.defaultProps = {
setWebhook: function setWebhook() {},
isWebhook: false
};
export default AutoSave;