apollo-form
Version:
Form state manager
31 lines (30 loc) • 1.32 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const react_1 = __importDefault(require("react"));
const useFormCtx_1 = __importDefault(require("../hooks/useFormCtx"));
const utils_1 = require("../utils");
function FirstError(props) {
const apolloForm = useFormCtx_1.default();
const submitted = apolloForm.useState(s => s.isSubmitted);
const errors = apolloForm.useState(s => s.errors);
const existsChanges = apolloForm.useState(s => s.existsChanges);
const responseMessage = apolloForm.useState(s => s.responseMessage);
const Component = (props.children ||
(({ error }) => react_1.default.createElement("span", null, error)));
let error = undefined;
if (responseMessage && !existsChanges) {
error = responseMessage;
}
const firstErrorMessage = utils_1.firstError(errors);
if (((props.showIfSubmitted && submitted) || true) && firstErrorMessage) {
error = firstErrorMessage;
}
if (!error) {
return react_1.default.createElement(react_1.default.Fragment, null);
}
return react_1.default.createElement(Component, { error: error });
}
exports.default = FirstError;