@automattic/data-stores 3.2.0 → 3.2.1
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 +4 -0
- package/dist/cjs/agents-manager/actions.js +116 -0
- package/dist/cjs/agents-manager/actions.js.map +1 -0
- package/dist/cjs/agents-manager/constants.js +5 -0
- package/dist/cjs/agents-manager/constants.js.map +1 -0
- package/dist/cjs/agents-manager/index.js +37 -0
- package/dist/cjs/agents-manager/index.js.map +1 -0
- package/dist/cjs/agents-manager/persist-state.js +58 -0
- package/dist/cjs/agents-manager/persist-state.js.map +1 -0
- package/dist/cjs/agents-manager/reducer.js +87 -0
- package/dist/cjs/agents-manager/reducer.js.map +1 -0
- package/dist/cjs/agents-manager/resolvers.js +60 -0
- package/dist/cjs/agents-manager/resolvers.js.map +1 -0
- package/dist/cjs/agents-manager/selectors.js +44 -0
- package/dist/cjs/agents-manager/selectors.js.map +1 -0
- package/dist/cjs/agents-manager/types.js +3 -0
- package/dist/cjs/agents-manager/types.js.map +1 -0
- package/dist/cjs/contextual-help/admin-sections.js +1 -1
- package/dist/cjs/contextual-help/admin-sections.js.map +1 -1
- package/dist/cjs/help-center/actions.js +67 -63
- package/dist/cjs/help-center/actions.js.map +1 -1
- package/dist/cjs/help-center/constants.js +2 -1
- package/dist/cjs/help-center/constants.js.map +1 -1
- package/dist/cjs/help-center/index.js +14 -27
- package/dist/cjs/help-center/index.js.map +1 -1
- package/dist/cjs/help-center/reducer.js +17 -2
- package/dist/cjs/help-center/reducer.js.map +1 -1
- package/dist/cjs/help-center/resolvers.js +45 -25
- package/dist/cjs/help-center/resolvers.js.map +1 -1
- package/dist/cjs/help-center/selectors.js +7 -1
- package/dist/cjs/help-center/selectors.js.map +1 -1
- package/dist/cjs/help-center/utils.js +136 -0
- package/dist/cjs/help-center/utils.js.map +1 -0
- package/dist/cjs/index.js +8 -3
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/mutations/use-domains-bulk-actions-mutation.js +3 -3
- package/dist/cjs/mutations/use-domains-bulk-actions-mutation.js.map +1 -1
- package/dist/cjs/newsletter-categories/index.js +2 -2
- package/dist/cjs/newsletter-categories/index.js.map +1 -1
- package/dist/cjs/onboard/actions.js +6 -1
- package/dist/cjs/onboard/actions.js.map +1 -1
- package/dist/cjs/onboard/reducer.js +12 -1
- package/dist/cjs/onboard/reducer.js.map +1 -1
- package/dist/cjs/onboard/selectors.js +3 -1
- package/dist/cjs/onboard/selectors.js.map +1 -1
- package/dist/cjs/plans/constants.js +3 -1
- package/dist/cjs/plans/constants.js.map +1 -1
- package/dist/cjs/plans/hooks/use-pricing-meta-for-grid-plans.js +35 -18
- package/dist/cjs/plans/hooks/use-pricing-meta-for-grid-plans.js.map +1 -1
- package/dist/cjs/plans/index.js +2 -1
- package/dist/cjs/plans/index.js.map +1 -1
- package/dist/cjs/plans/queries/use-plans.js +2 -2
- package/dist/cjs/plans/queries/use-plans.js.map +1 -1
- package/dist/cjs/plans/queries/use-site-plans.js +2 -2
- package/dist/cjs/plans/queries/use-site-plans.js.map +1 -1
- package/dist/cjs/plans/resolvers.js +0 -1
- package/dist/cjs/plans/resolvers.js.map +1 -1
- package/dist/cjs/plans/selectors.js.map +1 -1
- package/dist/cjs/products-list/queries/use-products.js +2 -2
- package/dist/cjs/products-list/queries/use-products.js.map +1 -1
- package/dist/cjs/products-list/resolvers.js +2 -2
- package/dist/cjs/products-list/resolvers.js.map +1 -1
- package/dist/cjs/purchases/lib/assembler.js +9 -4
- package/dist/cjs/purchases/lib/assembler.js.map +1 -1
- package/dist/cjs/purchases/queries/use-get-jetpack-transferred-license-purchases.js +2 -2
- package/dist/cjs/purchases/queries/use-get-jetpack-transferred-license-purchases.js.map +1 -1
- package/dist/cjs/purchases/queries/use-site-purchases.js +3 -3
- package/dist/cjs/purchases/queries/use-site-purchases.js.map +1 -1
- package/dist/cjs/queries/use-all-domains-query.js +2 -2
- package/dist/cjs/queries/use-all-domains-query.js.map +1 -1
- package/dist/cjs/queries/use-bulk-domain-update-status-query.js +3 -57
- package/dist/cjs/queries/use-bulk-domain-update-status-query.js.map +1 -1
- package/dist/cjs/queries/use-happiness-engineers-query.js +2 -2
- package/dist/cjs/queries/use-happiness-engineers-query.js.map +1 -1
- package/dist/cjs/queries/use-launchpad.js +5 -5
- package/dist/cjs/queries/use-launchpad.js.map +1 -1
- package/dist/cjs/queries/use-site-domains-query.js +2 -2
- package/dist/cjs/queries/use-site-domains-query.js.map +1 -1
- package/dist/cjs/queries/use-site-intent.js +2 -2
- package/dist/cjs/queries/use-site-intent.js.map +1 -1
- package/dist/cjs/queries/use-site-query.js +2 -2
- package/dist/cjs/queries/use-site-query.js.map +1 -1
- package/dist/cjs/reader/contexts/index.js +1 -4
- package/dist/cjs/reader/contexts/index.js.map +1 -1
- package/dist/cjs/reader/helpers/index.js +4 -3
- package/dist/cjs/reader/helpers/index.js.map +1 -1
- package/dist/cjs/reader/helpers/optimistic-update.js +2 -1
- package/dist/cjs/reader/helpers/optimistic-update.js.map +1 -1
- package/dist/cjs/reader/index.js +2 -8
- package/dist/cjs/reader/index.js.map +1 -1
- package/dist/cjs/reader/mutations/use-pending-site-confirm-mutation.js +2 -2
- package/dist/cjs/reader/mutations/use-pending-site-confirm-mutation.js.map +1 -1
- package/dist/cjs/reader/mutations/use-site-delivery-frequency-mutation.js +26 -20
- package/dist/cjs/reader/mutations/use-site-delivery-frequency-mutation.js.map +1 -1
- package/dist/cjs/reader/mutations/use-site-email-me-new-comments-mutation.js +4 -3
- package/dist/cjs/reader/mutations/use-site-email-me-new-comments-mutation.js.map +1 -1
- package/dist/cjs/reader/mutations/use-site-email-me-new-posts-mutation.js +4 -3
- package/dist/cjs/reader/mutations/use-site-email-me-new-posts-mutation.js.map +1 -1
- package/dist/cjs/reader/mutations/use-site-notify-me-of-new-posts-mutation.js +4 -3
- package/dist/cjs/reader/mutations/use-site-notify-me-of-new-posts-mutation.js.map +1 -1
- package/dist/cjs/reader/mutations/use-site-subscribe-mutation.js +10 -4
- package/dist/cjs/reader/mutations/use-site-subscribe-mutation.js.map +1 -1
- package/dist/cjs/reader/mutations/use-site-unsubscribe-mutation.js +11 -4
- package/dist/cjs/reader/mutations/use-site-unsubscribe-mutation.js.map +1 -1
- package/dist/cjs/reader/queries/index.js +2 -8
- package/dist/cjs/reader/queries/index.js.map +1 -1
- package/dist/cjs/reader/queries/use-site-subscriptions-query.js +27 -26
- package/dist/cjs/reader/queries/use-site-subscriptions-query.js.map +1 -1
- package/dist/cjs/site/queries/use-site-features.js +2 -2
- package/dist/cjs/site/queries/use-site-features.js.map +1 -1
- package/dist/cjs/site/queries/use-site-media-storage.js +2 -2
- package/dist/cjs/site/queries/use-site-media-storage.js.map +1 -1
- package/dist/cjs/site/queries/use-site-user-query.js +2 -2
- package/dist/cjs/site/queries/use-site-user-query.js.map +1 -1
- package/dist/cjs/site/queries/use-site.js +2 -2
- package/dist/cjs/site/queries/use-site.js.map +1 -1
- package/dist/cjs/site/resolvers.js +5 -5
- package/dist/cjs/site/resolvers.js.map +1 -1
- package/dist/cjs/site/selectors.js +5 -3
- package/dist/cjs/site/selectors.js.map +1 -1
- package/dist/cjs/site/types.js.map +1 -1
- package/dist/cjs/site-reset/use-site-reset-content-summary-query.js +2 -2
- package/dist/cjs/site-reset/use-site-reset-content-summary-query.js.map +1 -1
- package/dist/cjs/site-reset/use-site-reset-mutation.js +2 -2
- package/dist/cjs/site-reset/use-site-reset-mutation.js.map +1 -1
- package/dist/cjs/site-reset/use-site-reset-status-query.js +2 -2
- package/dist/cjs/site-reset/use-site-reset-status-query.js.map +1 -1
- package/dist/cjs/starter-designs-queries/use-starter-design-by-slug.js +2 -2
- package/dist/cjs/starter-designs-queries/use-starter-design-by-slug.js.map +1 -1
- package/dist/cjs/starter-designs-queries/use-starter-designs-query.js +2 -2
- package/dist/cjs/starter-designs-queries/use-starter-designs-query.js.map +1 -1
- package/dist/cjs/subscriber/actions.js +5 -5
- package/dist/cjs/subscriber/actions.js.map +1 -1
- package/dist/cjs/templates/use-template.js +2 -2
- package/dist/cjs/templates/use-template.js.map +1 -1
- package/dist/cjs/users/use-send-invites.js +2 -2
- package/dist/cjs/users/use-send-invites.js.map +1 -1
- package/dist/cjs/utils.js +26 -0
- package/dist/cjs/utils.js.map +1 -0
- package/dist/cjs/wpcom-request-controls/index.js +3 -2
- package/dist/cjs/wpcom-request-controls/index.js.map +1 -1
- package/dist/cjs/wpcom-request.js +24 -0
- package/dist/cjs/wpcom-request.js.map +1 -0
- package/dist/esm/agents-manager/actions.js +104 -0
- package/dist/esm/agents-manager/actions.js.map +1 -0
- package/dist/esm/agents-manager/constants.js +2 -0
- package/dist/esm/agents-manager/constants.js.map +1 -0
- package/dist/esm/agents-manager/index.js +31 -0
- package/dist/esm/agents-manager/index.js.map +1 -0
- package/dist/esm/agents-manager/persist-state.js +54 -0
- package/dist/esm/agents-manager/persist-state.js.map +1 -0
- package/dist/esm/agents-manager/reducer.js +82 -0
- package/dist/esm/agents-manager/reducer.js.map +1 -0
- package/dist/esm/agents-manager/resolvers.js +57 -0
- package/dist/esm/agents-manager/resolvers.js.map +1 -0
- package/dist/esm/agents-manager/selectors.js +31 -0
- package/dist/esm/agents-manager/selectors.js.map +1 -0
- package/dist/esm/agents-manager/types.js +2 -0
- package/dist/esm/agents-manager/types.js.map +1 -0
- package/dist/esm/contextual-help/admin-sections.js +1 -1
- package/dist/esm/contextual-help/admin-sections.js.map +1 -1
- package/dist/esm/help-center/actions.js +63 -61
- package/dist/esm/help-center/actions.js.map +1 -1
- package/dist/esm/help-center/constants.js +1 -0
- package/dist/esm/help-center/constants.js.map +1 -1
- package/dist/esm/help-center/index.js +11 -23
- package/dist/esm/help-center/index.js.map +1 -1
- package/dist/esm/help-center/reducer.js +17 -2
- package/dist/esm/help-center/reducer.js.map +1 -1
- package/dist/esm/help-center/resolvers.js +43 -25
- package/dist/esm/help-center/resolvers.js.map +1 -1
- package/dist/esm/help-center/selectors.js +3 -0
- package/dist/esm/help-center/selectors.js.map +1 -1
- package/dist/esm/help-center/utils.js +127 -0
- package/dist/esm/help-center/utils.js.map +1 -0
- package/dist/esm/index.js +4 -2
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/mutations/use-domains-bulk-actions-mutation.js +1 -1
- package/dist/esm/mutations/use-domains-bulk-actions-mutation.js.map +1 -1
- package/dist/esm/newsletter-categories/index.js +1 -1
- package/dist/esm/newsletter-categories/index.js.map +1 -1
- package/dist/esm/onboard/actions.js +4 -0
- package/dist/esm/onboard/actions.js.map +1 -1
- package/dist/esm/onboard/reducer.js +10 -0
- package/dist/esm/onboard/reducer.js.map +1 -1
- package/dist/esm/onboard/selectors.js +1 -0
- package/dist/esm/onboard/selectors.js.map +1 -1
- package/dist/esm/plans/constants.js +2 -0
- package/dist/esm/plans/constants.js.map +1 -1
- package/dist/esm/plans/hooks/use-pricing-meta-for-grid-plans.js +35 -18
- package/dist/esm/plans/hooks/use-pricing-meta-for-grid-plans.js.map +1 -1
- package/dist/esm/plans/index.js +1 -1
- package/dist/esm/plans/index.js.map +1 -1
- package/dist/esm/plans/queries/use-plans.js +1 -1
- package/dist/esm/plans/queries/use-site-plans.js +1 -1
- package/dist/esm/plans/resolvers.js +0 -1
- package/dist/esm/plans/resolvers.js.map +1 -1
- package/dist/esm/plans/selectors.js.map +1 -1
- package/dist/esm/products-list/queries/use-products.js +1 -1
- package/dist/esm/products-list/queries/use-products.js.map +1 -1
- package/dist/esm/products-list/resolvers.js +1 -1
- package/dist/esm/products-list/resolvers.js.map +1 -1
- package/dist/esm/purchases/lib/assembler.js +9 -4
- package/dist/esm/purchases/lib/assembler.js.map +1 -1
- package/dist/esm/purchases/queries/use-get-jetpack-transferred-license-purchases.js +1 -1
- package/dist/esm/purchases/queries/use-site-purchases.js +2 -2
- package/dist/esm/queries/use-all-domains-query.js +1 -1
- package/dist/esm/queries/use-all-domains-query.js.map +1 -1
- package/dist/esm/queries/use-bulk-domain-update-status-query.js +3 -56
- package/dist/esm/queries/use-bulk-domain-update-status-query.js.map +1 -1
- package/dist/esm/queries/use-happiness-engineers-query.js +1 -1
- package/dist/esm/queries/use-happiness-engineers-query.js.map +1 -1
- package/dist/esm/queries/use-launchpad.js +1 -1
- package/dist/esm/queries/use-launchpad.js.map +1 -1
- package/dist/esm/queries/use-site-domains-query.js +1 -1
- package/dist/esm/queries/use-site-domains-query.js.map +1 -1
- package/dist/esm/queries/use-site-intent.js +1 -1
- package/dist/esm/queries/use-site-intent.js.map +1 -1
- package/dist/esm/queries/use-site-query.js +1 -1
- package/dist/esm/queries/use-site-query.js.map +1 -1
- package/dist/esm/reader/contexts/index.js +0 -1
- package/dist/esm/reader/contexts/index.js.map +1 -1
- package/dist/esm/reader/helpers/index.js +3 -2
- package/dist/esm/reader/helpers/index.js.map +1 -1
- package/dist/esm/reader/helpers/optimistic-update.js +2 -1
- package/dist/esm/reader/helpers/optimistic-update.js.map +1 -1
- package/dist/esm/reader/index.js +2 -3
- package/dist/esm/reader/index.js.map +1 -1
- package/dist/esm/reader/mutations/use-pending-site-confirm-mutation.js +2 -2
- package/dist/esm/reader/mutations/use-pending-site-confirm-mutation.js.map +1 -1
- package/dist/esm/reader/mutations/use-site-delivery-frequency-mutation.js +27 -21
- package/dist/esm/reader/mutations/use-site-delivery-frequency-mutation.js.map +1 -1
- package/dist/esm/reader/mutations/use-site-email-me-new-comments-mutation.js +5 -4
- package/dist/esm/reader/mutations/use-site-email-me-new-comments-mutation.js.map +1 -1
- package/dist/esm/reader/mutations/use-site-email-me-new-posts-mutation.js +5 -4
- package/dist/esm/reader/mutations/use-site-email-me-new-posts-mutation.js.map +1 -1
- package/dist/esm/reader/mutations/use-site-notify-me-of-new-posts-mutation.js +5 -4
- package/dist/esm/reader/mutations/use-site-notify-me-of-new-posts-mutation.js.map +1 -1
- package/dist/esm/reader/mutations/use-site-subscribe-mutation.js +10 -4
- package/dist/esm/reader/mutations/use-site-subscribe-mutation.js.map +1 -1
- package/dist/esm/reader/mutations/use-site-unsubscribe-mutation.js +11 -4
- package/dist/esm/reader/mutations/use-site-unsubscribe-mutation.js.map +1 -1
- package/dist/esm/reader/queries/index.js +1 -4
- package/dist/esm/reader/queries/index.js.map +1 -1
- package/dist/esm/reader/queries/use-site-subscriptions-query.js +28 -27
- package/dist/esm/reader/queries/use-site-subscriptions-query.js.map +1 -1
- package/dist/esm/site/queries/use-site-features.js +1 -1
- package/dist/esm/site/queries/use-site-media-storage.js +1 -1
- package/dist/esm/site/queries/use-site-user-query.js +1 -1
- package/dist/esm/site/queries/use-site-user-query.js.map +1 -1
- package/dist/esm/site/queries/use-site.js +1 -1
- package/dist/esm/site/resolvers.js +1 -1
- package/dist/esm/site/resolvers.js.map +1 -1
- package/dist/esm/site/selectors.js +5 -3
- package/dist/esm/site/selectors.js.map +1 -1
- package/dist/esm/site/types.js.map +1 -1
- package/dist/esm/site-reset/use-site-reset-content-summary-query.js +1 -1
- package/dist/esm/site-reset/use-site-reset-content-summary-query.js.map +1 -1
- package/dist/esm/site-reset/use-site-reset-mutation.js +1 -1
- package/dist/esm/site-reset/use-site-reset-mutation.js.map +1 -1
- package/dist/esm/site-reset/use-site-reset-status-query.js +1 -1
- package/dist/esm/site-reset/use-site-reset-status-query.js.map +1 -1
- package/dist/esm/starter-designs-queries/use-starter-design-by-slug.js +1 -1
- package/dist/esm/starter-designs-queries/use-starter-design-by-slug.js.map +1 -1
- package/dist/esm/starter-designs-queries/use-starter-designs-query.js +1 -1
- package/dist/esm/starter-designs-queries/use-starter-designs-query.js.map +1 -1
- package/dist/esm/subscriber/actions.js +1 -1
- package/dist/esm/subscriber/actions.js.map +1 -1
- package/dist/esm/templates/use-template.js +1 -1
- package/dist/esm/templates/use-template.js.map +1 -1
- package/dist/esm/users/use-send-invites.js +1 -1
- package/dist/esm/users/use-send-invites.js.map +1 -1
- package/dist/esm/utils.js +21 -0
- package/dist/esm/utils.js.map +1 -0
- package/dist/esm/wpcom-request-controls/index.js +2 -1
- package/dist/esm/wpcom-request-controls/index.js.map +1 -1
- package/dist/esm/wpcom-request.js +18 -0
- package/dist/esm/wpcom-request.js.map +1 -0
- package/dist/tsconfig-cjs.tsbuildinfo +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/types/add-ons/types.d.ts +1 -0
- package/dist/types/add-ons/types.d.ts.map +1 -1
- package/dist/types/agents-manager/actions.d.ts +77 -0
- package/dist/types/agents-manager/actions.d.ts.map +1 -0
- package/dist/types/agents-manager/constants.d.ts +2 -0
- package/dist/types/agents-manager/constants.d.ts.map +1 -0
- package/dist/types/agents-manager/index.d.ts +6 -0
- package/dist/types/agents-manager/index.d.ts.map +1 -0
- package/dist/types/agents-manager/persist-state.d.ts +6 -0
- package/dist/types/agents-manager/persist-state.d.ts.map +1 -0
- package/dist/types/agents-manager/reducer.d.ts +29 -0
- package/dist/types/agents-manager/reducer.d.ts.map +1 -0
- package/dist/types/agents-manager/resolvers.d.ts +54 -0
- package/dist/types/agents-manager/resolvers.d.ts.map +1 -0
- package/dist/types/agents-manager/selectors.d.ts +22 -0
- package/dist/types/agents-manager/selectors.d.ts.map +1 -0
- package/dist/types/agents-manager/types.d.ts +20 -0
- package/dist/types/agents-manager/types.d.ts.map +1 -0
- package/dist/types/contextual-help/admin-sections.d.ts +330 -6
- package/dist/types/contextual-help/admin-sections.d.ts.map +1 -1
- package/dist/types/contextual-help/contextual-help.d.ts +410 -30
- package/dist/types/contextual-help/contextual-help.d.ts.map +1 -1
- package/dist/types/help-center/actions.d.ts +235 -30
- package/dist/types/help-center/actions.d.ts.map +1 -1
- package/dist/types/help-center/constants.d.ts +1 -0
- package/dist/types/help-center/constants.d.ts.map +1 -1
- package/dist/types/help-center/index.d.ts +1 -2
- package/dist/types/help-center/index.d.ts.map +1 -1
- package/dist/types/help-center/reducer.d.ts +13 -2
- package/dist/types/help-center/reducer.d.ts.map +1 -1
- package/dist/types/help-center/resolvers.d.ts +4 -31
- package/dist/types/help-center/resolvers.d.ts.map +1 -1
- package/dist/types/help-center/selectors.d.ts +11 -1
- package/dist/types/help-center/selectors.d.ts.map +1 -1
- package/dist/types/help-center/types.d.ts +20 -12
- package/dist/types/help-center/types.d.ts.map +1 -1
- package/dist/types/help-center/utils.d.ts +13 -0
- package/dist/types/help-center/utils.d.ts.map +1 -0
- package/dist/types/index.d.ts +18 -298
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/onboard/actions.d.ts +19 -3
- package/dist/types/onboard/actions.d.ts.map +1 -1
- package/dist/types/onboard/reducer.d.ts +4 -1
- package/dist/types/onboard/reducer.d.ts.map +1 -1
- package/dist/types/onboard/selectors.d.ts +8 -6
- package/dist/types/onboard/selectors.d.ts.map +1 -1
- package/dist/types/plans/constants.d.ts +3 -2
- package/dist/types/plans/constants.d.ts.map +1 -1
- package/dist/types/plans/hooks/use-pricing-meta-for-grid-plans.d.ts +6 -1
- package/dist/types/plans/hooks/use-pricing-meta-for-grid-plans.d.ts.map +1 -1
- package/dist/types/plans/index.d.ts +1 -1
- package/dist/types/plans/index.d.ts.map +1 -1
- package/dist/types/plans/resolvers.d.ts.map +1 -1
- package/dist/types/plans/types.d.ts +6 -0
- package/dist/types/plans/types.d.ts.map +1 -1
- package/dist/types/products-list/index.d.ts +1 -1
- package/dist/types/products-list/index.d.ts.map +1 -1
- package/dist/types/products-list/queries/use-products.d.ts.map +1 -1
- package/dist/types/purchases/lib/assembler.d.ts.map +1 -1
- package/dist/types/purchases/types.d.ts +37 -0
- package/dist/types/purchases/types.d.ts.map +1 -1
- package/dist/types/queries/use-all-domains-query.d.ts +2 -2
- package/dist/types/queries/use-all-domains-query.d.ts.map +1 -1
- package/dist/types/queries/use-bulk-domain-update-status-query.d.ts +5 -48
- package/dist/types/queries/use-bulk-domain-update-status-query.d.ts.map +1 -1
- package/dist/types/queries/use-site-intent.d.ts.map +1 -1
- package/dist/types/reader/contexts/index.d.ts +0 -1
- package/dist/types/reader/contexts/index.d.ts.map +1 -1
- package/dist/types/reader/helpers/index.d.ts.map +1 -1
- package/dist/types/reader/helpers/optimistic-update.d.ts.map +1 -1
- package/dist/types/reader/index.d.ts +13 -299
- package/dist/types/reader/index.d.ts.map +1 -1
- package/dist/types/reader/mutations/use-site-delivery-frequency-mutation.d.ts +3 -2
- package/dist/types/reader/mutations/use-site-delivery-frequency-mutation.d.ts.map +1 -1
- package/dist/types/reader/mutations/use-site-email-me-new-comments-mutation.d.ts +3 -2
- package/dist/types/reader/mutations/use-site-email-me-new-comments-mutation.d.ts.map +1 -1
- package/dist/types/reader/mutations/use-site-email-me-new-posts-mutation.d.ts +3 -2
- package/dist/types/reader/mutations/use-site-email-me-new-posts-mutation.d.ts.map +1 -1
- package/dist/types/reader/mutations/use-site-notify-me-of-new-posts-mutation.d.ts +3 -2
- package/dist/types/reader/mutations/use-site-notify-me-of-new-posts-mutation.d.ts.map +1 -1
- package/dist/types/reader/mutations/use-site-subscribe-mutation.d.ts +3 -2
- package/dist/types/reader/mutations/use-site-subscribe-mutation.d.ts.map +1 -1
- package/dist/types/reader/mutations/use-site-unsubscribe-mutation.d.ts +3 -2
- package/dist/types/reader/mutations/use-site-unsubscribe-mutation.d.ts.map +1 -1
- package/dist/types/reader/queries/index.d.ts +1 -5
- package/dist/types/reader/queries/index.d.ts.map +1 -1
- package/dist/types/reader/queries/use-site-subscriptions-query.d.ts +6 -225
- package/dist/types/reader/queries/use-site-subscriptions-query.d.ts.map +1 -1
- package/dist/types/reader/types/index.d.ts +32 -44
- package/dist/types/reader/types/index.d.ts.map +1 -1
- package/dist/types/shared-types.d.ts +11 -0
- package/dist/types/shared-types.d.ts.map +1 -1
- package/dist/types/site/actions.d.ts +1 -1
- package/dist/types/site/actions.d.ts.map +1 -1
- package/dist/types/site/queries/use-site-user-query.d.ts.map +1 -1
- package/dist/types/site/selectors.d.ts.map +1 -1
- package/dist/types/site/types.d.ts +4 -1
- package/dist/types/site/types.d.ts.map +1 -1
- package/dist/types/starter-designs-queries/types.d.ts +1 -1
- package/dist/types/starter-designs-queries/types.d.ts.map +1 -1
- package/dist/types/starter-designs-queries/use-starter-design-by-slug.d.ts +1 -1
- package/dist/types/starter-designs-queries/use-starter-design-by-slug.d.ts.map +1 -1
- package/dist/types/starter-designs-queries/use-starter-designs-query.d.ts +1 -1
- package/dist/types/starter-designs-queries/use-starter-designs-query.d.ts.map +1 -1
- package/dist/types/subscriber/index.d.ts +1 -1
- package/dist/types/subscriber/index.d.ts.map +1 -1
- package/dist/types/utils.d.ts +3 -0
- package/dist/types/utils.d.ts.map +1 -0
- package/dist/types/wpcom-plans-ui/actions.d.ts +1 -1
- package/dist/types/wpcom-plans-ui/index.d.ts +1 -1
- package/dist/types/wpcom-plans-ui/index.d.ts.map +1 -1
- package/dist/types/wpcom-request-controls/index.d.ts +1 -1
- package/dist/types/wpcom-request-controls/index.d.ts.map +1 -1
- package/dist/types/wpcom-request.d.ts +7 -0
- package/dist/types/wpcom-request.d.ts.map +1 -0
- package/package.json +23 -22
- package/src/add-ons/types.ts +1 -0
- package/src/agents-manager/actions.ts +151 -0
- package/src/agents-manager/constants.ts +1 -0
- package/src/agents-manager/index.ts +38 -0
- package/src/agents-manager/persist-state.ts +60 -0
- package/src/agents-manager/reducer.ts +106 -0
- package/src/agents-manager/resolvers.ts +87 -0
- package/src/agents-manager/selectors.ts +32 -0
- package/src/agents-manager/test/persist-state.test.ts +81 -0
- package/src/agents-manager/test/reducer.test.ts +69 -0
- package/src/agents-manager/types.ts +24 -0
- package/src/contextual-help/admin-sections.ts +1 -1
- package/src/help-center/actions.ts +101 -76
- package/src/help-center/constants.ts +1 -0
- package/src/help-center/index.ts +11 -32
- package/src/help-center/reducer.ts +29 -5
- package/src/help-center/resolvers.ts +46 -38
- package/src/help-center/selectors.ts +3 -0
- package/src/help-center/test/utils.ts +99 -0
- package/src/help-center/types.ts +22 -13
- package/src/help-center/utils.ts +156 -0
- package/src/index.ts +11 -1
- package/src/mutations/use-domains-bulk-actions-mutation.ts +1 -1
- package/src/newsletter-categories/index.ts +1 -1
- package/src/newsletter-categories/test/index.tsx +5 -2
- package/src/onboard/actions.ts +7 -2
- package/src/onboard/reducer.ts +12 -2
- package/src/onboard/selectors.ts +1 -0
- package/src/plans/constants.ts +2 -0
- package/src/plans/hooks/test/use-pricing-meta-for-grid-plans.ts +120 -0
- package/src/plans/hooks/use-pricing-meta-for-grid-plans.ts +48 -18
- package/src/plans/index.ts +1 -0
- package/src/plans/queries/use-plans.ts +1 -1
- package/src/plans/queries/use-site-plans.ts +1 -1
- package/src/plans/resolvers.ts +0 -1
- package/src/plans/selectors.ts +9 -9
- package/src/plans/types.ts +6 -0
- package/src/products-list/queries/use-products.ts +1 -1
- package/src/products-list/resolvers.ts +1 -1
- package/src/products-list/selectors.ts +1 -1
- package/src/products-list/test/selectors.ts +2 -2
- package/src/purchases/lib/assembler.ts +10 -4
- package/src/purchases/queries/use-get-jetpack-transferred-license-purchases.tsx +1 -1
- package/src/purchases/queries/use-site-purchases.ts +2 -2
- package/src/purchases/types.ts +43 -0
- package/src/queries/use-all-domains-query.ts +3 -3
- package/src/queries/use-bulk-domain-update-status-query.ts +14 -115
- package/src/queries/use-happiness-engineers-query.ts +1 -1
- package/src/queries/use-launchpad.ts +1 -1
- package/src/queries/use-site-domains-query.ts +1 -1
- package/src/queries/use-site-intent.ts +1 -1
- package/src/queries/use-site-query.ts +1 -1
- package/src/reader/contexts/index.ts +0 -4
- package/src/reader/helpers/index.ts +3 -2
- package/src/reader/helpers/optimistic-update.ts +2 -1
- package/src/reader/index.ts +2 -4
- package/src/reader/mutations/test/use-site-subscription-mutations.test.tsx +208 -0
- package/src/reader/mutations/use-pending-site-confirm-mutation.ts +2 -2
- package/src/reader/mutations/use-site-delivery-frequency-mutation.ts +32 -36
- package/src/reader/mutations/use-site-email-me-new-comments-mutation.ts +10 -10
- package/src/reader/mutations/use-site-email-me-new-posts-mutation.ts +10 -10
- package/src/reader/mutations/use-site-notify-me-of-new-posts-mutation.ts +10 -10
- package/src/reader/mutations/use-site-subscribe-mutation.ts +21 -10
- package/src/reader/mutations/use-site-unsubscribe-mutation.ts +20 -10
- package/src/reader/queries/index.ts +4 -6
- package/src/reader/queries/test/use-site-subscriptions-query.tsx +158 -52
- package/src/reader/queries/use-site-subscriptions-query.ts +53 -55
- package/src/reader/types/index.ts +34 -48
- package/src/shared-types.ts +13 -0
- package/src/site/actions.ts +1 -1
- package/src/site/queries/use-site-features.ts +1 -1
- package/src/site/queries/use-site-media-storage.ts +1 -1
- package/src/site/queries/use-site-user-query.ts +1 -1
- package/src/site/queries/use-site.ts +1 -1
- package/src/site/resolvers.ts +1 -1
- package/src/site/selectors.ts +18 -10
- package/src/site/test/selectors.ts +3 -3
- package/src/site/types.ts +4 -1
- package/src/site-reset/test/use-site-reset-mutation.tsx +3 -4
- package/src/site-reset/use-site-reset-content-summary-query.ts +1 -1
- package/src/site-reset/use-site-reset-mutation.ts +1 -1
- package/src/site-reset/use-site-reset-status-query.ts +1 -1
- package/src/starter-designs-queries/types.ts +1 -1
- package/src/starter-designs-queries/use-starter-design-by-slug.ts +2 -2
- package/src/starter-designs-queries/use-starter-designs-query.ts +2 -2
- package/src/subscriber/actions.ts +1 -1
- package/src/templates/use-template.ts +1 -1
- package/src/users/use-send-invites.ts +1 -1
- package/src/utils.ts +33 -0
- package/src/wpcom-request-controls/index.ts +2 -1
- package/src/wpcom-request.ts +26 -0
- package/dist/cjs/reader/contexts/unsubscribed-feeds-search.js +0 -26
- package/dist/cjs/reader/contexts/unsubscribed-feeds-search.js.map +0 -1
- package/dist/cjs/reader/queries/use-read-feed-query.js +0 -21
- package/dist/cjs/reader/queries/use-read-feed-query.js.map +0 -1
- package/dist/cjs/reader/queries/use-read-feed-search-query.js +0 -39
- package/dist/cjs/reader/queries/use-read-feed-search-query.js.map +0 -1
- package/dist/cjs/reader/queries/use-read-feed-site-query.js +0 -26
- package/dist/cjs/reader/queries/use-read-feed-site-query.js.map +0 -1
- package/dist/esm/reader/contexts/unsubscribed-feeds-search.js +0 -20
- package/dist/esm/reader/contexts/unsubscribed-feeds-search.js.map +0 -1
- package/dist/esm/reader/queries/use-read-feed-query.js +0 -18
- package/dist/esm/reader/queries/use-read-feed-query.js.map +0 -1
- package/dist/esm/reader/queries/use-read-feed-search-query.js +0 -35
- package/dist/esm/reader/queries/use-read-feed-search-query.js.map +0 -1
- package/dist/esm/reader/queries/use-read-feed-site-query.js +0 -23
- package/dist/esm/reader/queries/use-read-feed-site-query.js.map +0 -1
- package/dist/types/reader/contexts/unsubscribed-feeds-search.d.ts +0 -12
- package/dist/types/reader/contexts/unsubscribed-feeds-search.d.ts.map +0 -1
- package/dist/types/reader/queries/use-read-feed-query.d.ts +0 -28
- package/dist/types/reader/queries/use-read-feed-query.d.ts.map +0 -1
- package/dist/types/reader/queries/use-read-feed-search-query.d.ts +0 -34
- package/dist/types/reader/queries/use-read-feed-search-query.d.ts.map +0 -1
- package/dist/types/reader/queries/use-read-feed-site-query.d.ts +0 -15
- package/dist/types/reader/queries/use-read-feed-site-query.d.ts.map +0 -1
- package/src/reader/contexts/unsubscribed-feeds-search.tsx +0 -35
- package/src/reader/queries/test/use-read-feed-search-query.tsx +0 -55
- package/src/reader/queries/use-read-feed-query.ts +0 -45
- package/src/reader/queries/use-read-feed-search-query.ts +0 -72
- package/src/reader/queries/use-read-feed-site-query.ts +0 -35
|
@@ -147,6 +147,87 @@ describe( 'usePricingMetaForGridPlans', () => {
|
|
|
147
147
|
expect( pricingMeta ).toEqual( expectedPricingMeta );
|
|
148
148
|
} );
|
|
149
149
|
|
|
150
|
+
describe( 'current plan with an active introductory offer', () => {
|
|
151
|
+
beforeEach( () => {
|
|
152
|
+
Plans.useCurrentPlan.mockImplementation( () => ( {
|
|
153
|
+
productSlug: PLAN_BUSINESS,
|
|
154
|
+
planSlug: PLAN_BUSINESS,
|
|
155
|
+
purchaseId: 1234,
|
|
156
|
+
} ) );
|
|
157
|
+
// Yearly purchase: renewal 600/yr, active intro 120/yr.
|
|
158
|
+
Purchases.useSitePurchaseById.mockImplementation( () => ( {
|
|
159
|
+
priceInteger: 600,
|
|
160
|
+
currencyCode: 'USD',
|
|
161
|
+
billPeriodDays: 365,
|
|
162
|
+
introductoryOffer: {
|
|
163
|
+
isWithinPeriod: true,
|
|
164
|
+
costPerIntervalInteger: 120,
|
|
165
|
+
},
|
|
166
|
+
} ) );
|
|
167
|
+
} );
|
|
168
|
+
|
|
169
|
+
it( 'should return the intro price as the headline plus a renewal price for the experiment treatment', () => {
|
|
170
|
+
const pricingMeta = usePricingMetaForGridPlans( {
|
|
171
|
+
planSlugs: [ PLAN_BUSINESS ],
|
|
172
|
+
siteId,
|
|
173
|
+
coupon: undefined,
|
|
174
|
+
useCheckPlanAvailabilityForPurchase,
|
|
175
|
+
showBillingDescriptionForIncreasedRenewalPrice: 'crossed_price',
|
|
176
|
+
} );
|
|
177
|
+
|
|
178
|
+
const expectedPricingMeta = {
|
|
179
|
+
[ PLAN_BUSINESS ]: {
|
|
180
|
+
originalPrice: {
|
|
181
|
+
full: 120,
|
|
182
|
+
monthly: 10,
|
|
183
|
+
},
|
|
184
|
+
discountedPrice: {
|
|
185
|
+
full: null,
|
|
186
|
+
monthly: null,
|
|
187
|
+
},
|
|
188
|
+
billingPeriod: 365,
|
|
189
|
+
currencyCode: 'USD',
|
|
190
|
+
expiry: null,
|
|
191
|
+
introOffer: undefined,
|
|
192
|
+
renewalPrice: {
|
|
193
|
+
full: 600,
|
|
194
|
+
monthly: 50,
|
|
195
|
+
},
|
|
196
|
+
},
|
|
197
|
+
};
|
|
198
|
+
|
|
199
|
+
expect( pricingMeta ).toEqual( expectedPricingMeta );
|
|
200
|
+
} );
|
|
201
|
+
|
|
202
|
+
it( 'should return the renewal price as the headline for non-treatment users', () => {
|
|
203
|
+
const pricingMeta = usePricingMetaForGridPlans( {
|
|
204
|
+
planSlugs: [ PLAN_BUSINESS ],
|
|
205
|
+
siteId,
|
|
206
|
+
coupon: undefined,
|
|
207
|
+
useCheckPlanAvailabilityForPurchase,
|
|
208
|
+
} );
|
|
209
|
+
|
|
210
|
+
const expectedPricingMeta = {
|
|
211
|
+
[ PLAN_BUSINESS ]: {
|
|
212
|
+
originalPrice: {
|
|
213
|
+
full: 600,
|
|
214
|
+
monthly: 50,
|
|
215
|
+
},
|
|
216
|
+
discountedPrice: {
|
|
217
|
+
full: null,
|
|
218
|
+
monthly: null,
|
|
219
|
+
},
|
|
220
|
+
billingPeriod: 365,
|
|
221
|
+
currencyCode: 'USD',
|
|
222
|
+
expiry: null,
|
|
223
|
+
introOffer: undefined,
|
|
224
|
+
},
|
|
225
|
+
};
|
|
226
|
+
|
|
227
|
+
expect( pricingMeta ).toEqual( expectedPricingMeta );
|
|
228
|
+
} );
|
|
229
|
+
} );
|
|
230
|
+
|
|
150
231
|
it( 'should return the original price as the site plan price and discounted price as Null for plans not available for purchase', () => {
|
|
151
232
|
Plans.useCurrentPlan.mockImplementation( () => ( {
|
|
152
233
|
productSlug: PLAN_BUSINESS,
|
|
@@ -301,6 +382,45 @@ describe( 'usePricingMetaForGridPlans', () => {
|
|
|
301
382
|
}
|
|
302
383
|
);
|
|
303
384
|
|
|
385
|
+
it.each( [
|
|
386
|
+
COST_OVERRIDE_REASONS.RECENT_PLAN_PRORATION,
|
|
387
|
+
COST_OVERRIDE_REASONS.RECENT_DOMAIN_PRORATION,
|
|
388
|
+
] )(
|
|
389
|
+
"should suppress discounted price when proration override '%s' is not the first cost override entry",
|
|
390
|
+
( overrideCode ) => {
|
|
391
|
+
Plans.useCurrentPlan.mockImplementation( () => ( {
|
|
392
|
+
productSlug: PLAN_PERSONAL,
|
|
393
|
+
planSlug: PLAN_PERSONAL,
|
|
394
|
+
} ) );
|
|
395
|
+
|
|
396
|
+
Plans.useSitePlans.mockImplementation( () => ( {
|
|
397
|
+
isLoading: false,
|
|
398
|
+
data: {
|
|
399
|
+
[ PLAN_BUSINESS ]: {
|
|
400
|
+
...SITE_PLANS[ PLAN_BUSINESS ],
|
|
401
|
+
pricing: {
|
|
402
|
+
...SITE_PLANS[ PLAN_BUSINESS ].pricing,
|
|
403
|
+
costOverrides: [ { overrideCode: 'multiterm-upgrade' }, { overrideCode } ],
|
|
404
|
+
},
|
|
405
|
+
},
|
|
406
|
+
},
|
|
407
|
+
} ) );
|
|
408
|
+
|
|
409
|
+
const pricingMeta = usePricingMetaForGridPlans( {
|
|
410
|
+
planSlugs: [ PLAN_BUSINESS ],
|
|
411
|
+
siteId,
|
|
412
|
+
coupon: undefined,
|
|
413
|
+
useCheckPlanAvailabilityForPurchase,
|
|
414
|
+
withProratedDiscounts: false,
|
|
415
|
+
} );
|
|
416
|
+
|
|
417
|
+
expect( pricingMeta?.[ PLAN_BUSINESS ]?.discountedPrice ).toEqual( {
|
|
418
|
+
full: null,
|
|
419
|
+
monthly: null,
|
|
420
|
+
} );
|
|
421
|
+
}
|
|
422
|
+
);
|
|
423
|
+
|
|
304
424
|
it( 'should return intro offer when available', () => {
|
|
305
425
|
Plans.useIntroOffers.mockImplementation( () => ( {
|
|
306
426
|
[ PLAN_BUSINESS ]: introOffer,
|
|
@@ -58,6 +58,12 @@ interface Props {
|
|
|
58
58
|
* from the final price.
|
|
59
59
|
*/
|
|
60
60
|
reflectStorageSelectionInPlanPrices?: boolean;
|
|
61
|
+
|
|
62
|
+
/**
|
|
63
|
+
* Renewal-pricing experiment flag. When falsy (non-treatment), the current plan's
|
|
64
|
+
* headline uses the renewal price, not an active intro price.
|
|
65
|
+
*/
|
|
66
|
+
showBillingDescriptionForIncreasedRenewalPrice?: string | null;
|
|
61
67
|
}
|
|
62
68
|
|
|
63
69
|
function getTotalPrice( planPrice: number | null | undefined, addOnPrice = 0 ): number | null {
|
|
@@ -81,6 +87,7 @@ const usePricingMetaForGridPlans = ( {
|
|
|
81
87
|
useCheckPlanAvailabilityForPurchase,
|
|
82
88
|
withProratedDiscounts,
|
|
83
89
|
reflectStorageSelectionInPlanPrices = false,
|
|
90
|
+
showBillingDescriptionForIncreasedRenewalPrice,
|
|
84
91
|
}: Props ): { [ planSlug: string ]: Plans.PricingMetaForGridPlan } | null => {
|
|
85
92
|
// plans - should have a definition for all plans, being the main source of API data
|
|
86
93
|
const plans = Plans.usePlans( { coupon } );
|
|
@@ -117,6 +124,7 @@ const usePricingMetaForGridPlans = ( {
|
|
|
117
124
|
discountedPrice: Plans.PlanPricing[ 'discountedPrice' ];
|
|
118
125
|
currencyCode: Plans.PlanPricing[ 'currencyCode' ];
|
|
119
126
|
introOffer: Plans.PlanPricing[ 'introOffer' ];
|
|
127
|
+
renewalPrice?: Plans.PlanPricing[ 'originalPrice' ];
|
|
120
128
|
};
|
|
121
129
|
}
|
|
122
130
|
| null = null;
|
|
@@ -185,18 +193,38 @@ const usePricingMetaForGridPlans = ( {
|
|
|
185
193
|
let fullPrice = sitePlan?.pricing.originalPrice.full;
|
|
186
194
|
|
|
187
195
|
/**
|
|
188
|
-
*
|
|
196
|
+
* Spotlight (current) plan headline. Only the renewal-pricing experiment treatment shows
|
|
197
|
+
* the active intro price (with a separate "renews at" line); everyone else sees the renewal
|
|
198
|
+
* price, so the headline is never lower than what they'll actually pay.
|
|
189
199
|
*/
|
|
200
|
+
let renewalPrice: Plans.PlanPricing[ 'originalPrice' ] | undefined;
|
|
201
|
+
|
|
190
202
|
if ( purchasedPlan ) {
|
|
203
|
+
const showIntroOfferHeadline =
|
|
204
|
+
!! showBillingDescriptionForIncreasedRenewalPrice &&
|
|
205
|
+
purchasedPlan.introductoryOffer?.isWithinPeriod;
|
|
206
|
+
const currentTermPrice = showIntroOfferHeadline
|
|
207
|
+
? purchasedPlan.introductoryOffer!.costPerIntervalInteger
|
|
208
|
+
: purchasedPlan.priceInteger;
|
|
191
209
|
const isMonthly = purchasedPlan.billPeriodDays === PLAN_MONTHLY_PERIOD;
|
|
192
210
|
|
|
193
|
-
if ( isMonthly && monthlyPrice !==
|
|
194
|
-
monthlyPrice =
|
|
195
|
-
fullPrice = parseFloat( (
|
|
196
|
-
} else if ( fullPrice !==
|
|
211
|
+
if ( isMonthly && monthlyPrice !== currentTermPrice ) {
|
|
212
|
+
monthlyPrice = currentTermPrice;
|
|
213
|
+
fullPrice = parseFloat( ( currentTermPrice * 12 ).toFixed( 2 ) );
|
|
214
|
+
} else if ( fullPrice !== currentTermPrice ) {
|
|
197
215
|
const term = getTermFromDuration( purchasedPlan.billPeriodDays ) || '';
|
|
198
|
-
monthlyPrice = calculateMonthlyPrice( term,
|
|
199
|
-
fullPrice =
|
|
216
|
+
monthlyPrice = calculateMonthlyPrice( term, currentTermPrice );
|
|
217
|
+
fullPrice = currentTermPrice;
|
|
218
|
+
}
|
|
219
|
+
|
|
220
|
+
if ( showIntroOfferHeadline ) {
|
|
221
|
+
const renewalTerm = getTermFromDuration( purchasedPlan.billPeriodDays ) || '';
|
|
222
|
+
renewalPrice = {
|
|
223
|
+
monthly: isMonthly
|
|
224
|
+
? purchasedPlan.priceInteger
|
|
225
|
+
: calculateMonthlyPrice( renewalTerm, purchasedPlan.priceInteger ),
|
|
226
|
+
full: purchasedPlan.priceInteger,
|
|
227
|
+
};
|
|
200
228
|
}
|
|
201
229
|
}
|
|
202
230
|
|
|
@@ -214,6 +242,7 @@ const usePricingMetaForGridPlans = ( {
|
|
|
214
242
|
currencyCode: purchasedPlan
|
|
215
243
|
? purchasedPlan?.currencyCode
|
|
216
244
|
: plan?.pricing?.currencyCode,
|
|
245
|
+
...( renewalPrice && { renewalPrice } ),
|
|
217
246
|
},
|
|
218
247
|
];
|
|
219
248
|
}
|
|
@@ -234,13 +263,13 @@ const usePricingMetaForGridPlans = ( {
|
|
|
234
263
|
// If there is, however, a sale coupon, show the discounted price
|
|
235
264
|
// without proration. This isn't ideal, but is intentional. Because of
|
|
236
265
|
// this, the price will differ between the plans grid and checkout screen.
|
|
237
|
-
const
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
266
|
+
const hasProratedCostOverride = sitePlan?.pricing?.costOverrides?.some(
|
|
267
|
+
( { overrideCode } ) =>
|
|
268
|
+
[
|
|
269
|
+
COST_OVERRIDE_REASONS.RECENT_PLAN_PRORATION,
|
|
270
|
+
COST_OVERRIDE_REASONS.RECENT_DOMAIN_PRORATION,
|
|
271
|
+
].includes( overrideCode )
|
|
272
|
+
);
|
|
244
273
|
if (
|
|
245
274
|
! sitePlan?.pricing?.hasSaleCoupon &&
|
|
246
275
|
! withProratedDiscounts &&
|
|
@@ -258,7 +287,7 @@ const usePricingMetaForGridPlans = ( {
|
|
|
258
287
|
...( sitePlan?.pricing.introOffer && {
|
|
259
288
|
introOffer: {
|
|
260
289
|
...sitePlan?.pricing.introOffer,
|
|
261
|
-
rawPrice: introOfferPrice,
|
|
290
|
+
...( introOfferPrice && { rawPrice: introOfferPrice } ),
|
|
262
291
|
},
|
|
263
292
|
} ),
|
|
264
293
|
},
|
|
@@ -282,7 +311,7 @@ const usePricingMetaForGridPlans = ( {
|
|
|
282
311
|
...( sitePlan?.pricing.introOffer && {
|
|
283
312
|
introOffer: {
|
|
284
313
|
...sitePlan?.pricing.introOffer,
|
|
285
|
-
rawPrice: introOfferPrice,
|
|
314
|
+
...( introOfferPrice && { rawPrice: introOfferPrice } ),
|
|
286
315
|
},
|
|
287
316
|
} ),
|
|
288
317
|
},
|
|
@@ -314,7 +343,7 @@ const usePricingMetaForGridPlans = ( {
|
|
|
314
343
|
...( plan?.pricing.introOffer && {
|
|
315
344
|
introOffer: {
|
|
316
345
|
...plan?.pricing.introOffer,
|
|
317
|
-
rawPrice: introOfferPrice,
|
|
346
|
+
...( introOfferPrice && { rawPrice: introOfferPrice } ),
|
|
318
347
|
},
|
|
319
348
|
} ),
|
|
320
349
|
},
|
|
@@ -342,7 +371,7 @@ const usePricingMetaForGridPlans = ( {
|
|
|
342
371
|
...( plan?.pricing.introOffer && {
|
|
343
372
|
introOffer: {
|
|
344
373
|
...plan?.pricing.introOffer,
|
|
345
|
-
rawPrice: introOfferPrice,
|
|
374
|
+
...( introOfferPrice && { rawPrice: introOfferPrice } ),
|
|
346
375
|
},
|
|
347
376
|
} ),
|
|
348
377
|
},
|
|
@@ -366,6 +395,7 @@ const usePricingMetaForGridPlans = ( {
|
|
|
366
395
|
currencyCode: planPrices?.[ planSlug ]?.currencyCode,
|
|
367
396
|
expiry: sitePlans.data?.[ planSlug ]?.expiry,
|
|
368
397
|
introOffer: planPrices?.[ planSlug ]?.introOffer,
|
|
398
|
+
renewalPrice: planPrices?.[ planSlug ]?.renewalPrice,
|
|
369
399
|
},
|
|
370
400
|
} ),
|
|
371
401
|
{} as { [ planSlug in PlanSlug ]?: Plans.PricingMetaForGridPlan }
|
package/src/plans/index.ts
CHANGED
|
@@ -2,7 +2,7 @@ import { isEnabled } from '@automattic/calypso-config';
|
|
|
2
2
|
import { calculateMonthlyPriceForPlan } from '@automattic/calypso-products';
|
|
3
3
|
import { useLocale } from '@automattic/i18n-utils';
|
|
4
4
|
import { useQuery, type UseQueryResult } from '@tanstack/react-query';
|
|
5
|
-
import wpcomRequest from 'wpcom-
|
|
5
|
+
import wpcomRequest from '../../wpcom-request';
|
|
6
6
|
import unpackIntroOffer from './lib/unpack-intro-offer';
|
|
7
7
|
import useQueryKeysFactory from './lib/use-query-keys-factory';
|
|
8
8
|
import type { PricedAPIPlan, PlanNext } from '../types';
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { calculateMonthlyPriceForPlan } from '@automattic/calypso-products';
|
|
2
2
|
import { useQuery, type UseQueryResult } from '@tanstack/react-query';
|
|
3
|
-
import wpcomRequest from 'wpcom-
|
|
3
|
+
import wpcomRequest from '../../wpcom-request';
|
|
4
4
|
import unpackCostOverrides from './lib/unpack-cost-overrides';
|
|
5
5
|
import unpackIntroOffer from './lib/unpack-intro-offer';
|
|
6
6
|
import useQueryKeysFactory from './lib/use-query-keys-factory';
|
package/src/plans/resolvers.ts
CHANGED
|
@@ -142,7 +142,6 @@ function normalizePlanProducts(
|
|
|
142
142
|
periodAgnosticSlug: periodAgnosticPlan.periodAgnosticSlug,
|
|
143
143
|
storeSlug: planProduct.product_slug,
|
|
144
144
|
rawPrice: planProduct.raw_price,
|
|
145
|
-
// Not all plans returned from /plans have a `path_slug` (e.g. monthly plans don't have)
|
|
146
145
|
pathSlug: planProduct.path_slug,
|
|
147
146
|
price:
|
|
148
147
|
planProduct?.bill_period === MONTHLY_PLAN_BILLING_PERIOD || planProduct.raw_price === 0
|
package/src/plans/selectors.ts
CHANGED
|
@@ -38,7 +38,7 @@ export const getPlanByProductId = (
|
|
|
38
38
|
return undefined;
|
|
39
39
|
}
|
|
40
40
|
|
|
41
|
-
return ( select( STORE_KEY ) as PlansSelect )
|
|
41
|
+
return ( select( STORE_KEY ) as unknown as PlansSelect )
|
|
42
42
|
.getSupportedPlans( locale )
|
|
43
43
|
.find( ( plan: Plan ) => plan.productIds.indexOf( productId ) > -1 );
|
|
44
44
|
};
|
|
@@ -51,7 +51,7 @@ export const getPlanProductById = (
|
|
|
51
51
|
return undefined;
|
|
52
52
|
}
|
|
53
53
|
|
|
54
|
-
return ( select( STORE_KEY ) as PlansSelect )
|
|
54
|
+
return ( select( STORE_KEY ) as unknown as PlansSelect )
|
|
55
55
|
.getPlansProducts()
|
|
56
56
|
.find( ( product: PlanProduct ) => product.productId === productId );
|
|
57
57
|
};
|
|
@@ -64,19 +64,19 @@ export const getPlanByPeriodAgnosticSlug = (
|
|
|
64
64
|
if ( ! slug ) {
|
|
65
65
|
return undefined;
|
|
66
66
|
}
|
|
67
|
-
return ( select( STORE_KEY ) as PlansSelect )
|
|
67
|
+
return ( select( STORE_KEY ) as unknown as PlansSelect )
|
|
68
68
|
.getSupportedPlans( locale )
|
|
69
69
|
.find( ( plan: Plan ) => plan.periodAgnosticSlug === slug );
|
|
70
70
|
};
|
|
71
71
|
|
|
72
72
|
export const getDefaultPaidPlan = ( _: State, locale: string ): Plan | undefined => {
|
|
73
|
-
return ( select( STORE_KEY ) as PlansSelect )
|
|
73
|
+
return ( select( STORE_KEY ) as unknown as PlansSelect )
|
|
74
74
|
.getSupportedPlans( locale )
|
|
75
75
|
.find( ( plan: Plan ) => plan.periodAgnosticSlug === DEFAULT_PAID_PLAN );
|
|
76
76
|
};
|
|
77
77
|
|
|
78
78
|
export const getDefaultFreePlan = ( _: State, locale: string ): Plan | undefined => {
|
|
79
|
-
return ( select( STORE_KEY ) as PlansSelect )
|
|
79
|
+
return ( select( STORE_KEY ) as unknown as PlansSelect )
|
|
80
80
|
.getSupportedPlans( locale )
|
|
81
81
|
.find( ( plan: Plan ) => plan.periodAgnosticSlug === TIMELESS_PLAN_FREE );
|
|
82
82
|
};
|
|
@@ -98,7 +98,7 @@ export const getPrices = ( _state: State, _locale: string ): Record< StorePlanSl
|
|
|
98
98
|
deprecate( 'getPrices', {
|
|
99
99
|
alternative: 'getPlanProduct().price',
|
|
100
100
|
} );
|
|
101
|
-
return ( select( STORE_KEY ) as PlansSelect ).getPlansProducts().reduce(
|
|
101
|
+
return ( select( STORE_KEY ) as unknown as PlansSelect ).getPlansProducts().reduce(
|
|
102
102
|
( prices: Record< StorePlanSlug, string >, plan: PlanProduct ) => {
|
|
103
103
|
prices[ plan.storeSlug ] = plan.price;
|
|
104
104
|
return prices;
|
|
@@ -116,7 +116,7 @@ export const getPlanByPath = (
|
|
|
116
116
|
return undefined;
|
|
117
117
|
}
|
|
118
118
|
|
|
119
|
-
const planProduct = ( select( STORE_KEY ) as PlansSelect )
|
|
119
|
+
const planProduct = ( select( STORE_KEY ) as unknown as PlansSelect )
|
|
120
120
|
.getPlansProducts()
|
|
121
121
|
.find( ( product: PlanProduct ) => product.pathSlug === path );
|
|
122
122
|
|
|
@@ -124,7 +124,7 @@ export const getPlanByPath = (
|
|
|
124
124
|
return undefined;
|
|
125
125
|
}
|
|
126
126
|
|
|
127
|
-
return ( select( STORE_KEY ) as PlansSelect )
|
|
127
|
+
return ( select( STORE_KEY ) as unknown as PlansSelect )
|
|
128
128
|
.getSupportedPlans( locale )
|
|
129
129
|
.find( ( plan: Plan ) => plan.periodAgnosticSlug === planProduct.periodAgnosticSlug );
|
|
130
130
|
};
|
|
@@ -138,7 +138,7 @@ export const getPlanProduct = (
|
|
|
138
138
|
return undefined;
|
|
139
139
|
}
|
|
140
140
|
|
|
141
|
-
return ( select( STORE_KEY ) as PlansSelect )
|
|
141
|
+
return ( select( STORE_KEY ) as unknown as PlansSelect )
|
|
142
142
|
.getPlansProducts()
|
|
143
143
|
.find( ( product: PlanProduct ) => {
|
|
144
144
|
const matchesSlug = product.periodAgnosticSlug === periodAgnosticSlug;
|
package/src/plans/types.ts
CHANGED
|
@@ -146,6 +146,12 @@ export interface PricingMetaForGridPlan {
|
|
|
146
146
|
*/
|
|
147
147
|
introOffer?: PlanPricing[ 'introOffer' ];
|
|
148
148
|
expiry?: SitePlan[ 'expiry' ];
|
|
149
|
+
/**
|
|
150
|
+
* The renewal price for the current plan when it differs from originalPrice
|
|
151
|
+
* (e.g. when the current billing term has an active intro offer).
|
|
152
|
+
* Used by renewal pricing text to show what the plan will cost after the offer ends.
|
|
153
|
+
*/
|
|
154
|
+
renewalPrice?: PlanPricing[ 'originalPrice' ];
|
|
149
155
|
}
|
|
150
156
|
|
|
151
157
|
export interface SitePlan {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { useLocale } from '@automattic/i18n-utils';
|
|
2
2
|
import { useQuery, type UseQueryResult } from '@tanstack/react-query';
|
|
3
|
-
import wpcomRequest from 'wpcom-proxy-request';
|
|
4
3
|
import * as ProductsList from '../../products-list';
|
|
4
|
+
import wpcomRequest from '../../wpcom-request';
|
|
5
5
|
import useQueryKeysFactory from './lib/use-query-keys-factory';
|
|
6
6
|
import type { StoreProductSlug, Product, RawAPIProductsList } from '../types';
|
|
7
7
|
|
|
@@ -14,7 +14,7 @@ export const getProductBySlug = ( _state: State, slug: string ) => {
|
|
|
14
14
|
return undefined;
|
|
15
15
|
}
|
|
16
16
|
const products = (
|
|
17
|
-
select( STORE_KEY ) as { getProductsList: () => RawAPIProductsList | undefined }
|
|
17
|
+
select( STORE_KEY ) as unknown as { getProductsList: () => RawAPIProductsList | undefined }
|
|
18
18
|
).getProductsList();
|
|
19
19
|
|
|
20
20
|
if ( ! products ) {
|
|
@@ -6,10 +6,10 @@
|
|
|
6
6
|
* @jest-environment jsdom
|
|
7
7
|
*/
|
|
8
8
|
import { select, subscribe } from '@wordpress/data';
|
|
9
|
-
import wpcomRequest from 'wpcom-proxy-request';
|
|
10
9
|
import { store } from '../';
|
|
10
|
+
import wpcomRequest from '../../wpcom-request';
|
|
11
11
|
|
|
12
|
-
jest.mock( 'wpcom-
|
|
12
|
+
jest.mock( '../../wpcom-request', () => ( {
|
|
13
13
|
__esModule: true,
|
|
14
14
|
default: jest.fn(),
|
|
15
15
|
} ) );
|
|
@@ -5,6 +5,10 @@ export function createPurchaseObject( purchase: RawPurchase ): Purchase {
|
|
|
5
5
|
const object: Purchase = {
|
|
6
6
|
id: Number( purchase.ID ),
|
|
7
7
|
amount: Number( purchase.amount ),
|
|
8
|
+
advertisedTotalUploadSpaceInGb:
|
|
9
|
+
purchase.advertised_total_upload_space_in_gb == null
|
|
10
|
+
? null
|
|
11
|
+
: Number( purchase.advertised_total_upload_space_in_gb ),
|
|
8
12
|
attachedToPurchaseId: Number( purchase.attached_to_purchase_id ),
|
|
9
13
|
autoRenewCouponCode: purchase.auto_renew_coupon_code,
|
|
10
14
|
autoRenewCouponDiscountPercentage: Number( purchase.auto_renew_coupon_discount_percentage ),
|
|
@@ -15,9 +19,7 @@ export function createPurchaseObject( purchase: RawPurchase ): Purchase {
|
|
|
15
19
|
canDisableAutoRenew: Boolean( purchase.can_disable_auto_renew ),
|
|
16
20
|
canReenableAutoRenewal: Boolean( purchase.can_reenable_auto_renewal ),
|
|
17
21
|
canExplicitRenew: Boolean( purchase.can_explicit_renew ),
|
|
18
|
-
costToUnbundleText: purchase.cost_to_unbundle_display
|
|
19
|
-
? purchase.cost_to_unbundle_display
|
|
20
|
-
: purchase.price_text,
|
|
22
|
+
costToUnbundleText: purchase.cost_to_unbundle_display ?? '',
|
|
21
23
|
currencyCode: purchase.currency_code,
|
|
22
24
|
currencySymbol: purchase.currency_symbol,
|
|
23
25
|
description: purchase.description,
|
|
@@ -25,6 +27,7 @@ export function createPurchaseObject( purchase: RawPurchase ): Purchase {
|
|
|
25
27
|
domainRegistrationAgreementUrl: purchase.domain_registration_agreement_url || null,
|
|
26
28
|
blogCreatedDate: purchase.blog_created_date,
|
|
27
29
|
expiryDate: purchase.expiry_date,
|
|
30
|
+
paymentExpiryDate: purchase.payment_expiry_date,
|
|
28
31
|
expiryStatus: snakeToCamelCase( purchase.expiry_status ),
|
|
29
32
|
iapPurchaseManagementLink: purchase.iap_purchase_management_link,
|
|
30
33
|
includedDomain: purchase.included_domain,
|
|
@@ -32,6 +35,7 @@ export function createPurchaseObject( purchase: RawPurchase ): Purchase {
|
|
|
32
35
|
introductoryOffer: purchase.introductory_offer
|
|
33
36
|
? {
|
|
34
37
|
costPerInterval: Number( purchase.introductory_offer.cost_per_interval ),
|
|
38
|
+
costPerIntervalInteger: Number( purchase.introductory_offer.cost_per_interval_integer ),
|
|
35
39
|
endDate: String( purchase.introductory_offer.end_date ),
|
|
36
40
|
intervalCount: Number( purchase.introductory_offer.interval_count ),
|
|
37
41
|
intervalUnit: String( purchase.introductory_offer.interval_unit ),
|
|
@@ -57,8 +61,9 @@ export function createPurchaseObject( purchase: RawPurchase ): Purchase {
|
|
|
57
61
|
isHundredYearDomain: Boolean( purchase.is_hundred_year_domain ),
|
|
58
62
|
isLocked: Boolean( purchase.is_locked ),
|
|
59
63
|
isInAppPurchase: Boolean( purchase.is_iap_purchase ),
|
|
60
|
-
isRechargeable: Boolean( purchase.
|
|
64
|
+
isRechargeable: Boolean( purchase.is_rechargeable ),
|
|
61
65
|
isRefundable: Boolean( purchase.is_refundable ),
|
|
66
|
+
isWithinInitialRefundWindow: Boolean( purchase.is_within_initial_refund_window ),
|
|
62
67
|
isRenewable: Boolean( purchase.is_renewable ),
|
|
63
68
|
isRenewal: Boolean( purchase.is_renewal ),
|
|
64
69
|
isWooExpressTrial: Boolean( purchase.is_woo_express_trial ),
|
|
@@ -116,6 +121,7 @@ export function createPurchaseObject( purchase: RawPurchase ): Purchase {
|
|
|
116
121
|
userId: Number( purchase.user_id ),
|
|
117
122
|
isAutoRenewEnabled: purchase.is_auto_renew_enabled,
|
|
118
123
|
isJetpackPlanOrProduct: purchase.is_jetpack_plan_or_product,
|
|
124
|
+
isAttachedToHoldingSite: Boolean( purchase.is_attached_to_holding_site ),
|
|
119
125
|
};
|
|
120
126
|
|
|
121
127
|
if ( isCreditCardPurchase( purchase ) ) {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { useQuery } from '@tanstack/react-query';
|
|
2
|
-
import wpcomRequest from 'wpcom-
|
|
2
|
+
import wpcomRequest from '../../wpcom-request';
|
|
3
3
|
import { createPurchaseObject } from '../lib/assembler';
|
|
4
4
|
import useQueryKeysFactory from './lib/use-query-keys-factory';
|
|
5
5
|
import type { RawPurchase, Purchase } from '../types';
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { useQuery } from '@tanstack/react-query';
|
|
2
|
-
import wpcomRequest from 'wpcom-
|
|
2
|
+
import wpcomRequest from '../../wpcom-request';
|
|
3
3
|
import { createPurchaseObject } from '../lib/assembler';
|
|
4
4
|
import useQueryKeysFactory from './lib/use-query-keys-factory';
|
|
5
5
|
import type { RawPurchase, Purchase } from '../types';
|
|
@@ -21,7 +21,7 @@ export function getUseSitePurchasesOptions(
|
|
|
21
21
|
queryFn: async (): Promise< PurchasesIndex > => {
|
|
22
22
|
const purchases: RawPurchase[] = await wpcomRequest( {
|
|
23
23
|
path: `/sites/${ encodeURIComponent( siteId as string ) }/purchases`,
|
|
24
|
-
apiVersion: '1.
|
|
24
|
+
apiVersion: '1.2',
|
|
25
25
|
} );
|
|
26
26
|
|
|
27
27
|
return Object.fromEntries(
|
package/src/purchases/types.ts
CHANGED
|
@@ -2,6 +2,7 @@ import { PriceTierEntry } from '@automattic/calypso-products';
|
|
|
2
2
|
|
|
3
3
|
export interface Purchase {
|
|
4
4
|
amount: number;
|
|
5
|
+
advertisedTotalUploadSpaceInGb?: number | null;
|
|
5
6
|
attachedToPurchaseId: number;
|
|
6
7
|
billPeriodDays: number;
|
|
7
8
|
billPeriodLabel: string;
|
|
@@ -10,7 +11,17 @@ export interface Purchase {
|
|
|
10
11
|
asyncPendingPaymentBlockIsSet: boolean;
|
|
11
12
|
canExplicitRenew: boolean;
|
|
12
13
|
canReenableAutoRenewal: boolean;
|
|
14
|
+
|
|
15
|
+
/**
|
|
16
|
+
* If this upgrade is a domain and a domain credit was used to purchase it,
|
|
17
|
+
* and the plan is within its refund period, then `cost_to_unbundle_display`
|
|
18
|
+
* will be the formatted amount of the amount that would be withheld to keep
|
|
19
|
+
* the domain if the plan is cancelled.
|
|
20
|
+
*
|
|
21
|
+
* If there is nothing that would be withheld, this will be null.
|
|
22
|
+
*/
|
|
13
23
|
costToUnbundleText: string;
|
|
24
|
+
|
|
14
25
|
currencyCode: string;
|
|
15
26
|
currencySymbol: string;
|
|
16
27
|
description: string;
|
|
@@ -28,10 +39,23 @@ export interface Purchase {
|
|
|
28
39
|
|
|
29
40
|
domainRegistrationAgreementUrl: string | null;
|
|
30
41
|
expiryDate: string;
|
|
42
|
+
|
|
43
|
+
/**
|
|
44
|
+
* The expiry date in ISO 8601 (YYYY-MM-DD) if the payment method has one.
|
|
45
|
+
*/
|
|
46
|
+
paymentExpiryDate: string | undefined;
|
|
47
|
+
|
|
31
48
|
expiryStatus: string;
|
|
32
49
|
iapPurchaseManagementLink: string | null;
|
|
33
50
|
id: number;
|
|
51
|
+
|
|
52
|
+
/**
|
|
53
|
+
* If this subscription is for a plan with a bundled domain, this will
|
|
54
|
+
* contain the domain name for that domain subscription. Otherwise this will
|
|
55
|
+
* be an empty string.
|
|
56
|
+
*/
|
|
34
57
|
includedDomain: string;
|
|
58
|
+
|
|
35
59
|
includedDomainPurchaseAmount: number;
|
|
36
60
|
introductoryOffer: PurchaseIntroductoryOffer | null;
|
|
37
61
|
isAutoRenewEnabled: boolean;
|
|
@@ -43,6 +67,7 @@ export interface Purchase {
|
|
|
43
67
|
isLocked: boolean;
|
|
44
68
|
isRechargeable: boolean;
|
|
45
69
|
isRefundable: boolean;
|
|
70
|
+
isWithinInitialRefundWindow: boolean;
|
|
46
71
|
isRenewable: boolean;
|
|
47
72
|
isRenewal: boolean;
|
|
48
73
|
isWooExpressTrial: boolean;
|
|
@@ -170,6 +195,7 @@ export interface Purchase {
|
|
|
170
195
|
autoRenewCouponDiscountPercentage: number | null;
|
|
171
196
|
|
|
172
197
|
isJetpackPlanOrProduct: boolean;
|
|
198
|
+
isAttachedToHoldingSite: boolean;
|
|
173
199
|
}
|
|
174
200
|
|
|
175
201
|
export interface PurchasePriceTier {
|
|
@@ -196,6 +222,7 @@ export interface RefundOptions {
|
|
|
196
222
|
|
|
197
223
|
export interface RawPurchaseIntroductoryOffer {
|
|
198
224
|
cost_per_interval: number;
|
|
225
|
+
cost_per_interval_integer: number;
|
|
199
226
|
end_date: string;
|
|
200
227
|
interval_count: number;
|
|
201
228
|
interval_unit: string;
|
|
@@ -209,6 +236,7 @@ export interface RawPurchaseIntroductoryOffer {
|
|
|
209
236
|
|
|
210
237
|
export interface PurchaseIntroductoryOffer {
|
|
211
238
|
costPerInterval: number;
|
|
239
|
+
costPerIntervalInteger: number;
|
|
212
240
|
endDate: string;
|
|
213
241
|
intervalCount: number;
|
|
214
242
|
intervalUnit: string;
|
|
@@ -226,6 +254,11 @@ export interface PurchasePayment {
|
|
|
226
254
|
countryCode: string | undefined | null;
|
|
227
255
|
countryName: string | undefined;
|
|
228
256
|
storedDetailsId: string | number | undefined | null;
|
|
257
|
+
/**
|
|
258
|
+
* The expiry date in MM/YY if the payment method has one.
|
|
259
|
+
*
|
|
260
|
+
* Use `paymentExpiryDate` on the Purchase if possible as it will be more accurate.
|
|
261
|
+
*/
|
|
229
262
|
expiryDate?: string;
|
|
230
263
|
creditCard?: PurchasePaymentCreditCard;
|
|
231
264
|
paymentPartner?: string;
|
|
@@ -240,6 +273,11 @@ export type PurchasePaymentWithPayPal = PurchasePayment & {
|
|
|
240
273
|
countryName: string | undefined;
|
|
241
274
|
storedDetailsId: string | number;
|
|
242
275
|
type: string;
|
|
276
|
+
/**
|
|
277
|
+
* The expiry date in MM/YY if the payment method has one.
|
|
278
|
+
*
|
|
279
|
+
* Use `paymentExpiryDate` on the Purchase if possible as it will be more accurate.
|
|
280
|
+
*/
|
|
243
281
|
expiryDate: string;
|
|
244
282
|
};
|
|
245
283
|
|
|
@@ -262,5 +300,10 @@ export interface PurchasePaymentCreditCard {
|
|
|
262
300
|
displayBrand: string | null;
|
|
263
301
|
processor: string;
|
|
264
302
|
number: string;
|
|
303
|
+
/**
|
|
304
|
+
* The expiry date in MM/YY if the payment method has one.
|
|
305
|
+
*
|
|
306
|
+
* Use `paymentExpiryDate` on the Purchase if possible as it will be more accurate.
|
|
307
|
+
*/
|
|
265
308
|
expiryDate: string;
|
|
266
309
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { UseQueryOptions, useQuery } from '@tanstack/react-query';
|
|
2
2
|
import { addQueryArgs } from '@wordpress/url';
|
|
3
|
-
import wpcomRequest from 'wpcom-
|
|
3
|
+
import wpcomRequest from '../wpcom-request';
|
|
4
4
|
import type { DomainData } from './use-site-domains-query';
|
|
5
5
|
|
|
6
6
|
// The data returned by the /all-domains endpoint only includes the basic data
|
|
@@ -30,10 +30,10 @@ export interface AllDomainsQueryFnData {
|
|
|
30
30
|
domains: PartialDomainData[];
|
|
31
31
|
}
|
|
32
32
|
|
|
33
|
-
export
|
|
33
|
+
export type AllDomainsQueryArgs = {
|
|
34
34
|
no_wpcom?: boolean;
|
|
35
35
|
resolve_status?: boolean;
|
|
36
|
-
}
|
|
36
|
+
};
|
|
37
37
|
|
|
38
38
|
export const getAllDomainsQueryKey = ( queryArgs: AllDomainsQueryArgs = {} ) => [
|
|
39
39
|
'all-domains',
|