diff --git a/.changeset/tall-groups-behave.md b/.changeset/tall-groups-behave.md new file mode 100644 index 00000000..d388b6a5 --- /dev/null +++ b/.changeset/tall-groups-behave.md @@ -0,0 +1,5 @@ +--- +"@devgateway/dvz-ui-react": patch +--- + +Fix newsletter request body to include the list and tag diff --git a/packages/dvz-ui/src/embeddable/newsletter/README.md b/packages/dvz-ui/src/embeddable/newsletter/README.md index 6d5d073f..62b17dc4 100644 --- a/packages/dvz-ui/src/embeddable/newsletter/README.md +++ b/packages/dvz-ui/src/embeddable/newsletter/README.md @@ -15,7 +15,6 @@ An embeddable React component that renders a Mailchimp newsletter subscription f | `successmessage` | string | `"Thanks"` | Message displayed on successful subscription | | `failuremessage` | string | `"Something didn't go well"` | Message displayed on failed subscription | | `editing` | boolean | — | When truthy, shows both success and error messages simultaneously (editor preview) | -| `email` *(Redux)* | string | — | Current email input value (managed via Redux store) | | `status` *(Redux)* | string | — | Subscription status: `"OK"` or `"ERROR"` | ## Usage Example diff --git a/packages/dvz-ui/src/embeddable/newsletter/index.jsx b/packages/dvz-ui/src/embeddable/newsletter/index.jsx index ecb6cf9a..e2b5703f 100644 --- a/packages/dvz-ui/src/embeddable/newsletter/index.jsx +++ b/packages/dvz-ui/src/embeddable/newsletter/index.jsx @@ -7,14 +7,6 @@ const expresion = /^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/; const Index = (props) => { - - const submit = () => { - const list = props["data-list"]; - const tag = props["data-tag"]; - const {email} = props; - props.onSubmit({email, list, tag}) - } - const { status, editing, @@ -24,9 +16,15 @@ const Index = (props) => { "data-failure-message": failuremessage = "Something didn't go well", "data-label": label = "Send", "data-tag": tag, - email, - onChange - } = props + } = props; + + const [email, setEmail] = React.useState("") + + const submit = () => { + if (!expresion.test(email)) return + props.onSubmit({email, list, tag}) + } + let message = "" @@ -46,7 +44,7 @@ const Index = (props) => { return