@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
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
import apiFetch from '@wordpress/api-fetch';
|
|
2
|
+
import wpcomRequest, { canAccessWpcomApis } from '../../wpcom-request';
|
|
3
|
+
import { persistAgentsManagerState } from '../persist-state';
|
|
4
|
+
|
|
5
|
+
jest.mock( '@wordpress/api-fetch', () => ( {
|
|
6
|
+
__esModule: true,
|
|
7
|
+
default: jest.fn(),
|
|
8
|
+
} ) );
|
|
9
|
+
|
|
10
|
+
jest.mock( '../../wpcom-request', () => ( {
|
|
11
|
+
__esModule: true,
|
|
12
|
+
default: jest.fn(),
|
|
13
|
+
canAccessWpcomApis: jest.fn(),
|
|
14
|
+
} ) );
|
|
15
|
+
|
|
16
|
+
const mockRequest = wpcomRequest as unknown as jest.Mock;
|
|
17
|
+
const mockApiFetch = apiFetch as unknown as jest.Mock;
|
|
18
|
+
const mockCanAccess = canAccessWpcomApis as unknown as jest.Mock;
|
|
19
|
+
|
|
20
|
+
// Let the queued flush chain (microtasks) run to completion.
|
|
21
|
+
const tick = () => new Promise( ( resolve ) => setTimeout( resolve, 0 ) );
|
|
22
|
+
|
|
23
|
+
describe( 'persistAgentsManagerState', () => {
|
|
24
|
+
beforeEach( () => {
|
|
25
|
+
jest.clearAllMocks();
|
|
26
|
+
mockCanAccess.mockReturnValue( true );
|
|
27
|
+
mockRequest.mockResolvedValue( undefined );
|
|
28
|
+
mockApiFetch.mockResolvedValue( undefined );
|
|
29
|
+
} );
|
|
30
|
+
|
|
31
|
+
it( 'sends a single save as one wpcom request', async () => {
|
|
32
|
+
persistAgentsManagerState( { agents_manager_minimized: false } );
|
|
33
|
+
|
|
34
|
+
expect( mockRequest ).toHaveBeenCalledTimes( 1 );
|
|
35
|
+
expect( mockRequest ).toHaveBeenCalledWith(
|
|
36
|
+
expect.objectContaining( { body: { state: { agents_manager_minimized: false } } } )
|
|
37
|
+
);
|
|
38
|
+
await tick();
|
|
39
|
+
} );
|
|
40
|
+
|
|
41
|
+
it( 'coalesces saves that arrive mid-flight into one merged follow-up request', async () => {
|
|
42
|
+
let finishFirst: () => void = () => {};
|
|
43
|
+
mockRequest.mockReturnValueOnce(
|
|
44
|
+
new Promise< void >( ( resolve ) => ( finishFirst = resolve ) )
|
|
45
|
+
);
|
|
46
|
+
|
|
47
|
+
// First save goes out immediately and stays in flight.
|
|
48
|
+
persistAgentsManagerState( { agents_manager_router_history: 'a' } );
|
|
49
|
+
// These arrive while it's in flight — they must not race; they merge.
|
|
50
|
+
persistAgentsManagerState( { agents_manager_minimized: false } );
|
|
51
|
+
persistAgentsManagerState( { agents_manager_router_history: 'b' } );
|
|
52
|
+
|
|
53
|
+
expect( mockRequest ).toHaveBeenCalledTimes( 1 );
|
|
54
|
+
|
|
55
|
+
finishFirst();
|
|
56
|
+
await tick();
|
|
57
|
+
|
|
58
|
+
// One follow-up carrying the merged state (last value wins per key).
|
|
59
|
+
expect( mockRequest ).toHaveBeenCalledTimes( 2 );
|
|
60
|
+
expect( mockRequest ).toHaveBeenLastCalledWith(
|
|
61
|
+
expect.objectContaining( {
|
|
62
|
+
body: { state: { agents_manager_minimized: false, agents_manager_router_history: 'b' } },
|
|
63
|
+
} )
|
|
64
|
+
);
|
|
65
|
+
} );
|
|
66
|
+
|
|
67
|
+
it( 'falls back to apiFetch when wpcom APIs are unavailable', async () => {
|
|
68
|
+
mockCanAccess.mockReturnValue( false );
|
|
69
|
+
|
|
70
|
+
persistAgentsManagerState( { agents_manager_open: true } );
|
|
71
|
+
|
|
72
|
+
expect( mockRequest ).not.toHaveBeenCalled();
|
|
73
|
+
expect( mockApiFetch ).toHaveBeenCalledWith(
|
|
74
|
+
expect.objectContaining( {
|
|
75
|
+
path: '/agents-manager/open-state',
|
|
76
|
+
data: { agents_manager_open: true },
|
|
77
|
+
} )
|
|
78
|
+
);
|
|
79
|
+
await tick();
|
|
80
|
+
} );
|
|
81
|
+
} );
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import { isMinimized, isSplitScreen } from '../reducer';
|
|
2
|
+
import { getIsMinimized, getIsSplitScreen } from '../selectors';
|
|
3
|
+
import type { State } from '../reducer';
|
|
4
|
+
|
|
5
|
+
const setSplit = ( isSplit: boolean ) =>
|
|
6
|
+
( { type: 'AGENTS_MANAGER_SET_SPLIT_SCREEN', isSplitScreen: isSplit } ) as const;
|
|
7
|
+
|
|
8
|
+
const setMinimized = ( minimized: boolean ) =>
|
|
9
|
+
( { type: 'AGENTS_MANAGER_SET_MINIMIZED', isMinimized: minimized } ) as const;
|
|
10
|
+
|
|
11
|
+
describe( 'isSplitScreen reducer slice', () => {
|
|
12
|
+
it( 'defaults to false', () => {
|
|
13
|
+
expect( isSplitScreen( undefined, { type: '@@INIT' } as never ) ).toBe( false );
|
|
14
|
+
} );
|
|
15
|
+
|
|
16
|
+
it( 'returns the action value on `AGENTS_MANAGER_SET_SPLIT_SCREEN`', () => {
|
|
17
|
+
expect( isSplitScreen( false, setSplit( true ) ) ).toBe( true );
|
|
18
|
+
expect( isSplitScreen( true, setSplit( false ) ) ).toBe( false );
|
|
19
|
+
} );
|
|
20
|
+
|
|
21
|
+
it( 'leaves state untouched on unrelated actions', () => {
|
|
22
|
+
expect(
|
|
23
|
+
isSplitScreen( true, { type: 'AGENTS_MANAGER_SET_OPEN', isOpen: false } as never )
|
|
24
|
+
).toBe( true );
|
|
25
|
+
} );
|
|
26
|
+
|
|
27
|
+
it( 'resets to false when the sidebar is undocked', () => {
|
|
28
|
+
const undock = { type: 'AGENTS_MANAGER_SET_DOCKED', isDocked: false } as never;
|
|
29
|
+
expect( isSplitScreen( true, undock ) ).toBe( false );
|
|
30
|
+
} );
|
|
31
|
+
|
|
32
|
+
it( 'preserves state when the sidebar is (re-)docked', () => {
|
|
33
|
+
const dock = { type: 'AGENTS_MANAGER_SET_DOCKED', isDocked: true } as never;
|
|
34
|
+
expect( isSplitScreen( true, dock ) ).toBe( true );
|
|
35
|
+
expect( isSplitScreen( false, dock ) ).toBe( false );
|
|
36
|
+
} );
|
|
37
|
+
} );
|
|
38
|
+
|
|
39
|
+
describe( 'getIsSplitScreen selector', () => {
|
|
40
|
+
it( 'returns the slice value', () => {
|
|
41
|
+
const state = { isSplitScreen: true } as State;
|
|
42
|
+
expect( getIsSplitScreen( state ) ).toBe( true );
|
|
43
|
+
expect( getIsSplitScreen( { isSplitScreen: false } as State ) ).toBe( false );
|
|
44
|
+
} );
|
|
45
|
+
} );
|
|
46
|
+
|
|
47
|
+
describe( 'isMinimized reducer slice', () => {
|
|
48
|
+
it( 'defaults to false', () => {
|
|
49
|
+
expect( isMinimized( undefined, { type: '@@INIT' } as never ) ).toBe( false );
|
|
50
|
+
} );
|
|
51
|
+
|
|
52
|
+
it( 'returns the action value on `AGENTS_MANAGER_SET_MINIMIZED`', () => {
|
|
53
|
+
expect( isMinimized( undefined, setMinimized( true ) ) ).toBe( true );
|
|
54
|
+
expect( isMinimized( true, setMinimized( false ) ) ).toBe( false );
|
|
55
|
+
} );
|
|
56
|
+
|
|
57
|
+
it( 'leaves state untouched on unrelated actions', () => {
|
|
58
|
+
expect( isMinimized( true, { type: 'AGENTS_MANAGER_SET_OPEN', isOpen: false } as never ) ).toBe(
|
|
59
|
+
true
|
|
60
|
+
);
|
|
61
|
+
} );
|
|
62
|
+
} );
|
|
63
|
+
|
|
64
|
+
describe( 'getIsMinimized selector', () => {
|
|
65
|
+
it( 'returns the slice value', () => {
|
|
66
|
+
expect( getIsMinimized( { isMinimized: true } as State ) ).toBe( true );
|
|
67
|
+
expect( getIsMinimized( { isMinimized: false } as State ) ).toBe( false );
|
|
68
|
+
} );
|
|
69
|
+
} );
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { Location } from 'history';
|
|
2
|
+
import * as actions from './actions';
|
|
3
|
+
import * as selectors from './selectors';
|
|
4
|
+
import type { DispatchFromMap, SelectFromMap } from '../mapped-types';
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Minimal site data needed by AgentsManager.
|
|
8
|
+
*/
|
|
9
|
+
export interface AgentsManagerSite {
|
|
10
|
+
ID: number | string;
|
|
11
|
+
domain: string;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
export type Dispatch = DispatchFromMap< typeof actions >;
|
|
15
|
+
export type AgentsManagerSelect = SelectFromMap< typeof selectors >;
|
|
16
|
+
|
|
17
|
+
export type SingleRouterHistory = {
|
|
18
|
+
entries: Location[];
|
|
19
|
+
index: number;
|
|
20
|
+
};
|
|
21
|
+
|
|
22
|
+
export type PerSiteRouterHistory = Record< string, SingleRouterHistory >;
|
|
23
|
+
|
|
24
|
+
export type PerSiteLastActivity = Record< string, number >;
|
|
@@ -150,7 +150,7 @@ export function generateAdminSections(
|
|
|
150
150
|
__(
|
|
151
151
|
"By upgrading to the %s plan, you'll be able to monetize your site through the WordAds program."
|
|
152
152
|
),
|
|
153
|
-
getPlan( PLAN_PREMIUM )?.getTitle()
|
|
153
|
+
String( getPlan( PLAN_PREMIUM )?.getTitle() ?? '' )
|
|
154
154
|
),
|
|
155
155
|
link: `/earn/${ siteSlug }`,
|
|
156
156
|
synonyms: [ 'monetize', 'wordads', 'premium', 'explorer' ],
|
|
@@ -1,71 +1,42 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { select } from '@wordpress/data';
|
|
1
|
+
import { controls } from '@wordpress/data';
|
|
3
2
|
import { addQueryArgs } from '@wordpress/url';
|
|
4
|
-
import {
|
|
3
|
+
import { Location } from 'history';
|
|
5
4
|
import { GeneratorReturnType } from '../mapped-types';
|
|
6
5
|
import { SiteDetails } from '../site';
|
|
6
|
+
import { CurrentUser } from '../user/types';
|
|
7
7
|
import { STORE_KEY } from './constants';
|
|
8
|
-
import {
|
|
9
|
-
import type {
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
/**
|
|
18
|
-
* Save the open state of the help center to the remote user preferences.
|
|
19
|
-
* @param isShown - Whether the help center is shown.
|
|
20
|
-
* @param isMinimized - Whether the help center is minimized.
|
|
21
|
-
*/
|
|
22
|
-
export const saveOpenState = ( isShown: boolean | undefined, isMinimized: boolean | undefined ) => {
|
|
23
|
-
const saveState: Record< string, boolean | null > = {};
|
|
24
|
-
|
|
25
|
-
if ( typeof isShown === 'boolean' ) {
|
|
26
|
-
saveState.help_center_open = isShown;
|
|
27
|
-
if ( ! isShown ) {
|
|
28
|
-
// Delete the remote version of the navigation history when closing the help center
|
|
29
|
-
saveState.help_center_router_history = null;
|
|
30
|
-
}
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
if ( typeof isMinimized === 'boolean' ) {
|
|
34
|
-
saveState.help_center_minimized = isMinimized;
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
if ( canAccessWpcomApis() ) {
|
|
38
|
-
// Use the promise version to do that action without waiting for the result.
|
|
39
|
-
wpcomRequestPromise( {
|
|
40
|
-
path: '/me/preferences',
|
|
41
|
-
apiNamespace: 'wpcom/v2',
|
|
42
|
-
method: 'PUT',
|
|
43
|
-
body: { calypso_preferences: saveState },
|
|
44
|
-
} ).catch( () => {} );
|
|
45
|
-
} else {
|
|
46
|
-
// Use the promise version to do that action without waiting for the result.
|
|
47
|
-
apiFetchPromise( {
|
|
48
|
-
global: true,
|
|
49
|
-
path: '/help-center/open-state',
|
|
50
|
-
method: 'PUT',
|
|
51
|
-
data: saveState,
|
|
52
|
-
} as APIFetchOptions ).catch( () => {} );
|
|
8
|
+
import { persistPreference } from './utils';
|
|
9
|
+
import type { HelpCenterOptions, HelpCenterShowOptions } from './types';
|
|
10
|
+
|
|
11
|
+
declare global {
|
|
12
|
+
interface Window {
|
|
13
|
+
_sva?: {
|
|
14
|
+
closeSurvey?: () => void;
|
|
15
|
+
};
|
|
53
16
|
}
|
|
54
|
-
}
|
|
17
|
+
}
|
|
55
18
|
|
|
56
19
|
export function setHelpCenterRouterHistory(
|
|
57
|
-
history: { entries: Location[]; index: number } |
|
|
20
|
+
history: { entries: Location[]; index: number } | null
|
|
58
21
|
) {
|
|
22
|
+
persistPreference( 'help_center_router_history', history );
|
|
59
23
|
return {
|
|
60
24
|
type: 'HELP_CENTER_SET_HELP_CENTER_ROUTER_HISTORY',
|
|
61
25
|
history,
|
|
62
26
|
} as const;
|
|
63
27
|
}
|
|
64
28
|
|
|
65
|
-
|
|
29
|
+
/**
|
|
30
|
+
* Set the navigate to route action.
|
|
31
|
+
* @param route - The route to navigate to.
|
|
32
|
+
* @param coalesceParams - Whether to coalesce the parameters with the existing parameters.
|
|
33
|
+
* @returns The action object.
|
|
34
|
+
*/
|
|
35
|
+
export const setNavigateToRoute = ( route?: string, coalesceParams = false ) =>
|
|
66
36
|
( {
|
|
67
37
|
type: 'HELP_CENTER_SET_NAVIGATE_TO_ROUTE',
|
|
68
38
|
route,
|
|
39
|
+
coalesceParams,
|
|
69
40
|
} ) as const;
|
|
70
41
|
|
|
71
42
|
export const setUnreadCount = ( count: number ) =>
|
|
@@ -86,14 +57,22 @@ export const setOdieBotNameSlug = ( odieBotNameSlug: string ) =>
|
|
|
86
57
|
odieBotNameSlug,
|
|
87
58
|
} ) as const;
|
|
88
59
|
|
|
89
|
-
export const setIsMinimized = function
|
|
90
|
-
|
|
60
|
+
export const setIsMinimized = function ( minimized: boolean ) {
|
|
61
|
+
persistPreference( 'help_center_minimized', minimized );
|
|
91
62
|
return {
|
|
92
63
|
type: 'HELP_CENTER_SET_MINIMIZED',
|
|
93
64
|
minimized,
|
|
94
65
|
} as const;
|
|
95
66
|
};
|
|
96
67
|
|
|
68
|
+
export const setLoggedOutOdieChat = (
|
|
69
|
+
session: { odieId: number; sessionId: string; botSlug: string } | undefined
|
|
70
|
+
) =>
|
|
71
|
+
( {
|
|
72
|
+
type: 'HELP_CENTER_SET_LOGGED_OUT_ODIE_CHAT',
|
|
73
|
+
session,
|
|
74
|
+
} ) as const;
|
|
75
|
+
|
|
97
76
|
export const setIsChatLoaded = ( isChatLoaded: boolean ) =>
|
|
98
77
|
( {
|
|
99
78
|
type: 'HELP_CENTER_SET_IS_CHAT_LOADED',
|
|
@@ -162,6 +141,26 @@ export const setHelpCenterOptions = ( options: HelpCenterOptions ) => ( {
|
|
|
162
141
|
options,
|
|
163
142
|
} );
|
|
164
143
|
|
|
144
|
+
/**
|
|
145
|
+
* Set the current user in the help center store.
|
|
146
|
+
* This value is needed because the store makes decisions based on the logged in status.
|
|
147
|
+
* @param user - The current user to set.
|
|
148
|
+
* @returns The action object.
|
|
149
|
+
*/
|
|
150
|
+
export const setCurrentUser = ( user: CurrentUser | undefined ) =>
|
|
151
|
+
( {
|
|
152
|
+
type: 'HELP_CENTER_SET_CURRENT_USER',
|
|
153
|
+
user,
|
|
154
|
+
} ) as const;
|
|
155
|
+
|
|
156
|
+
export const showHelpCenter = function ( show: boolean ) {
|
|
157
|
+
persistPreference( 'help_center_open', show );
|
|
158
|
+
return {
|
|
159
|
+
type: 'HELP_CENTER_SET_SHOW',
|
|
160
|
+
show,
|
|
161
|
+
} as const;
|
|
162
|
+
};
|
|
163
|
+
|
|
165
164
|
export const setShowHelpCenter = function* (
|
|
166
165
|
show: boolean,
|
|
167
166
|
options: HelpCenterShowOptions = {
|
|
@@ -175,34 +174,28 @@ export const setShowHelpCenter = function* (
|
|
|
175
174
|
* `forceClose` listens to the show value always. Which the (x) button sets to true.
|
|
176
175
|
*/
|
|
177
176
|
forceClose = false
|
|
178
|
-
)
|
|
179
|
-
|
|
177
|
+
) {
|
|
178
|
+
const isMinimized: boolean = yield controls.resolveSelect( STORE_KEY, 'getIsMinimized' );
|
|
180
179
|
|
|
181
180
|
// Opening or closing the Help Center should reset the minimized state.
|
|
182
181
|
if ( ! show && ! forceClose && isMinimized ) {
|
|
183
182
|
yield setIsMinimized( false );
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
return {
|
|
187
|
-
type: 'HELP_CENTER_SET_SHOW',
|
|
188
|
-
show: true,
|
|
189
|
-
} as const;
|
|
190
|
-
}
|
|
191
|
-
|
|
192
|
-
if ( ! isE2ETest() ) {
|
|
193
|
-
saveOpenState( show, isMinimized );
|
|
183
|
+
return showHelpCenter( true );
|
|
194
184
|
}
|
|
195
185
|
|
|
196
186
|
if ( ! show ) {
|
|
197
187
|
yield setNavigateToRoute( undefined );
|
|
198
188
|
// Reset the local navigation history when closing the help center.
|
|
199
|
-
yield setHelpCenterRouterHistory(
|
|
200
|
-
|
|
201
|
-
yield setShowMessagingWidget( false );
|
|
189
|
+
yield setHelpCenterRouterHistory( null );
|
|
190
|
+
return showHelpCenter( false );
|
|
202
191
|
}
|
|
203
192
|
|
|
193
|
+
yield setShowMessagingWidget( false );
|
|
204
194
|
yield setContextTerm( options?.contextTerm || '' );
|
|
205
|
-
|
|
195
|
+
|
|
196
|
+
if ( isMinimized ) {
|
|
197
|
+
yield setIsMinimized( false );
|
|
198
|
+
}
|
|
206
199
|
|
|
207
200
|
if ( options?.hasPremiumSupport ) {
|
|
208
201
|
yield setHasPremiumSupport( true );
|
|
@@ -212,10 +205,14 @@ export const setShowHelpCenter = function* (
|
|
|
212
205
|
yield setHelpCenterOptions( options );
|
|
213
206
|
}
|
|
214
207
|
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
208
|
+
// Close any Survicate survey that may already be visible.
|
|
209
|
+
// This covers the case where Survicate loads before the Help Center store
|
|
210
|
+
// is registered, so invokeSurvicateEvent's store-based guard can't catch it.
|
|
211
|
+
if ( typeof window !== 'undefined' ) {
|
|
212
|
+
window._sva?.closeSurvey?.();
|
|
213
|
+
}
|
|
214
|
+
|
|
215
|
+
return showHelpCenter( true );
|
|
219
216
|
};
|
|
220
217
|
|
|
221
218
|
export const setSubject = ( subject: string ) =>
|
|
@@ -271,6 +268,31 @@ export const setNavigateToOdie = function* () {
|
|
|
271
268
|
yield setShowHelpCenter( true );
|
|
272
269
|
};
|
|
273
270
|
|
|
271
|
+
/**
|
|
272
|
+
* Open the Help Center on the Odie (AI) assistant with optional context.
|
|
273
|
+
* Does not add provider=zendesk, so the user stays in the AI chat instead of human support.
|
|
274
|
+
*/
|
|
275
|
+
export const setOpenOdieWithContext = function* ( {
|
|
276
|
+
initialMessage,
|
|
277
|
+
section,
|
|
278
|
+
siteUrl,
|
|
279
|
+
siteId,
|
|
280
|
+
}: {
|
|
281
|
+
initialMessage: string;
|
|
282
|
+
section?: string;
|
|
283
|
+
siteUrl?: string;
|
|
284
|
+
siteId?: string | number;
|
|
285
|
+
} ) {
|
|
286
|
+
const url = addQueryArgs( '/odie', {
|
|
287
|
+
userFieldMessage: initialMessage,
|
|
288
|
+
section,
|
|
289
|
+
siteUrl,
|
|
290
|
+
siteId: siteId != null ? String( siteId ) : undefined,
|
|
291
|
+
} );
|
|
292
|
+
yield setNavigateToRoute( url );
|
|
293
|
+
yield setShowHelpCenter( true );
|
|
294
|
+
};
|
|
295
|
+
|
|
274
296
|
export const setShowSupportDoc = function* ( link: string, postId?: number, blogId?: number ) {
|
|
275
297
|
const params = new URLSearchParams( {
|
|
276
298
|
link,
|
|
@@ -290,21 +312,24 @@ export type HelpCenterAction =
|
|
|
290
312
|
| typeof setSubject
|
|
291
313
|
| typeof resetStore
|
|
292
314
|
| typeof setMessage
|
|
315
|
+
| typeof setLoggedOutOdieChat
|
|
293
316
|
| typeof setContextTerm
|
|
294
317
|
| typeof setUserDeclaredSite
|
|
295
318
|
| typeof setUserDeclaredSiteUrl
|
|
296
319
|
| typeof setUnreadCount
|
|
297
|
-
| typeof setHelpCenterRouterHistory
|
|
298
320
|
| typeof setIsChatLoaded
|
|
299
321
|
| typeof setAreSoundNotificationsEnabled
|
|
300
322
|
| typeof setZendeskClientId
|
|
323
|
+
| typeof setLoggedOutOdieChat
|
|
301
324
|
| typeof setSupportTypingStatus
|
|
302
325
|
| typeof setZendeskConnectionStatus
|
|
303
326
|
| typeof setNavigateToRoute
|
|
304
327
|
| typeof setOdieInitialPromptText
|
|
328
|
+
| typeof setHelpCenterRouterHistory
|
|
329
|
+
| typeof setIsMinimized
|
|
305
330
|
| typeof setOdieBotNameSlug
|
|
306
331
|
| typeof setHasPremiumSupport
|
|
307
332
|
| typeof setHelpCenterOptions
|
|
333
|
+
| typeof setCurrentUser
|
|
308
334
|
>
|
|
309
|
-
| GeneratorReturnType< typeof setShowHelpCenter
|
|
310
|
-
| GeneratorReturnType< typeof setIsMinimized >;
|
|
335
|
+
| GeneratorReturnType< typeof setShowHelpCenter >;
|
package/src/help-center/index.ts
CHANGED
|
@@ -1,45 +1,17 @@
|
|
|
1
1
|
import { registerStore } from '@wordpress/data';
|
|
2
2
|
import { controls } from '@wordpress/data-controls';
|
|
3
3
|
import { registerPlugins } from '../plugins';
|
|
4
|
+
import { isE2ETest, isInSupportSession } from '../utils';
|
|
4
5
|
import { controls as wpcomRequestControls } from '../wpcom-request-controls';
|
|
5
6
|
import * as actions from './actions';
|
|
6
7
|
import { STORE_KEY } from './constants';
|
|
7
8
|
import reducer, { State } from './reducer';
|
|
8
|
-
import
|
|
9
|
+
import * as resolvers from './resolvers';
|
|
9
10
|
import * as selectors from './selectors';
|
|
10
11
|
export type { State };
|
|
11
12
|
|
|
12
|
-
declare const helpCenterData: { isProxied: boolean; isSU: boolean; isSSP: boolean } | undefined;
|
|
13
|
-
declare const isSupportSession: boolean;
|
|
14
|
-
declare const isSSP: boolean;
|
|
15
|
-
|
|
16
13
|
let isRegistered = false;
|
|
17
14
|
|
|
18
|
-
// All end-to-end tests use a custom user agent containing this string.
|
|
19
|
-
const E2E_USER_AGENT = 'wp-e2e-tests';
|
|
20
|
-
|
|
21
|
-
export const isE2ETest = () =>
|
|
22
|
-
typeof window !== 'undefined' && window.navigator.userAgent.includes( E2E_USER_AGENT );
|
|
23
|
-
|
|
24
|
-
export const isInSupportSession = () => {
|
|
25
|
-
if ( typeof window !== 'undefined' ) {
|
|
26
|
-
return (
|
|
27
|
-
// A bit hacky but much easier than passing down data from PHP in Jetpack
|
|
28
|
-
// Simple
|
|
29
|
-
!! document.querySelector( '#wp-admin-bar-support-session-details' ) ||
|
|
30
|
-
!! document.querySelector( '#a8c-support-session-overlay' ) ||
|
|
31
|
-
// Atomic
|
|
32
|
-
document.body.classList.contains( 'support-session' ) ||
|
|
33
|
-
document.querySelector( '#wpcom > .is-support-session' ) ||
|
|
34
|
-
( typeof isSupportSession !== 'undefined' && !! isSupportSession ) ||
|
|
35
|
-
( typeof helpCenterData !== 'undefined' && helpCenterData?.isSU ) ||
|
|
36
|
-
( typeof helpCenterData !== 'undefined' && helpCenterData?.isSSP ) ||
|
|
37
|
-
( typeof isSSP !== 'undefined' && !! isSSP )
|
|
38
|
-
);
|
|
39
|
-
}
|
|
40
|
-
return false;
|
|
41
|
-
};
|
|
42
|
-
|
|
43
15
|
export function register(): typeof STORE_KEY {
|
|
44
16
|
const enabledPersistedOpenState = ! isE2ETest() && ! isInSupportSession();
|
|
45
17
|
|
|
@@ -51,9 +23,15 @@ export function register(): typeof STORE_KEY {
|
|
|
51
23
|
reducer,
|
|
52
24
|
controls: { ...controls, ...wpcomRequestControls },
|
|
53
25
|
selectors,
|
|
54
|
-
persist: [
|
|
26
|
+
persist: [
|
|
27
|
+
'message',
|
|
28
|
+
'userDeclaredSite',
|
|
29
|
+
'userDeclaredSiteUrl',
|
|
30
|
+
'subject',
|
|
31
|
+
'loggedOutOdieChat',
|
|
32
|
+
],
|
|
55
33
|
// Don't persist the open state for e2e users, because parallel tests will start interfering with each other.
|
|
56
|
-
resolvers: enabledPersistedOpenState ?
|
|
34
|
+
resolvers: enabledPersistedOpenState ? resolvers : undefined,
|
|
57
35
|
} );
|
|
58
36
|
isRegistered = true;
|
|
59
37
|
}
|
|
@@ -61,4 +39,5 @@ export function register(): typeof STORE_KEY {
|
|
|
61
39
|
return STORE_KEY;
|
|
62
40
|
}
|
|
63
41
|
|
|
42
|
+
export { setHelpCenterAppId } from './utils';
|
|
64
43
|
export type { HelpCenterSite } from './types';
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import { combineReducers } from '@wordpress/data';
|
|
2
|
+
import { Location } from 'history';
|
|
2
3
|
import { SiteDetails } from '../site';
|
|
4
|
+
import { CurrentUser } from '../user/types';
|
|
3
5
|
import type { HelpCenterAction } from './actions';
|
|
4
6
|
import type { HelpCenterOptions } from './types';
|
|
5
|
-
import type { Location } from 'history';
|
|
6
7
|
import type { Reducer } from 'redux';
|
|
7
8
|
|
|
8
9
|
const showHelpCenter: Reducer< boolean | undefined, HelpCenterAction > = ( state, action ) => {
|
|
@@ -47,9 +48,9 @@ const showMessagingLauncher: Reducer< boolean | undefined, HelpCenterAction > =
|
|
|
47
48
|
};
|
|
48
49
|
|
|
49
50
|
const helpCenterRouterHistory: Reducer<
|
|
50
|
-
{ entries: Location[]; index: number } |
|
|
51
|
+
{ entries: Location[]; index: number } | null,
|
|
51
52
|
HelpCenterAction
|
|
52
|
-
> = ( state, action ) => {
|
|
53
|
+
> = ( state = null, action ) => {
|
|
53
54
|
switch ( action.type ) {
|
|
54
55
|
case 'HELP_CENTER_SET_HELP_CENTER_ROUTER_HISTORY':
|
|
55
56
|
return action.history;
|
|
@@ -57,6 +58,17 @@ const helpCenterRouterHistory: Reducer<
|
|
|
57
58
|
return state;
|
|
58
59
|
};
|
|
59
60
|
|
|
61
|
+
const loggedOutOdieChat: Reducer<
|
|
62
|
+
{ odieId: number; sessionId: string; botSlug: string } | undefined,
|
|
63
|
+
HelpCenterAction
|
|
64
|
+
> = ( state = undefined, action ) => {
|
|
65
|
+
switch ( action.type ) {
|
|
66
|
+
case 'HELP_CENTER_SET_LOGGED_OUT_ODIE_CHAT':
|
|
67
|
+
return action.session;
|
|
68
|
+
}
|
|
69
|
+
return state;
|
|
70
|
+
};
|
|
71
|
+
|
|
60
72
|
const showMessagingWidget: Reducer< boolean | undefined, HelpCenterAction > = ( state, action ) => {
|
|
61
73
|
switch ( action.type ) {
|
|
62
74
|
case 'HELP_CENTER_SET_SHOW_MESSAGING_WIDGET':
|
|
@@ -148,9 +160,12 @@ const userDeclaredSite: Reducer< SiteDetails | undefined, HelpCenterAction > = (
|
|
|
148
160
|
return state;
|
|
149
161
|
};
|
|
150
162
|
|
|
151
|
-
const navigateToRoute: Reducer<
|
|
163
|
+
const navigateToRoute: Reducer<
|
|
164
|
+
{ route: string | undefined; coalesceParams: boolean } | undefined,
|
|
165
|
+
HelpCenterAction
|
|
166
|
+
> = ( state, action ) => {
|
|
152
167
|
if ( action.type === 'HELP_CENTER_SET_NAVIGATE_TO_ROUTE' ) {
|
|
153
|
-
return action.route;
|
|
168
|
+
return { route: action.route, coalesceParams: action.coalesceParams };
|
|
154
169
|
}
|
|
155
170
|
return state;
|
|
156
171
|
};
|
|
@@ -197,6 +212,13 @@ const helpCenterOptions: Reducer< HelpCenterOptions, HelpCenterAction > = (
|
|
|
197
212
|
return state;
|
|
198
213
|
};
|
|
199
214
|
|
|
215
|
+
const currentUser: Reducer< CurrentUser | undefined, HelpCenterAction > = ( state, action ) => {
|
|
216
|
+
if ( action.type === 'HELP_CENTER_SET_CURRENT_USER' ) {
|
|
217
|
+
return action.user;
|
|
218
|
+
}
|
|
219
|
+
return state;
|
|
220
|
+
};
|
|
221
|
+
|
|
200
222
|
const reducer = combineReducers( {
|
|
201
223
|
showHelpCenter,
|
|
202
224
|
showMessagingLauncher,
|
|
@@ -216,9 +238,11 @@ const reducer = combineReducers( {
|
|
|
216
238
|
odieInitialPromptText,
|
|
217
239
|
odieBotNameSlug,
|
|
218
240
|
helpCenterRouterHistory,
|
|
241
|
+
loggedOutOdieChat,
|
|
219
242
|
hasPremiumSupport,
|
|
220
243
|
contextTerm,
|
|
221
244
|
helpCenterOptions,
|
|
245
|
+
currentUser,
|
|
222
246
|
} );
|
|
223
247
|
|
|
224
248
|
export type State = ReturnType< typeof reducer >;
|