@semcore/feedback-form 4.0.2 → 4.0.3
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
CHANGED
|
@@ -2,6 +2,12 @@
|
|
|
2
2
|
|
|
3
3
|
CHANGELOG.md standards are inspired by [keepachangelog.com](https://keepachangelog.com/en/1.0.0/).
|
|
4
4
|
|
|
5
|
+
## [4.0.3] - 2022-03-14
|
|
6
|
+
|
|
7
|
+
### Changed
|
|
8
|
+
|
|
9
|
+
- Version patch update due to children dependencies update (`@semcore/utils` [3.31.2 ~> 3.31.2], `@semcore/button` [3.3.6 ~> 3.3.7]).
|
|
10
|
+
|
|
5
11
|
## [4.0.2] - 2022-03-05
|
|
6
12
|
|
|
7
13
|
### Changed
|
|
@@ -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"}
|
|
@@ -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"}
|
package/package.json
CHANGED
|
@@ -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();
|