@semcore/feedback-form 4.0.2 → 4.0.5
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/CHANGELOG.md +18 -0
- package/lib/cjs/FeedbackForm.js +6 -9
- package/lib/cjs/FeedbackForm.js.map +1 -1
- package/lib/cjs/index.d.ts +26 -0
- package/lib/cjs/index.js +2 -19
- package/lib/cjs/index.js.map +1 -1
- package/lib/es6/FeedbackForm.js +6 -7
- package/lib/es6/FeedbackForm.js.map +1 -1
- package/lib/es6/index.d.ts +26 -0
- package/lib/es6/index.js +0 -1
- package/lib/es6/index.js.map +1 -1
- package/package.json +7 -4
- package/src/{FeedbackForm.js → FeedbackForm.jsx} +16 -12
- package/src/index.js +0 -1
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,24 @@
|
|
|
2
2
|
|
|
3
3
|
CHANGELOG.md standards are inspired by [keepachangelog.com](https://keepachangelog.com/en/1.0.0/).
|
|
4
4
|
|
|
5
|
+
## [4.0.5] - 2022-04-25
|
|
6
|
+
|
|
7
|
+
### Changed
|
|
8
|
+
|
|
9
|
+
- Version patch update due to children dependencies update (`@semcore/spin-container` [5.0.5 ~> 5.1.0]).
|
|
10
|
+
|
|
11
|
+
## [4.0.4] - 2022-03-21
|
|
12
|
+
|
|
13
|
+
### Changed
|
|
14
|
+
|
|
15
|
+
- Version patch update due to children dependencies update (`@semcore/notice` [3.2.3 ~> 3.2.4]).
|
|
16
|
+
|
|
17
|
+
## [4.0.3] - 2022-03-14
|
|
18
|
+
|
|
19
|
+
### Changed
|
|
20
|
+
|
|
21
|
+
- Version patch update due to children dependencies update (`@semcore/utils` [3.31.2 ~> 3.31.2], `@semcore/button` [3.3.6 ~> 3.3.7]).
|
|
22
|
+
|
|
5
23
|
## [4.0.2] - 2022-03-05
|
|
6
24
|
|
|
7
25
|
### Changed
|
package/lib/cjs/FeedbackForm.js
CHANGED
|
@@ -167,16 +167,13 @@ var FeedbackForm = /*#__PURE__*/function (_Component) {
|
|
|
167
167
|
var TooltipProps = ['title', 'theme', 'strategy', 'modifiers', 'placement', 'interaction', 'timeout', 'visible', 'defaultVisible', 'onVisibleChange', 'offset', 'preventOverflow', 'arrow', 'flip', 'computeStyles', 'eventListeners', 'onFirstUpdate'];
|
|
168
168
|
|
|
169
169
|
function Item(_ref12) {
|
|
170
|
-
var _ref =
|
|
171
|
-
_this2 = this;
|
|
172
|
-
|
|
170
|
+
var _ref = arguments[0];
|
|
173
171
|
var Children = _ref12.Children,
|
|
174
172
|
tag = _ref12.tag,
|
|
175
173
|
props = (0, _objectWithoutProperties2["default"])(_ref12, _excluded2);
|
|
176
174
|
var tooltipProps = (0, _pick["default"])(props, TooltipProps);
|
|
177
175
|
return /*#__PURE__*/_react["default"].createElement(_reactFinalForm.Field, (0, _core.assignProps)({}, _ref), function (_ref13) {
|
|
178
|
-
var _ref2 =
|
|
179
|
-
|
|
176
|
+
var _ref2 = arguments[0];
|
|
180
177
|
var input = _ref13.input,
|
|
181
178
|
meta = _ref13.meta,
|
|
182
179
|
other = (0, _objectWithoutProperties2["default"])(_ref13, _excluded3);
|
|
@@ -203,7 +200,7 @@ function Item(_ref12) {
|
|
|
203
200
|
}
|
|
204
201
|
|
|
205
202
|
function Success(props) {
|
|
206
|
-
var _ref3 =
|
|
203
|
+
var _ref3 = arguments[0],
|
|
207
204
|
_ref8;
|
|
208
205
|
|
|
209
206
|
var Children = props.Children,
|
|
@@ -217,7 +214,7 @@ function Success(props) {
|
|
|
217
214
|
Success.style = style;
|
|
218
215
|
|
|
219
216
|
function Submit(props) {
|
|
220
|
-
var _ref4 =
|
|
217
|
+
var _ref4 = arguments[0],
|
|
221
218
|
_ref9;
|
|
222
219
|
|
|
223
220
|
var styles = props.styles;
|
|
@@ -230,7 +227,7 @@ function Submit(props) {
|
|
|
230
227
|
}
|
|
231
228
|
|
|
232
229
|
function Cancel(props) {
|
|
233
|
-
var _ref5 =
|
|
230
|
+
var _ref5 = arguments[0],
|
|
234
231
|
_ref10;
|
|
235
232
|
|
|
236
233
|
var styles = props.styles;
|
|
@@ -243,7 +240,7 @@ function Cancel(props) {
|
|
|
243
240
|
}
|
|
244
241
|
|
|
245
242
|
function Notice(props) {
|
|
246
|
-
var _ref6 =
|
|
243
|
+
var _ref6 = arguments[0],
|
|
247
244
|
_ref11;
|
|
248
245
|
|
|
249
246
|
var styles = props.styles;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/FeedbackForm.
|
|
1
|
+
{"version":3,"sources":["../../src/FeedbackForm.jsx"],"names":["FeedbackForm","SFeedbackForm","Box","asProps","Children","styles","loading","forwardRef","other","focusDecorator","api","undefined","submitting","handleSubmit","origin","Component","style","Field","Form","onSubmit","description","error","value","words","split","symbols","join","length","email","test","String","toLowerCase","TooltipProps","Item","tag","props","tooltipProps","input","meta","invalid","touched","inputProps","state","active","fallbackPlacements","Success","SSuccess","SEmail","Submit","SSubmit","Button","Cancel","SCancel","Notice","SNotice","NoticeSmart","defaultProps","theme","use"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { Field, Form } from 'react-final-form';\nimport createFocusDecorator from 'final-form-focus';\n\nimport createComponent, { Component, sstyled, Root } from '@semcore/core';\nimport Button from '@semcore/button';\nimport SpinContainer from '@semcore/spin-container';\nimport Tooltip from '@semcore/tooltip';\nimport { NoticeSmart } from '@semcore/notice';\nimport { Box } from '@semcore/flex-box';\nimport pick from '@semcore/utils/lib/pick';\n\nimport style from './style/feedback-form.shadow.css';\n\nclass FeedbackForm extends Component {\n static displayName = 'FeedbackForm';\n static style = style;\n static FinalForm = {\n Field,\n Form,\n };\n\n static defaultProps = {\n onSubmit: () => {},\n };\n\n static validate = {\n description:\n (error) =>\n (value = '') => {\n const words = value.split(/\\s+/);\n const symbols = words.join(' ');\n if (symbols.length < 10 || words.length < 3) {\n return error;\n }\n },\n email:\n (error) =>\n (value = '') => {\n if (!/.+@.+\\..+/i.test(String(value).toLowerCase())) {\n return error;\n }\n },\n };\n\n focusDecorator = createFocusDecorator();\n\n render() {\n const SFeedbackForm = Box;\n const { Children, styles, loading, forwardRef, ...other } = this.asProps;\n\n return (\n <Form decorators={[this.focusDecorator]} {...other}>\n {(api) =>\n sstyled(styles)(\n <SpinContainer size=\"xl\" loading={loading === undefined ? api.submitting : loading}>\n <SFeedbackForm\n tag=\"form\"\n noValidate\n method=\"POST\"\n ref={forwardRef}\n {...other}\n onSubmit={api.handleSubmit}\n >\n {typeof Children.origin === 'function' ? Children.origin(api) : <Children />}\n </SFeedbackForm>\n </SpinContainer>,\n )\n }\n </Form>\n );\n }\n}\n\nconst TooltipProps = [\n 'title',\n 'theme',\n 'strategy',\n 'modifiers',\n 'placement',\n 'interaction',\n 'timeout',\n 'visible',\n 'defaultVisible',\n 'onVisibleChange',\n 'offset',\n 'preventOverflow',\n 'arrow',\n 'flip',\n 'computeStyles',\n 'eventListeners',\n 'onFirstUpdate',\n];\n\nfunction Item({ Children, tag, ...props }) {\n const tooltipProps = pick(props, TooltipProps);\n\n return (\n <Root render={Field}>\n {({ input, meta, ...other }) => {\n const invalid = meta.invalid && meta.touched;\n const inputProps = {\n ...input,\n state: invalid ? 'invalid' : 'normal',\n };\n return (\n <Tooltip\n title={meta.error}\n visible={invalid && meta.active}\n inline={false}\n theme=\"warning\"\n placement=\"left\"\n flip={{\n fallbackPlacements: ['right', 'bottom'],\n }}\n {...tooltipProps}\n >\n {tag && <Root render={tag} {...inputProps} />}\n {typeof Children.origin === 'function' &&\n Children.origin({\n input: inputProps,\n meta,\n ...other,\n })}\n </Tooltip>\n );\n }}\n </Root>\n );\n}\n\nfunction Success(props) {\n const { Children, styles } = props;\n const SSuccess = Root;\n const SEmail = 'div';\n\n return sstyled(styles)(\n <SSuccess render={Box}>\n <SEmail />\n <span>\n <Children />\n </span>\n </SSuccess>,\n );\n}\n// because it is used without a wrapper\nSuccess.style = style;\n\nfunction Submit(props) {\n const { styles } = props;\n const SSubmit = Root;\n return sstyled(styles)(<SSubmit render={Button} type=\"submit\" use=\"primary\" theme=\"success\" />);\n}\n\nfunction Cancel(props) {\n const { styles } = props;\n const SCancel = Root;\n return sstyled(styles)(<SCancel render={Button} type=\"reset\" use=\"secondary\" theme=\"muted\" />);\n}\n\nfunction Notice(props) {\n const { styles } = props;\n const SNotice = Root;\n return sstyled(styles)(<SNotice render={NoticeSmart} />);\n}\n\nNotice.defaultProps = {\n theme: 'gray94',\n use: 'secondary',\n};\n\nexport default createComponent(FeedbackForm, {\n Item,\n Success,\n Submit,\n Cancel,\n Notice,\n});\n"],"file":"FeedbackForm.js"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { ComponentProps } from 'react';
|
|
2
|
+
import { FormProps, FieldProps } from 'react-final-form';
|
|
3
|
+
|
|
4
|
+
import { ReturnEl, CProps } from '@semcore/core';
|
|
5
|
+
import Button from '@semcore/button';
|
|
6
|
+
import { NoticeSmart } from '@semcore/notice';
|
|
7
|
+
import { Box } from '@semcore/flex-box';
|
|
8
|
+
|
|
9
|
+
export interface IFeedbackForm extends FormProps {
|
|
10
|
+
/* The event is called when the form is submitted */
|
|
11
|
+
onSubmit: (values: any, form: any, callback?: (errors?: {}) => void) => {} | Promise<{}> | void;
|
|
12
|
+
/**
|
|
13
|
+
* The property is in charge of the spinner showing
|
|
14
|
+
* */
|
|
15
|
+
loading?: boolean;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
declare const FeedbackForm: (<T>(props: CProps<IFeedbackForm> & T) => ReturnEl) & {
|
|
19
|
+
Item: <T>(props: FieldProps<any, any> & T) => ReturnEl;
|
|
20
|
+
Success: <T>(props: CProps<ComponentProps<typeof Box>> & T) => ReturnEl;
|
|
21
|
+
Submit: <T>(props: ComponentProps<typeof Button> & T) => ReturnEl;
|
|
22
|
+
Cancel: <T>(props: ComponentProps<typeof Button> & T) => ReturnEl;
|
|
23
|
+
Notice: <T>(props: ComponentProps<typeof NoticeSmart> & T) => ReturnEl;
|
|
24
|
+
};
|
|
25
|
+
|
|
26
|
+
export default FeedbackForm;
|
package/lib/cjs/index.js
CHANGED
|
@@ -1,11 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
4
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", {
|
|
6
6
|
value: true
|
|
7
7
|
});
|
|
8
|
-
var _exportNames = {};
|
|
9
8
|
Object.defineProperty(exports, "default", {
|
|
10
9
|
enumerable: true,
|
|
11
10
|
get: function get() {
|
|
@@ -13,21 +12,5 @@ Object.defineProperty(exports, "default", {
|
|
|
13
12
|
}
|
|
14
13
|
});
|
|
15
14
|
|
|
16
|
-
var _FeedbackForm =
|
|
17
|
-
|
|
18
|
-
Object.keys(_FeedbackForm).forEach(function (key) {
|
|
19
|
-
if (key === "default" || key === "__esModule") return;
|
|
20
|
-
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
|
|
21
|
-
if (key in exports && exports[key] === _FeedbackForm[key]) return;
|
|
22
|
-
Object.defineProperty(exports, key, {
|
|
23
|
-
enumerable: true,
|
|
24
|
-
get: function get() {
|
|
25
|
-
return _FeedbackForm[key];
|
|
26
|
-
}
|
|
27
|
-
});
|
|
28
|
-
});
|
|
29
|
-
|
|
30
|
-
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
31
|
-
|
|
32
|
-
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
15
|
+
var _FeedbackForm = _interopRequireDefault(require("./FeedbackForm"));
|
|
33
16
|
//# sourceMappingURL=index.js.map
|
package/lib/cjs/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/index.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"sources":["../../src/index.js"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA","sourcesContent":["export { default } from './FeedbackForm';\n"],"file":"index.js"}
|
package/lib/es6/FeedbackForm.js
CHANGED
|
@@ -151,8 +151,7 @@ _defineProperty(FeedbackForm, "validate", {
|
|
|
151
151
|
var TooltipProps = ['title', 'theme', 'strategy', 'modifiers', 'placement', 'interaction', 'timeout', 'visible', 'defaultVisible', 'onVisibleChange', 'offset', 'preventOverflow', 'arrow', 'flip', 'computeStyles', 'eventListeners', 'onFirstUpdate'];
|
|
152
152
|
|
|
153
153
|
function Item(_ref12) {
|
|
154
|
-
var _ref =
|
|
155
|
-
_this2 = this;
|
|
154
|
+
var _ref = arguments[0];
|
|
156
155
|
|
|
157
156
|
var Children = _ref12.Children,
|
|
158
157
|
tag = _ref12.tag,
|
|
@@ -160,7 +159,7 @@ function Item(_ref12) {
|
|
|
160
159
|
|
|
161
160
|
var tooltipProps = pick(props, TooltipProps);
|
|
162
161
|
return /*#__PURE__*/React.createElement(Field, _assignProps({}, _ref), function (_ref13) {
|
|
163
|
-
var _ref2 =
|
|
162
|
+
var _ref2 = arguments[0];
|
|
164
163
|
|
|
165
164
|
var input = _ref13.input,
|
|
166
165
|
meta = _ref13.meta,
|
|
@@ -189,7 +188,7 @@ function Item(_ref12) {
|
|
|
189
188
|
}
|
|
190
189
|
|
|
191
190
|
function Success(props) {
|
|
192
|
-
var _ref3 =
|
|
191
|
+
var _ref3 = arguments[0],
|
|
193
192
|
_ref8;
|
|
194
193
|
|
|
195
194
|
var Children = props.Children,
|
|
@@ -203,7 +202,7 @@ function Success(props) {
|
|
|
203
202
|
Success.style = style;
|
|
204
203
|
|
|
205
204
|
function Submit(props) {
|
|
206
|
-
var _ref4 =
|
|
205
|
+
var _ref4 = arguments[0],
|
|
207
206
|
_ref9;
|
|
208
207
|
|
|
209
208
|
var styles = props.styles;
|
|
@@ -216,7 +215,7 @@ function Submit(props) {
|
|
|
216
215
|
}
|
|
217
216
|
|
|
218
217
|
function Cancel(props) {
|
|
219
|
-
var _ref5 =
|
|
218
|
+
var _ref5 = arguments[0],
|
|
220
219
|
_ref10;
|
|
221
220
|
|
|
222
221
|
var styles = props.styles;
|
|
@@ -229,7 +228,7 @@ function Cancel(props) {
|
|
|
229
228
|
}
|
|
230
229
|
|
|
231
230
|
function Notice(props) {
|
|
232
|
-
var _ref6 =
|
|
231
|
+
var _ref6 = arguments[0],
|
|
233
232
|
_ref11;
|
|
234
233
|
|
|
235
234
|
var styles = props.styles;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/FeedbackForm.
|
|
1
|
+
{"version":3,"sources":["../../src/FeedbackForm.jsx"],"names":["React","Field","Form","createFocusDecorator","createComponent","Component","sstyled","Root","Button","SpinContainer","Tooltip","NoticeSmart","Box","pick","FeedbackForm","SFeedbackForm","asProps","Children","styles","loading","forwardRef","other","focusDecorator","api","undefined","submitting","handleSubmit","origin","style","onSubmit","description","error","value","words","split","symbols","join","length","email","test","String","toLowerCase","TooltipProps","Item","tag","props","tooltipProps","input","meta","invalid","touched","inputProps","state","active","fallbackPlacements","Success","SSuccess","SEmail","Submit","SSubmit","Cancel","SCancel","Notice","SNotice","defaultProps","theme","use"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { Field, Form } from 'react-final-form';\nimport createFocusDecorator from 'final-form-focus';\n\nimport createComponent, { Component, sstyled, Root } from '@semcore/core';\nimport Button from '@semcore/button';\nimport SpinContainer from '@semcore/spin-container';\nimport Tooltip from '@semcore/tooltip';\nimport { NoticeSmart } from '@semcore/notice';\nimport { Box } from '@semcore/flex-box';\nimport pick from '@semcore/utils/lib/pick';\n\nimport style from './style/feedback-form.shadow.css';\n\nclass FeedbackForm extends Component {\n static displayName = 'FeedbackForm';\n static style = style;\n static FinalForm = {\n Field,\n Form,\n };\n\n static defaultProps = {\n onSubmit: () => {},\n };\n\n static validate = {\n description:\n (error) =>\n (value = '') => {\n const words = value.split(/\\s+/);\n const symbols = words.join(' ');\n if (symbols.length < 10 || words.length < 3) {\n return error;\n }\n },\n email:\n (error) =>\n (value = '') => {\n if (!/.+@.+\\..+/i.test(String(value).toLowerCase())) {\n return error;\n }\n },\n };\n\n focusDecorator = createFocusDecorator();\n\n render() {\n const SFeedbackForm = Box;\n const { Children, styles, loading, forwardRef, ...other } = this.asProps;\n\n return (\n <Form decorators={[this.focusDecorator]} {...other}>\n {(api) =>\n sstyled(styles)(\n <SpinContainer size=\"xl\" loading={loading === undefined ? api.submitting : loading}>\n <SFeedbackForm\n tag=\"form\"\n noValidate\n method=\"POST\"\n ref={forwardRef}\n {...other}\n onSubmit={api.handleSubmit}\n >\n {typeof Children.origin === 'function' ? Children.origin(api) : <Children />}\n </SFeedbackForm>\n </SpinContainer>,\n )\n }\n </Form>\n );\n }\n}\n\nconst TooltipProps = [\n 'title',\n 'theme',\n 'strategy',\n 'modifiers',\n 'placement',\n 'interaction',\n 'timeout',\n 'visible',\n 'defaultVisible',\n 'onVisibleChange',\n 'offset',\n 'preventOverflow',\n 'arrow',\n 'flip',\n 'computeStyles',\n 'eventListeners',\n 'onFirstUpdate',\n];\n\nfunction Item({ Children, tag, ...props }) {\n const tooltipProps = pick(props, TooltipProps);\n\n return (\n <Root render={Field}>\n {({ input, meta, ...other }) => {\n const invalid = meta.invalid && meta.touched;\n const inputProps = {\n ...input,\n state: invalid ? 'invalid' : 'normal',\n };\n return (\n <Tooltip\n title={meta.error}\n visible={invalid && meta.active}\n inline={false}\n theme=\"warning\"\n placement=\"left\"\n flip={{\n fallbackPlacements: ['right', 'bottom'],\n }}\n {...tooltipProps}\n >\n {tag && <Root render={tag} {...inputProps} />}\n {typeof Children.origin === 'function' &&\n Children.origin({\n input: inputProps,\n meta,\n ...other,\n })}\n </Tooltip>\n );\n }}\n </Root>\n );\n}\n\nfunction Success(props) {\n const { Children, styles } = props;\n const SSuccess = Root;\n const SEmail = 'div';\n\n return sstyled(styles)(\n <SSuccess render={Box}>\n <SEmail />\n <span>\n <Children />\n </span>\n </SSuccess>,\n );\n}\n// because it is used without a wrapper\nSuccess.style = style;\n\nfunction Submit(props) {\n const { styles } = props;\n const SSubmit = Root;\n return sstyled(styles)(<SSubmit render={Button} type=\"submit\" use=\"primary\" theme=\"success\" />);\n}\n\nfunction Cancel(props) {\n const { styles } = props;\n const SCancel = Root;\n return sstyled(styles)(<SCancel render={Button} type=\"reset\" use=\"secondary\" theme=\"muted\" />);\n}\n\nfunction Notice(props) {\n const { styles } = props;\n const SNotice = Root;\n return sstyled(styles)(<SNotice render={NoticeSmart} />);\n}\n\nNotice.defaultProps = {\n theme: 'gray94',\n use: 'secondary',\n};\n\nexport default createComponent(FeedbackForm, {\n Item,\n Success,\n Submit,\n Cancel,\n Notice,\n});\n"],"file":"FeedbackForm.js"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { ComponentProps } from 'react';
|
|
2
|
+
import { FormProps, FieldProps } from 'react-final-form';
|
|
3
|
+
|
|
4
|
+
import { ReturnEl, CProps } from '@semcore/core';
|
|
5
|
+
import Button from '@semcore/button';
|
|
6
|
+
import { NoticeSmart } from '@semcore/notice';
|
|
7
|
+
import { Box } from '@semcore/flex-box';
|
|
8
|
+
|
|
9
|
+
export interface IFeedbackForm extends FormProps {
|
|
10
|
+
/* The event is called when the form is submitted */
|
|
11
|
+
onSubmit: (values: any, form: any, callback?: (errors?: {}) => void) => {} | Promise<{}> | void;
|
|
12
|
+
/**
|
|
13
|
+
* The property is in charge of the spinner showing
|
|
14
|
+
* */
|
|
15
|
+
loading?: boolean;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
declare const FeedbackForm: (<T>(props: CProps<IFeedbackForm> & T) => ReturnEl) & {
|
|
19
|
+
Item: <T>(props: FieldProps<any, any> & T) => ReturnEl;
|
|
20
|
+
Success: <T>(props: CProps<ComponentProps<typeof Box>> & T) => ReturnEl;
|
|
21
|
+
Submit: <T>(props: ComponentProps<typeof Button> & T) => ReturnEl;
|
|
22
|
+
Cancel: <T>(props: ComponentProps<typeof Button> & T) => ReturnEl;
|
|
23
|
+
Notice: <T>(props: ComponentProps<typeof NoticeSmart> & T) => ReturnEl;
|
|
24
|
+
};
|
|
25
|
+
|
|
26
|
+
export default FeedbackForm;
|
package/lib/es6/index.js
CHANGED
package/lib/es6/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/index.js"],"names":["default"],"mappings":"AAAA,SAASA,OAAT,QAAwB,gBAAxB
|
|
1
|
+
{"version":3,"sources":["../../src/index.js"],"names":["default"],"mappings":"AAAA,SAASA,OAAT,QAAwB,gBAAxB","sourcesContent":["export { default } from './FeedbackForm';\n"],"file":"index.js"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@semcore/feedback-form",
|
|
3
3
|
"description": "SEMRush Feedback Form Component",
|
|
4
|
-
"version": "4.0.
|
|
4
|
+
"version": "4.0.5",
|
|
5
5
|
"main": "lib/cjs/index.js",
|
|
6
6
|
"module": "lib/es6/index.js",
|
|
7
7
|
"typings": "lib/types/index.d.ts",
|
|
@@ -19,9 +19,9 @@
|
|
|
19
19
|
"@semcore/spin-container": "^5.0.0",
|
|
20
20
|
"@semcore/button": "^3",
|
|
21
21
|
"@semcore/notice": "^3",
|
|
22
|
-
"final-form": "
|
|
23
|
-
"final-form-focus": "
|
|
24
|
-
"react-final-form": "
|
|
22
|
+
"final-form": "4.19.1",
|
|
23
|
+
"final-form-focus": "1.1.2",
|
|
24
|
+
"react-final-form": "6.4.0"
|
|
25
25
|
},
|
|
26
26
|
"peerDependencies": {
|
|
27
27
|
"@semcore/core": "^1.11",
|
|
@@ -34,5 +34,8 @@
|
|
|
34
34
|
"type": "git",
|
|
35
35
|
"url": "https://github.com/semrush/intergalactic.git",
|
|
36
36
|
"directory": "semcore/feedback-form"
|
|
37
|
+
},
|
|
38
|
+
"devDependencies": {
|
|
39
|
+
"@semcore/jest-preset-ui": "1.0.0"
|
|
37
40
|
}
|
|
38
41
|
}
|
|
@@ -25,18 +25,22 @@ class FeedbackForm extends Component {
|
|
|
25
25
|
};
|
|
26
26
|
|
|
27
27
|
static validate = {
|
|
28
|
-
description:
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
28
|
+
description:
|
|
29
|
+
(error) =>
|
|
30
|
+
(value = '') => {
|
|
31
|
+
const words = value.split(/\s+/);
|
|
32
|
+
const symbols = words.join(' ');
|
|
33
|
+
if (symbols.length < 10 || words.length < 3) {
|
|
34
|
+
return error;
|
|
35
|
+
}
|
|
36
|
+
},
|
|
37
|
+
email:
|
|
38
|
+
(error) =>
|
|
39
|
+
(value = '') => {
|
|
40
|
+
if (!/.+@.+\..+/i.test(String(value).toLowerCase())) {
|
|
41
|
+
return error;
|
|
42
|
+
}
|
|
43
|
+
},
|
|
40
44
|
};
|
|
41
45
|
|
|
42
46
|
focusDecorator = createFocusDecorator();
|
package/src/index.js
CHANGED