diff --git a/.changeset/kind-starter-template-newsletter.md b/.changeset/kind-starter-template-newsletter.md new file mode 100644 index 000000000..45430cf65 --- /dev/null +++ b/.changeset/kind-starter-template-newsletter.md @@ -0,0 +1,5 @@ +--- +"vue-starter-template": patch +--- + +Remove the extra newsletter status call after subscribing on the account overview now that `useNewsletter` syncs from the API response. diff --git a/.changeset/sharp-eagles-sync.md b/.changeset/sharp-eagles-sync.md new file mode 100644 index 000000000..0e6c38dad --- /dev/null +++ b/.changeset/sharp-eagles-sync.md @@ -0,0 +1,5 @@ +--- +"@shopware/composables": patch +--- + +Update `useNewsletter` so `newsletterStatus` is set from the subscribe API response, keeping `isNewsletterSubscriber` in sync without an extra status request. diff --git a/.changeset/swift-demo-store-newsletter.md b/.changeset/swift-demo-store-newsletter.md new file mode 100644 index 000000000..e890478fe --- /dev/null +++ b/.changeset/swift-demo-store-newsletter.md @@ -0,0 +1,5 @@ +--- +"vue-demo-store": patch +--- + +Remove redundant newsletter status refresh on the account overview now that `useNewsletter` updates state after subscribe. diff --git a/packages/composables/src/useNewsletter/useNewsletter.ts b/packages/composables/src/useNewsletter/useNewsletter.ts index d9dd43148..4f2f70082 100644 --- a/packages/composables/src/useNewsletter/useNewsletter.ts +++ b/packages/composables/src/useNewsletter/useNewsletter.ts @@ -78,6 +78,7 @@ export function useNewsletter(): UseNewsletterReturn { }, }, ); + newsletterStatus.value = result.data.status; return result.data; } diff --git a/templates/vue-demo-store/app/pages/account/index.vue b/templates/vue-demo-store/app/pages/account/index.vue index 904d7118e..5d234056e 100644 --- a/templates/vue-demo-store/app/pages/account/index.vue +++ b/templates/vue-demo-store/app/pages/account/index.vue @@ -61,9 +61,6 @@ async function updateNewsletterStatus() { } } } finally { - await getNewsletterStatus(); - - newsletter.value = isNewsletterSubscriber.value; newsletterDisabled.value = false; } } diff --git a/templates/vue-starter-template/app/pages/account/index.vue b/templates/vue-starter-template/app/pages/account/index.vue index b7bd4243c..f4fdc0b92 100644 --- a/templates/vue-starter-template/app/pages/account/index.vue +++ b/templates/vue-starter-template/app/pages/account/index.vue @@ -24,8 +24,6 @@ async function handleNewsletterChange() { email: user.value?.email || "", option: SUBSCRIBE_KEY, }); - // Wait to avoid UI flickering - await getNewsletterStatus(); pushSuccess(t("account.overview.newsletter.messages.subscribed")); } else { await newsletterUnsubscribe(user.value?.email || "");