@algolia/satellite 1.0.0 → 1.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/AutoComplete/AutoComplete.d.ts +1 -1
- package/dist/cjs/AutoComplete/AutoComplete.js +49 -26
- package/dist/cjs/AutoComplete/AutoComplete.tailwind.js +9 -1
- package/dist/cjs/AutoComplete/types.d.ts +1 -0
- package/dist/cjs/Checkbox/Checkbox.d.ts +1 -1
- package/dist/cjs/Checkbox/Checkbox.js +21 -13
- package/dist/cjs/Checkbox/Checkbox.tailwind.js +8 -2
- package/dist/cjs/DatePicker/DatePicker/DatePicker.d.ts +4 -2
- package/dist/cjs/DatePicker/DatePicker/DatePicker.js +18 -7
- package/dist/cjs/DatePicker/components/Display.d.ts +3 -3
- package/dist/cjs/DatePicker/components/Display.js +16 -5
- package/dist/cjs/Dropzone/Dropzone.d.ts +4 -2
- package/dist/cjs/Dropzone/Dropzone.js +23 -12
- package/dist/cjs/Field/Field.d.ts +1 -0
- package/dist/cjs/Field/Field.js +63 -11
- package/dist/cjs/Field/FieldContext.d.ts +3 -0
- package/dist/cjs/Field/useField.d.ts +4 -1
- package/dist/cjs/Field/useField.js +17 -1
- package/dist/cjs/Form/Form.d.ts +16 -0
- package/dist/cjs/Form/Form.js +140 -0
- package/dist/cjs/Form/FormContext.d.ts +13 -0
- package/dist/cjs/Form/FormContext.js +8 -0
- package/dist/cjs/Form/index.d.ts +3 -0
- package/dist/cjs/Form/index.js +27 -0
- package/dist/cjs/Form/stories/AsynchronousValidation.js +396 -0
- package/dist/cjs/Form/stories/Complex.js +928 -0
- package/dist/cjs/Form/stories/DependentFieldsValidation.js +249 -0
- package/dist/cjs/Form/stories/DirtyFields.js +339 -0
- package/dist/cjs/Form/stories/DynamicFieldsValidation.js +425 -0
- package/dist/cjs/Form/stories/FieldArrays.js +549 -0
- package/dist/cjs/Form/stories/ValidationStrategies.js +455 -0
- package/dist/cjs/Form/stories/utils/useFormikAutoFocusOnError.js +22 -0
- package/dist/cjs/Form/useForm.d.ts +1 -0
- package/dist/cjs/Form/useForm.js +11 -0
- package/dist/cjs/Input/Input.js +22 -9
- package/dist/cjs/Input/Input.tailwind.js +7 -2
- package/dist/cjs/Pagination/DotPagination/DotPagination.d.ts +1 -1
- package/dist/cjs/RadioGroup/RadioButton.d.ts +1 -1
- package/dist/cjs/RadioGroup/RadioButton.js +16 -3
- package/dist/cjs/RadioGroup/RadioButton.tailwind.js +23 -0
- package/dist/cjs/RadioGroup/RadioGroup.d.ts +7 -5
- package/dist/cjs/RadioGroup/RadioGroup.js +78 -16
- package/dist/cjs/RadioGroup/{RadiogroupContext.d.ts → RadioGroupContext.d.ts} +8 -1
- package/dist/cjs/RangeSlider/RangeSlider.d.ts +2 -3
- package/dist/cjs/RangeSlider/RangeSlider.js +27 -10
- package/dist/cjs/Satellite/locale.d.ts +2 -0
- package/dist/cjs/Select/Select.js +39 -6
- package/dist/cjs/Select/Select.tailwind.js +19 -0
- package/dist/cjs/Stepper/Step.js +2 -2
- package/dist/cjs/Switch/Switch.js +2 -2
- package/dist/cjs/Switch/SwitchOption.js +3 -3
- package/dist/cjs/Tables/DataTable/DataTable.d.ts +1 -1
- package/dist/cjs/Tag/Tag.d.ts +1 -1
- package/dist/cjs/TextArea/TextArea.d.ts +1 -0
- package/dist/cjs/TextArea/TextArea.js +47 -8
- package/dist/cjs/TextArea/TextArea.tailwind.js +41 -4
- package/dist/cjs/Toggle/Toggle.d.ts +1 -1
- package/dist/cjs/Toggle/Toggle.js +23 -6
- package/dist/cjs/Toggle/Toggle.tailwind.js +9 -0
- package/dist/cjs/Tooltip/Tooltip.d.ts +1 -1
- package/dist/cjs/index.d.ts +1 -0
- package/dist/cjs/index.js +12 -0
- package/dist/cjs/utils/isCssPropertySupported.d.ts +1 -1
- package/dist/cjs/utils/mergeRefs.d.ts +2 -0
- package/dist/cjs/utils/mergeRefs.js +17 -0
- package/dist/esm/AutoComplete/AutoComplete.d.ts +1 -1
- package/dist/esm/AutoComplete/AutoComplete.js +52 -27
- package/dist/esm/AutoComplete/AutoComplete.tailwind.js +9 -1
- package/dist/esm/AutoComplete/types.d.ts +1 -0
- package/dist/esm/Checkbox/Checkbox.d.ts +1 -1
- package/dist/esm/Checkbox/Checkbox.js +21 -13
- package/dist/esm/Checkbox/Checkbox.tailwind.js +8 -2
- package/dist/esm/DatePicker/DatePicker/DatePicker.d.ts +4 -2
- package/dist/esm/DatePicker/DatePicker/DatePicker.js +19 -8
- package/dist/esm/DatePicker/components/Display.d.ts +3 -3
- package/dist/esm/DatePicker/components/Display.js +15 -5
- package/dist/esm/Dropzone/Dropzone.d.ts +4 -2
- package/dist/esm/Dropzone/Dropzone.js +24 -13
- package/dist/esm/Field/Field.d.ts +1 -0
- package/dist/esm/Field/Field.js +64 -12
- package/dist/esm/Field/FieldContext.d.ts +3 -0
- package/dist/esm/Field/useField.d.ts +4 -1
- package/dist/esm/Field/useField.js +17 -2
- package/dist/esm/Form/Form.d.ts +16 -0
- package/dist/esm/Form/Form.js +135 -0
- package/dist/esm/Form/FormContext.d.ts +13 -0
- package/dist/esm/Form/FormContext.js +2 -0
- package/dist/esm/Form/index.d.ts +3 -0
- package/dist/esm/Form/index.js +3 -0
- package/dist/esm/Form/stories/AsynchronousValidation.js +387 -0
- package/dist/esm/Form/stories/Complex.js +919 -0
- package/dist/esm/Form/stories/DependentFieldsValidation.js +240 -0
- package/dist/esm/Form/stories/DirtyFields.js +330 -0
- package/dist/esm/Form/stories/DynamicFieldsValidation.js +416 -0
- package/dist/esm/Form/stories/FieldArrays.js +544 -0
- package/dist/esm/Form/stories/ValidationStrategies.js +446 -0
- package/dist/esm/Form/stories/utils/useFormikAutoFocusOnError.js +16 -0
- package/dist/esm/Form/useForm.d.ts +1 -0
- package/dist/esm/Form/useForm.js +5 -0
- package/dist/esm/Input/Input.js +22 -9
- package/dist/esm/Input/Input.tailwind.js +7 -2
- package/dist/esm/Pagination/DotPagination/DotPagination.d.ts +1 -1
- package/dist/esm/RadioGroup/RadioButton.d.ts +1 -1
- package/dist/esm/RadioGroup/RadioButton.js +16 -3
- package/dist/esm/RadioGroup/RadioButton.tailwind.js +23 -0
- package/dist/esm/RadioGroup/RadioGroup.d.ts +7 -5
- package/dist/esm/RadioGroup/RadioGroup.js +77 -15
- package/dist/esm/RadioGroup/{RadiogroupContext.d.ts → RadioGroupContext.d.ts} +8 -1
- package/dist/esm/RangeSlider/RangeSlider.d.ts +2 -3
- package/dist/esm/RangeSlider/RangeSlider.js +27 -10
- package/dist/esm/Satellite/locale.d.ts +2 -0
- package/dist/esm/Select/Select.js +41 -7
- package/dist/esm/Select/Select.tailwind.js +19 -0
- package/dist/esm/Stepper/Step.js +2 -2
- package/dist/esm/Switch/Switch.js +1 -1
- package/dist/esm/Switch/SwitchOption.js +2 -2
- package/dist/esm/Tables/DataTable/DataTable.d.ts +1 -1
- package/dist/esm/Tag/Tag.d.ts +1 -1
- package/dist/esm/TextArea/TextArea.d.ts +1 -0
- package/dist/esm/TextArea/TextArea.js +49 -9
- package/dist/esm/TextArea/TextArea.tailwind.js +41 -4
- package/dist/esm/Toggle/Toggle.d.ts +1 -1
- package/dist/esm/Toggle/Toggle.js +23 -6
- package/dist/esm/Toggle/Toggle.tailwind.js +9 -0
- package/dist/esm/Tooltip/Tooltip.d.ts +1 -1
- package/dist/esm/index.d.ts +1 -0
- package/dist/esm/index.js +1 -0
- package/dist/esm/utils/isCssPropertySupported.d.ts +1 -1
- package/dist/esm/utils/mergeRefs.d.ts +2 -0
- package/dist/esm/utils/mergeRefs.js +11 -0
- package/dist/satellite.min.css +1 -1
- package/package.json +13 -7
- /package/dist/cjs/RadioGroup/{RadiogroupContext.js → RadioGroupContext.js} +0 -0
- /package/dist/esm/RadioGroup/{RadiogroupContext.js → RadioGroupContext.js} +0 -0
@@ -0,0 +1,396 @@
|
|
1
|
+
"use strict";
|
2
|
+
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
4
|
+
var _typeof = require("@babel/runtime/helpers/typeof");
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
6
|
+
value: true
|
7
|
+
});
|
8
|
+
exports.RHFAsyncValidationComponent = exports.FormikAsyncValidationComponent = void 0;
|
9
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
10
|
+
var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
|
11
|
+
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
|
12
|
+
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
13
|
+
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
14
|
+
var _zod = require("@hookform/resolvers/zod");
|
15
|
+
var _formik = require("formik");
|
16
|
+
var _react = require("react");
|
17
|
+
var _reactHookForm = require("react-hook-form");
|
18
|
+
var yup = _interopRequireWildcard(require("yup"));
|
19
|
+
var _zod2 = require("zod");
|
20
|
+
var _Field = require("../../Field");
|
21
|
+
var _Input = require("../../Input");
|
22
|
+
var _satellitePrefixer = _interopRequireDefault(require("../../styles/helpers/satellitePrefixer"));
|
23
|
+
var _Form = require("../Form");
|
24
|
+
var _useFormikAutoFocusOnError = require("./utils/useFormikAutoFocusOnError");
|
25
|
+
var _jsxRuntime = require("react/jsx-runtime");
|
26
|
+
var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8, _templateObject9, _templateObject10, _templateObject11, _templateObject12, _templateObject13, _templateObject14;
|
27
|
+
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
|
28
|
+
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n["default"] = e, t && t.set(e, n), n; }
|
29
|
+
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
30
|
+
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2["default"])(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
31
|
+
var initialFormData = {
|
32
|
+
username: "",
|
33
|
+
password: ""
|
34
|
+
};
|
35
|
+
var sleep = function sleep(ms) {
|
36
|
+
return new Promise(function (resolve) {
|
37
|
+
return setTimeout(resolve, ms);
|
38
|
+
});
|
39
|
+
};
|
40
|
+
var validateUsername = /*#__PURE__*/function () {
|
41
|
+
var _ref = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee(username) {
|
42
|
+
return _regenerator["default"].wrap(function _callee$(_context) {
|
43
|
+
while (1) switch (_context.prev = _context.next) {
|
44
|
+
case 0:
|
45
|
+
_context.next = 2;
|
46
|
+
return sleep(1000);
|
47
|
+
case 2:
|
48
|
+
return _context.abrupt("return", username === "admin");
|
49
|
+
case 3:
|
50
|
+
case "end":
|
51
|
+
return _context.stop();
|
52
|
+
}
|
53
|
+
}, _callee);
|
54
|
+
}));
|
55
|
+
return function validateUsername(_x) {
|
56
|
+
return _ref.apply(this, arguments);
|
57
|
+
};
|
58
|
+
}();
|
59
|
+
var validatePassword = /*#__PURE__*/function () {
|
60
|
+
var _ref2 = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee2(password) {
|
61
|
+
return _regenerator["default"].wrap(function _callee2$(_context2) {
|
62
|
+
while (1) switch (_context2.prev = _context2.next) {
|
63
|
+
case 0:
|
64
|
+
_context2.next = 2;
|
65
|
+
return sleep(1000);
|
66
|
+
case 2:
|
67
|
+
return _context2.abrupt("return", password === "qwerty");
|
68
|
+
case 3:
|
69
|
+
case "end":
|
70
|
+
return _context2.stop();
|
71
|
+
}
|
72
|
+
}, _callee2);
|
73
|
+
}));
|
74
|
+
return function validatePassword(_x2) {
|
75
|
+
return _ref2.apply(this, arguments);
|
76
|
+
};
|
77
|
+
}();
|
78
|
+
var zodSchema = _zod2.z.object({
|
79
|
+
username: _zod2.z.string().min(1, {
|
80
|
+
message: "You must specify an username (hint: admin)"
|
81
|
+
}).refine( /*#__PURE__*/function () {
|
82
|
+
var _ref3 = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee3(value) {
|
83
|
+
return _regenerator["default"].wrap(function _callee3$(_context3) {
|
84
|
+
while (1) switch (_context3.prev = _context3.next) {
|
85
|
+
case 0:
|
86
|
+
_context3.next = 2;
|
87
|
+
return validateUsername(value);
|
88
|
+
case 2:
|
89
|
+
if (!_context3.sent) {
|
90
|
+
_context3.next = 6;
|
91
|
+
break;
|
92
|
+
}
|
93
|
+
_context3.t0 = value;
|
94
|
+
_context3.next = 7;
|
95
|
+
break;
|
96
|
+
case 6:
|
97
|
+
_context3.t0 = false;
|
98
|
+
case 7:
|
99
|
+
return _context3.abrupt("return", _context3.t0);
|
100
|
+
case 8:
|
101
|
+
case "end":
|
102
|
+
return _context3.stop();
|
103
|
+
}
|
104
|
+
}, _callee3);
|
105
|
+
}));
|
106
|
+
return function (_x3) {
|
107
|
+
return _ref3.apply(this, arguments);
|
108
|
+
};
|
109
|
+
}(), function (val) {
|
110
|
+
return {
|
111
|
+
message: "Username \"".concat(val, "\" does not exist (hint: admin)")
|
112
|
+
};
|
113
|
+
}),
|
114
|
+
password: _zod2.z.string().min(1, {
|
115
|
+
message: "You must specify a password (hint: qwerty)"
|
116
|
+
}).refine( /*#__PURE__*/function () {
|
117
|
+
var _ref4 = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee4(value) {
|
118
|
+
return _regenerator["default"].wrap(function _callee4$(_context4) {
|
119
|
+
while (1) switch (_context4.prev = _context4.next) {
|
120
|
+
case 0:
|
121
|
+
_context4.next = 2;
|
122
|
+
return validatePassword(value);
|
123
|
+
case 2:
|
124
|
+
if (!_context4.sent) {
|
125
|
+
_context4.next = 6;
|
126
|
+
break;
|
127
|
+
}
|
128
|
+
_context4.t0 = value;
|
129
|
+
_context4.next = 7;
|
130
|
+
break;
|
131
|
+
case 6:
|
132
|
+
_context4.t0 = false;
|
133
|
+
case 7:
|
134
|
+
return _context4.abrupt("return", _context4.t0);
|
135
|
+
case 8:
|
136
|
+
case "end":
|
137
|
+
return _context4.stop();
|
138
|
+
}
|
139
|
+
}, _callee4);
|
140
|
+
}));
|
141
|
+
return function (_x4) {
|
142
|
+
return _ref4.apply(this, arguments);
|
143
|
+
};
|
144
|
+
}(), function () {
|
145
|
+
return {
|
146
|
+
message: "Password is incorrect (hint: qwerty)"
|
147
|
+
};
|
148
|
+
})
|
149
|
+
});
|
150
|
+
var RHFAsyncValidationComponent = exports.RHFAsyncValidationComponent = function RHFAsyncValidationComponent() {
|
151
|
+
var _useState = (0, _react.useState)(initialFormData),
|
152
|
+
_useState2 = (0, _slicedToArray2["default"])(_useState, 2),
|
153
|
+
formData = _useState2[0],
|
154
|
+
setFormData = _useState2[1];
|
155
|
+
var _useForm = (0, _reactHookForm.useForm)({
|
156
|
+
defaultValues: initialFormData,
|
157
|
+
reValidateMode: "onChange",
|
158
|
+
resolver: (0, _zod.zodResolver)(zodSchema)
|
159
|
+
}),
|
160
|
+
control = _useForm.control,
|
161
|
+
handleSubmit = _useForm.handleSubmit,
|
162
|
+
getFieldStateFromReactHookForm = _useForm.getFieldState,
|
163
|
+
formState = _useForm.formState,
|
164
|
+
reset = _useForm.reset;
|
165
|
+
var getFieldState = function getFieldState(fieldName) {
|
166
|
+
var _fieldState$error;
|
167
|
+
var fieldState = getFieldStateFromReactHookForm(fieldName, formState);
|
168
|
+
if ((_fieldState$error = fieldState.error) !== null && _fieldState$error !== void 0 && _fieldState$error.message) {
|
169
|
+
return {
|
170
|
+
status: "invalid",
|
171
|
+
errors: [fieldState.error.message]
|
172
|
+
};
|
173
|
+
} else if (!fieldState.invalid && formState.isSubmitted) {
|
174
|
+
return {
|
175
|
+
status: "validated"
|
176
|
+
};
|
177
|
+
} else {
|
178
|
+
return {
|
179
|
+
status: "default"
|
180
|
+
};
|
181
|
+
}
|
182
|
+
};
|
183
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
|
184
|
+
className: (0, _satellitePrefixer["default"])(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["flex flex-col gap-8 w-3/5"]))),
|
185
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)(_Form.ExperimentalForm, {
|
186
|
+
onSubmit: handleSubmit(function (data) {
|
187
|
+
return setFormData(data);
|
188
|
+
}),
|
189
|
+
onReset: function onReset() {
|
190
|
+
return setFormData(initialFormData);
|
191
|
+
},
|
192
|
+
className: (0, _satellitePrefixer["default"])(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["flex flex-col items-start gap-4 min-w-72"]))),
|
193
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_Form.ExperimentalFormErrorMessage, {}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactHookForm.Controller, {
|
194
|
+
name: "username",
|
195
|
+
control: control,
|
196
|
+
render: function render(_ref5) {
|
197
|
+
var field = _ref5.field;
|
198
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_Field.Field, {
|
199
|
+
label: "Username",
|
200
|
+
labelFor: "username",
|
201
|
+
description: "Please enter your username",
|
202
|
+
state: getFieldState("username"),
|
203
|
+
className: (0, _satellitePrefixer["default"])(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2["default"])(["w-full"]))),
|
204
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Input.Input, _objectSpread({
|
205
|
+
id: "username",
|
206
|
+
placeholder: "Username",
|
207
|
+
required: true
|
208
|
+
}, field))
|
209
|
+
});
|
210
|
+
}
|
211
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactHookForm.Controller, {
|
212
|
+
name: "password",
|
213
|
+
control: control,
|
214
|
+
render: function render(_ref6) {
|
215
|
+
var field = _ref6.field;
|
216
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_Field.Field, {
|
217
|
+
label: "Password",
|
218
|
+
labelFor: "password",
|
219
|
+
description: "Please enter your password",
|
220
|
+
state: getFieldState("password"),
|
221
|
+
className: (0, _satellitePrefixer["default"])(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2["default"])(["w-full"]))),
|
222
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Input.Input, _objectSpread({
|
223
|
+
id: "password",
|
224
|
+
placeholder: "Password",
|
225
|
+
type: "password",
|
226
|
+
required: true
|
227
|
+
}, field))
|
228
|
+
});
|
229
|
+
}
|
230
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
|
231
|
+
className: (0, _satellitePrefixer["default"])(_templateObject5 || (_templateObject5 = (0, _taggedTemplateLiteral2["default"])(["flex gap-2"]))),
|
232
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_Form.ExperimentalFormSubmit, {
|
233
|
+
variant: "primary",
|
234
|
+
"aria-label": "Login to the website",
|
235
|
+
loading: formState.isSubmitting,
|
236
|
+
children: "Login"
|
237
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_Form.ExperimentalFormReset, {
|
238
|
+
"aria-label": "Reset the form",
|
239
|
+
onClick: function onClick() {
|
240
|
+
return reset();
|
241
|
+
},
|
242
|
+
children: "Reset"
|
243
|
+
})]
|
244
|
+
})]
|
245
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)("hr", {
|
246
|
+
className: (0, _satellitePrefixer["default"])(_templateObject6 || (_templateObject6 = (0, _taggedTemplateLiteral2["default"])(["text-grey-500"])))
|
247
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)("code", {
|
248
|
+
className: (0, _satellitePrefixer["default"])(_templateObject7 || (_templateObject7 = (0, _taggedTemplateLiteral2["default"])(["whitespace-pre"]))),
|
249
|
+
children: JSON.stringify(formData, null, 2)
|
250
|
+
})]
|
251
|
+
});
|
252
|
+
};
|
253
|
+
var yupSchema = yup.object({
|
254
|
+
username: yup.string().required("You must specify an username (hint: admin)").test({
|
255
|
+
name: "username",
|
256
|
+
message: function message(_ref7) {
|
257
|
+
var value = _ref7.value;
|
258
|
+
return "Username \"".concat(value, "\" does not exist (hint: admin)");
|
259
|
+
},
|
260
|
+
test: function () {
|
261
|
+
var _test = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee5(value) {
|
262
|
+
return _regenerator["default"].wrap(function _callee5$(_context5) {
|
263
|
+
while (1) switch (_context5.prev = _context5.next) {
|
264
|
+
case 0:
|
265
|
+
return _context5.abrupt("return", validateUsername(value));
|
266
|
+
case 1:
|
267
|
+
case "end":
|
268
|
+
return _context5.stop();
|
269
|
+
}
|
270
|
+
}, _callee5);
|
271
|
+
}));
|
272
|
+
function test(_x5) {
|
273
|
+
return _test.apply(this, arguments);
|
274
|
+
}
|
275
|
+
return test;
|
276
|
+
}()
|
277
|
+
}),
|
278
|
+
password: yup.string().required("You must specify a password (hint: qwerty)").test({
|
279
|
+
name: "password",
|
280
|
+
message: "Password is incorrect (hint: qwerty)",
|
281
|
+
test: function () {
|
282
|
+
var _test2 = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee6(value) {
|
283
|
+
return _regenerator["default"].wrap(function _callee6$(_context6) {
|
284
|
+
while (1) switch (_context6.prev = _context6.next) {
|
285
|
+
case 0:
|
286
|
+
return _context6.abrupt("return", validatePassword(value));
|
287
|
+
case 1:
|
288
|
+
case "end":
|
289
|
+
return _context6.stop();
|
290
|
+
}
|
291
|
+
}, _callee6);
|
292
|
+
}));
|
293
|
+
function test(_x6) {
|
294
|
+
return _test2.apply(this, arguments);
|
295
|
+
}
|
296
|
+
return test;
|
297
|
+
}()
|
298
|
+
})
|
299
|
+
});
|
300
|
+
var FormikAsyncValidationComponent = exports.FormikAsyncValidationComponent = function FormikAsyncValidationComponent() {
|
301
|
+
var _useState3 = (0, _react.useState)(initialFormData),
|
302
|
+
_useState4 = (0, _slicedToArray2["default"])(_useState3, 2),
|
303
|
+
formData = _useState4[0],
|
304
|
+
setFormData = _useState4[1];
|
305
|
+
var _useState5 = (0, _react.useState)(false),
|
306
|
+
_useState6 = (0, _slicedToArray2["default"])(_useState5, 2),
|
307
|
+
revalidationEnabled = _useState6[0],
|
308
|
+
setRevalidationEnabled = _useState6[1];
|
309
|
+
var formik = (0, _formik.useFormik)({
|
310
|
+
initialValues: initialFormData,
|
311
|
+
validateOnChange: revalidationEnabled,
|
312
|
+
validateOnBlur: revalidationEnabled,
|
313
|
+
validationSchema: yupSchema,
|
314
|
+
onSubmit: function onSubmit(values) {
|
315
|
+
return setFormData(values);
|
316
|
+
},
|
317
|
+
onReset: function onReset() {
|
318
|
+
return setFormData(initialFormData);
|
319
|
+
}
|
320
|
+
});
|
321
|
+
var getFieldState = function getFieldState(fieldName) {
|
322
|
+
var fieldMeta = formik.getFieldMeta(fieldName);
|
323
|
+
if (fieldMeta.error) {
|
324
|
+
return {
|
325
|
+
status: "invalid",
|
326
|
+
errors: [fieldMeta.error]
|
327
|
+
};
|
328
|
+
} else if (formik.isSubmitting && fieldMeta.touched) {
|
329
|
+
return {
|
330
|
+
status: "validated"
|
331
|
+
};
|
332
|
+
} else {
|
333
|
+
return {
|
334
|
+
status: "default"
|
335
|
+
};
|
336
|
+
}
|
337
|
+
};
|
338
|
+
(0, _useFormikAutoFocusOnError.useFormikAutoFocusOnError)(formik);
|
339
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
|
340
|
+
className: (0, _satellitePrefixer["default"])(_templateObject8 || (_templateObject8 = (0, _taggedTemplateLiteral2["default"])(["flex flex-col gap-8 w-3/5"]))),
|
341
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)(_Form.ExperimentalForm, {
|
342
|
+
onSubmit: function onSubmit(e) {
|
343
|
+
setRevalidationEnabled(true);
|
344
|
+
formik.handleSubmit(e);
|
345
|
+
},
|
346
|
+
onReset: function onReset(e) {
|
347
|
+
setRevalidationEnabled(false);
|
348
|
+
formik.handleReset(e);
|
349
|
+
},
|
350
|
+
className: (0, _satellitePrefixer["default"])(_templateObject9 || (_templateObject9 = (0, _taggedTemplateLiteral2["default"])(["flex flex-col items-start gap-4 min-w-72"]))),
|
351
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_Form.ExperimentalFormErrorMessage, {}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_Field.Field, {
|
352
|
+
label: "Username",
|
353
|
+
labelFor: "username",
|
354
|
+
description: "Please enter your username",
|
355
|
+
state: getFieldState("username"),
|
356
|
+
className: (0, _satellitePrefixer["default"])(_templateObject10 || (_templateObject10 = (0, _taggedTemplateLiteral2["default"])(["w-full"]))),
|
357
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Input.Input, _objectSpread({
|
358
|
+
id: "username",
|
359
|
+
placeholder: "Username",
|
360
|
+
required: true
|
361
|
+
}, formik.getFieldProps("username")))
|
362
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_Field.Field, {
|
363
|
+
label: "Password",
|
364
|
+
labelFor: "password",
|
365
|
+
description: "Please enter your password",
|
366
|
+
state: getFieldState("password"),
|
367
|
+
className: (0, _satellitePrefixer["default"])(_templateObject11 || (_templateObject11 = (0, _taggedTemplateLiteral2["default"])(["w-full"]))),
|
368
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Input.Input, _objectSpread({
|
369
|
+
id: "password",
|
370
|
+
placeholder: "Password",
|
371
|
+
type: "password",
|
372
|
+
required: true
|
373
|
+
}, formik.getFieldProps("password")))
|
374
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
|
375
|
+
className: (0, _satellitePrefixer["default"])(_templateObject12 || (_templateObject12 = (0, _taggedTemplateLiteral2["default"])(["flex gap-2"]))),
|
376
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_Form.ExperimentalFormSubmit, {
|
377
|
+
variant: "primary",
|
378
|
+
"aria-label": "Login to the website",
|
379
|
+
loading: formik.isValidating,
|
380
|
+
children: "Login"
|
381
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_Form.ExperimentalFormReset, {
|
382
|
+
"aria-label": "Reset the form",
|
383
|
+
onClick: function onClick() {
|
384
|
+
return formik.resetForm();
|
385
|
+
},
|
386
|
+
children: "Reset"
|
387
|
+
})]
|
388
|
+
})]
|
389
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)("hr", {
|
390
|
+
className: (0, _satellitePrefixer["default"])(_templateObject13 || (_templateObject13 = (0, _taggedTemplateLiteral2["default"])(["text-grey-500"])))
|
391
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)("code", {
|
392
|
+
className: (0, _satellitePrefixer["default"])(_templateObject14 || (_templateObject14 = (0, _taggedTemplateLiteral2["default"])(["whitespace-pre"]))),
|
393
|
+
children: JSON.stringify(formData, null, 2)
|
394
|
+
})]
|
395
|
+
});
|
396
|
+
};
|