@undermuz/use-form
Version:
React library for build forms
196 lines (194 loc) • 5.77 kB
JavaScript
;
var __defProp = Object.defineProperty;
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
var __getOwnPropNames = Object.getOwnPropertyNames;
var __hasOwnProp = Object.prototype.hasOwnProperty;
var __export = (target, all) => {
for (var name in all)
__defProp(target, name, { get: all[name], enumerable: true });
};
var __copyProps = (to, from, except, desc) => {
if (from && typeof from === "object" || typeof from === "function") {
for (let key of __getOwnPropNames(from))
if (!__hasOwnProp.call(to, key) && key !== except)
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
}
return to;
};
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
// src/useForm/helpers.ts
var helpers_exports = {};
__export(helpers_exports, {
isFormHasErrors: () => isFormHasErrors,
useHasFormErrors: () => useHasFormErrors,
useIsFormValid: () => useIsFormValid,
useSetCustomErrorByName: () => useSetCustomErrorByName,
useSetCustomErrors: () => useSetCustomErrors,
useSetErrors: () => useSetErrors,
useSetFieldTouched: () => useSetFieldTouched,
useSetFieldValue: () => useSetFieldValue,
useSetTests: () => useSetTests,
useSetTouched: () => useSetTouched,
useSetValidate: () => useSetValidate,
useSetValues: () => useSetValues,
useValidate: () => useValidate
});
module.exports = __toCommonJS(helpers_exports);
var import_react = require("react");
var import_reducer = require("./reducer.cjs");
var isFormHasErrors = (settings, store, checkOnlyFilled = true) => {
const { debug } = settings;
const state = store.getState();
const { validate, touched, fields } = state;
const newErrors = validate(
{
...state,
touched: checkOnlyFilled ? touched : Object.keys(fields)
},
debug
);
return [Object.keys(newErrors).length > 0, newErrors];
};
var useHasFormErrors = (settings, store, _dispatch) => {
return (0, import_react.useCallback)((checkOnlyFilled = true) => {
return isFormHasErrors(settings, store, checkOnlyFilled);
}, []);
};
var useIsFormValid = (settings, store, _dispatch) => {
return (0, import_react.useCallback)((checkOnlyFilled = true) => {
return !isFormHasErrors(settings, store, checkOnlyFilled)[0];
}, []);
};
var useValidate = (_settings, _store, dispatch) => {
return (0, import_react.useCallback)((checkOnlyFilled = true) => {
dispatch({
type: import_reducer.FORM_ACTIONS.VALIDATE_FORM,
payload: {},
silent: false,
checkOnlyFilled
});
}, []);
};
var useSetTouched = (_settings, _store, dispatch) => {
return (0, import_react.useCallback)(
(newTouched, silent = false, checkOnlyFilled = true) => {
dispatch({
type: import_reducer.FORM_ACTIONS.SET_TOUCHED,
payload: { touched: newTouched },
silent,
checkOnlyFilled
});
},
[]
);
};
var useSetValues = (_settings, _store, dispatch) => {
return (0, import_react.useCallback)(
(newValues, silent = false, checkOnlyFilled = true, type = "system") => {
dispatch({
type: import_reducer.FORM_ACTIONS.SET_VALUES,
payload: { values: newValues, type },
silent,
checkOnlyFilled
});
},
[]
);
};
var useSetTests = (_settings, _store, dispatch) => {
return (0, import_react.useCallback)(
(newTests, silent = false, checkOnlyFilled = true) => {
dispatch({
type: import_reducer.FORM_ACTIONS.SET_TESTS,
payload: { tests: newTests },
silent,
checkOnlyFilled
});
},
[]
);
};
var useSetErrors = (_settings, _store, dispatch) => {
return (0, import_react.useCallback)((newErrors) => {
dispatch({
type: import_reducer.FORM_ACTIONS.SET_ERRORS,
payload: { errors: newErrors }
});
}, []);
};
var useSetCustomErrors = (_settings, _store, dispatch) => {
return (0, import_react.useCallback)((newErrors) => {
dispatch({
type: import_reducer.FORM_ACTIONS.SET_CUSTOM_ERRORS,
payload: { errors: newErrors }
});
}, []);
};
var useSetCustomErrorByName = (_settings, _store, dispatch) => {
return (0, import_react.useCallback)((name, value) => {
dispatch({
type: import_reducer.FORM_ACTIONS.SET_CUSTOM_ERROR_FIELD,
payload: {
name,
value
}
});
}, []);
};
var useSetFieldValue = (_settings, _store, dispatch) => {
return (0, import_react.useCallback)(
(name, value, silent = false, checkOnlyFilled = true, type = "system") => {
dispatch({
type: import_reducer.FORM_ACTIONS.SET_VALUE,
payload: { name, value, type },
silent,
checkOnlyFilled
});
},
[]
);
};
var useSetFieldTouched = (_settings, _store, dispatch) => {
return (0, import_react.useCallback)(
(name, value = true, silent = false) => {
dispatch({
type: import_reducer.FORM_ACTIONS.SET_TOUCHED_FIELD,
payload: {
name,
value
},
silent
});
},
[]
);
};
var useSetValidate = (_settings, _store, dispatch) => {
return (0, import_react.useCallback)(
(newValidate, silent = false, checkOnlyFilled = true) => {
dispatch({
type: import_reducer.FORM_ACTIONS.SET_VALIDATE,
payload: newValidate,
silent,
checkOnlyFilled
});
},
[]
);
};
// Annotate the CommonJS export names for ESM import in node:
0 && (module.exports = {
isFormHasErrors,
useHasFormErrors,
useIsFormValid,
useSetCustomErrorByName,
useSetCustomErrors,
useSetErrors,
useSetFieldTouched,
useSetFieldValue,
useSetTests,
useSetTouched,
useSetValidate,
useSetValues,
useValidate
});