@automattic/data-stores 2.0.0 → 3.0.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 +92 -0
- package/README.md +1 -2
- package/dist/cjs/auth/actions.js +183 -307
- package/dist/cjs/auth/actions.js.map +1 -0
- package/dist/cjs/auth/constants.js +1 -0
- package/dist/cjs/auth/constants.js.map +1 -0
- package/dist/cjs/auth/controls.js +14 -22
- package/dist/cjs/auth/controls.js.map +1 -0
- package/dist/cjs/auth/index.js +21 -22
- package/dist/cjs/auth/index.js.map +1 -0
- package/dist/cjs/auth/reducer.js +9 -12
- package/dist/cjs/auth/reducer.js.map +1 -0
- package/dist/cjs/auth/selectors.js +6 -7
- package/dist/cjs/auth/selectors.js.map +1 -0
- package/dist/cjs/auth/types.js +1 -0
- package/dist/cjs/auth/types.js.map +1 -0
- package/dist/cjs/auth/utils.js +2 -1
- package/dist/cjs/auth/utils.js.map +1 -0
- package/dist/cjs/automated-transfer-eligibility/actions.js +10 -0
- package/dist/cjs/automated-transfer-eligibility/actions.js.map +1 -0
- package/dist/cjs/automated-transfer-eligibility/constants.js +43 -0
- package/dist/cjs/automated-transfer-eligibility/constants.js.map +1 -0
- package/dist/cjs/automated-transfer-eligibility/index.js +29 -0
- package/dist/cjs/automated-transfer-eligibility/index.js.map +1 -0
- package/dist/cjs/automated-transfer-eligibility/reducer.js +17 -0
- package/dist/cjs/automated-transfer-eligibility/reducer.js.map +1 -0
- package/dist/cjs/automated-transfer-eligibility/resolvers.js +19 -0
- package/dist/cjs/automated-transfer-eligibility/resolvers.js.map +1 -0
- package/dist/cjs/automated-transfer-eligibility/selectors.js +64 -0
- package/dist/cjs/automated-transfer-eligibility/selectors.js.map +1 -0
- package/dist/cjs/automated-transfer-eligibility/types.js +3 -0
- package/dist/cjs/automated-transfer-eligibility/types.js.map +1 -0
- package/dist/cjs/contextual-help/constants.js +15 -0
- package/dist/cjs/contextual-help/constants.js.map +1 -0
- package/dist/cjs/contextual-help/contextual-help.js +1998 -0
- package/dist/cjs/contextual-help/contextual-help.js.map +1 -0
- package/dist/cjs/domain-suggestions/actions.js +25 -34
- package/dist/cjs/domain-suggestions/actions.js.map +1 -0
- package/dist/cjs/domain-suggestions/constants.js +1 -0
- package/dist/cjs/domain-suggestions/constants.js.map +1 -0
- package/dist/cjs/domain-suggestions/index.js +14 -19
- package/dist/cjs/domain-suggestions/index.js.map +1 -0
- package/dist/cjs/domain-suggestions/reducer.js +37 -18
- package/dist/cjs/domain-suggestions/reducer.js.map +1 -0
- package/dist/cjs/domain-suggestions/resolvers.js +81 -86
- package/dist/cjs/domain-suggestions/resolvers.js.map +1 -0
- package/dist/cjs/domain-suggestions/selectors.js +25 -36
- package/dist/cjs/domain-suggestions/selectors.js.map +1 -0
- package/dist/cjs/domain-suggestions/types.js +1 -0
- package/dist/cjs/domain-suggestions/types.js.map +1 -0
- package/dist/cjs/domain-suggestions/utils.js +15 -10
- package/dist/cjs/domain-suggestions/utils.js.map +1 -0
- package/dist/cjs/help-center/actions.js +52 -0
- package/dist/cjs/help-center/actions.js.map +1 -0
- package/dist/cjs/help-center/constants.js +5 -0
- package/dist/cjs/help-center/constants.js.map +1 -0
- package/dist/cjs/help-center/index.js +27 -0
- package/dist/cjs/help-center/index.js.map +1 -0
- package/dist/cjs/help-center/reducer.js +84 -0
- package/dist/cjs/help-center/reducer.js.map +1 -0
- package/dist/cjs/help-center/selectors.js +20 -0
- package/dist/cjs/help-center/selectors.js.map +1 -0
- package/dist/cjs/i18n/actions.js +6 -7
- package/dist/cjs/i18n/actions.js.map +1 -0
- package/dist/cjs/i18n/constants.js +1 -0
- package/dist/cjs/i18n/constants.js.map +1 -0
- package/dist/cjs/i18n/index.js +14 -19
- package/dist/cjs/i18n/index.js.map +1 -0
- package/dist/cjs/i18n/reducer.js +10 -6
- package/dist/cjs/i18n/reducer.js.map +1 -0
- package/dist/cjs/i18n/resolvers.js +10 -23
- package/dist/cjs/i18n/resolvers.js.map +1 -0
- package/dist/cjs/i18n/selectors.js +2 -1
- package/dist/cjs/i18n/selectors.js.map +1 -0
- package/dist/cjs/i18n/types.js +1 -0
- package/dist/cjs/i18n/types.js.map +1 -0
- package/dist/cjs/index.js +51 -20
- package/dist/cjs/index.js.map +1 -0
- package/dist/cjs/launch/actions.js +86 -140
- package/dist/cjs/launch/actions.js.map +1 -0
- package/dist/cjs/launch/constants.js +1 -0
- package/dist/cjs/launch/constants.js.map +1 -0
- package/dist/cjs/launch/data.js +1 -0
- package/dist/cjs/launch/data.js.map +1 -0
- package/dist/cjs/launch/index.js +14 -19
- package/dist/cjs/launch/index.js.map +1 -0
- package/dist/cjs/launch/persist.js +4 -6
- package/dist/cjs/launch/persist.js.map +1 -0
- package/dist/cjs/launch/reducer.js +32 -46
- package/dist/cjs/launch/reducer.js.map +1 -0
- package/dist/cjs/launch/selectors.js +28 -49
- package/dist/cjs/launch/selectors.js.map +1 -0
- package/dist/cjs/launch/types.js +1 -0
- package/dist/cjs/launch/types.js.map +1 -0
- package/dist/cjs/mapped-types.js +1 -0
- package/dist/cjs/mapped-types.js.map +1 -0
- package/dist/cjs/onboard/actions.js +221 -0
- package/dist/cjs/onboard/actions.js.map +1 -0
- package/dist/cjs/onboard/constants.js +14 -0
- package/dist/cjs/onboard/constants.js.map +1 -0
- package/dist/cjs/onboard/index.js +48 -0
- package/dist/cjs/onboard/index.js.map +1 -0
- package/dist/cjs/onboard/persist.js +6 -0
- package/dist/cjs/onboard/persist.js.map +1 -0
- package/dist/cjs/onboard/reducer.js +282 -0
- package/dist/cjs/onboard/reducer.js.map +1 -0
- package/dist/cjs/onboard/selectors.js +74 -0
- package/dist/cjs/onboard/selectors.js.map +1 -0
- package/dist/cjs/persistence-config-factory/index.js +20 -19
- package/dist/cjs/persistence-config-factory/index.js.map +1 -0
- package/dist/cjs/plans/actions.js +18 -17
- package/dist/cjs/plans/actions.js.map +1 -0
- package/dist/cjs/plans/constants.js +2 -5
- package/dist/cjs/plans/constants.js.map +1 -0
- package/dist/cjs/plans/index.js +14 -19
- package/dist/cjs/plans/index.js.map +1 -0
- package/dist/cjs/plans/mock/apis/features.js +1 -0
- package/dist/cjs/plans/mock/apis/features.js.map +1 -0
- package/dist/cjs/plans/mock/apis/plans.js +5 -39
- package/dist/cjs/plans/mock/apis/plans.js.map +1 -0
- package/dist/cjs/plans/mock/index.js +2 -1
- package/dist/cjs/plans/mock/index.js.map +1 -0
- package/dist/cjs/plans/mock/store/features.js +28 -10
- package/dist/cjs/plans/mock/store/features.js.map +1 -0
- package/dist/cjs/plans/mock/store/plans.js +3 -5
- package/dist/cjs/plans/mock/store/plans.js.map +1 -0
- package/dist/cjs/plans/mock/store/products.js +1 -0
- package/dist/cjs/plans/mock/store/products.js.map +1 -0
- package/dist/cjs/plans/reducer.js +10 -17
- package/dist/cjs/plans/reducer.js.map +1 -0
- package/dist/cjs/plans/resolvers.js +60 -91
- package/dist/cjs/plans/resolvers.js.map +1 -0
- package/dist/cjs/plans/selectors.js +42 -47
- package/dist/cjs/plans/selectors.js.map +1 -0
- package/dist/cjs/plans/test-utils/index.js +5 -7
- package/dist/cjs/plans/test-utils/index.js.map +1 -0
- package/dist/cjs/plans/types.js +1 -0
- package/dist/cjs/plans/types.js.map +1 -0
- package/dist/cjs/products-list/actions.js +20 -0
- package/dist/cjs/products-list/actions.js.map +1 -0
- package/dist/cjs/products-list/constants.js +5 -0
- package/dist/cjs/products-list/constants.js.map +1 -0
- package/dist/cjs/products-list/index.js +29 -0
- package/dist/cjs/products-list/index.js.map +1 -0
- package/dist/cjs/products-list/reducer.js +32 -0
- package/dist/cjs/products-list/reducer.js.map +1 -0
- package/dist/cjs/products-list/resolvers.js +28 -0
- package/dist/cjs/products-list/resolvers.js.map +1 -0
- package/dist/cjs/products-list/selectors.js +14 -0
- package/dist/cjs/products-list/selectors.js.map +1 -0
- package/dist/cjs/products-list/types.js +3 -0
- package/dist/cjs/products-list/types.js.map +1 -0
- package/dist/cjs/queries/use-happiness-engineers-query.js +12 -0
- package/dist/cjs/queries/use-happiness-engineers-query.js.map +1 -0
- package/dist/cjs/queries/use-has-3rd-party-cookies.js +40 -0
- package/dist/cjs/queries/use-has-3rd-party-cookies.js.map +1 -0
- package/dist/cjs/queries/use-has-seen-whats-new-modal-query.js +43 -0
- package/dist/cjs/queries/use-has-seen-whats-new-modal-query.js.map +1 -0
- package/dist/cjs/queries/use-site-analysis.js +65 -0
- package/dist/cjs/queries/use-site-analysis.js.map +1 -0
- package/dist/cjs/queries/use-site-intent.js +18 -0
- package/dist/cjs/queries/use-site-intent.js.map +1 -0
- package/dist/cjs/reader/actions.js +9 -0
- package/dist/cjs/reader/actions.js.map +1 -0
- package/dist/cjs/reader/constants.js +5 -0
- package/dist/cjs/reader/constants.js.map +1 -0
- package/dist/cjs/reader/index.js +31 -0
- package/dist/cjs/reader/index.js.map +1 -0
- package/dist/cjs/reader/persist.js +6 -0
- package/dist/cjs/reader/persist.js.map +1 -0
- package/dist/cjs/reader/reducer.js +14 -0
- package/dist/cjs/reader/reducer.js.map +1 -0
- package/dist/cjs/reader/resolvers.js +20 -0
- package/dist/cjs/reader/resolvers.js.map +1 -0
- package/dist/cjs/reader/selectors.js +6 -0
- package/dist/cjs/reader/selectors.js.map +1 -0
- package/dist/cjs/shared-types.js +1 -0
- package/dist/cjs/shared-types.js.map +1 -0
- package/dist/cjs/site/actions.js +369 -186
- package/dist/cjs/site/actions.js.map +1 -0
- package/dist/cjs/site/constants.js +1 -0
- package/dist/cjs/site/constants.js.map +1 -0
- package/dist/cjs/site/index.js +16 -20
- package/dist/cjs/site/index.js.map +1 -0
- package/dist/cjs/site/reducer.js +241 -37
- package/dist/cjs/site/reducer.js.map +1 -0
- package/dist/cjs/site/resolvers.js +37 -63
- package/dist/cjs/site/resolvers.js.map +1 -0
- package/dist/cjs/site/selectors.js +99 -27
- package/dist/cjs/site/selectors.js.map +1 -0
- package/dist/cjs/site/types.js +27 -1
- package/dist/cjs/site/types.js.map +1 -0
- package/dist/cjs/starter-designs-queries/types.js +3 -0
- package/dist/cjs/starter-designs-queries/types.js.map +1 -0
- package/dist/cjs/starter-designs-queries/use-starter-designs-generated-query.js +37 -0
- package/dist/cjs/starter-designs-queries/use-starter-designs-generated-query.js.map +1 -0
- package/dist/cjs/support-queries/types.js +3 -0
- package/dist/cjs/support-queries/types.js.map +1 -0
- package/dist/cjs/support-queries/use-sibyl-query.js +22 -0
- package/dist/cjs/support-queries/use-sibyl-query.js.map +1 -0
- package/dist/cjs/support-queries/use-submit-forums-topic.js +42 -0
- package/dist/cjs/support-queries/use-submit-forums-topic.js.map +1 -0
- package/dist/cjs/support-queries/use-submit-support-ticket.js +16 -0
- package/dist/cjs/support-queries/use-submit-support-ticket.js.map +1 -0
- package/dist/cjs/support-queries/use-support-availability.js +17 -0
- package/dist/cjs/support-queries/use-support-availability.js.map +1 -0
- package/dist/cjs/user/actions.js +55 -72
- package/dist/cjs/user/actions.js.map +1 -0
- package/dist/cjs/user/constants.js +1 -0
- package/dist/cjs/user/constants.js.map +1 -0
- package/dist/cjs/user/index.js +14 -19
- package/dist/cjs/user/index.js.map +1 -0
- package/dist/cjs/user/reducer.js +9 -9
- package/dist/cjs/user/reducer.js.map +1 -0
- package/dist/cjs/user/resolvers.js +22 -35
- package/dist/cjs/user/resolvers.js.map +1 -0
- package/dist/cjs/user/selectors.js +8 -7
- package/dist/cjs/user/selectors.js.map +1 -0
- package/dist/cjs/user/types.js +1 -0
- package/dist/cjs/user/types.js.map +1 -0
- package/dist/cjs/verticals/actions.js +4 -3
- package/dist/cjs/verticals/actions.js.map +1 -0
- package/dist/cjs/verticals/constants.js +1 -0
- package/dist/cjs/verticals/constants.js.map +1 -0
- package/dist/cjs/verticals/index.js +14 -19
- package/dist/cjs/verticals/index.js.map +1 -0
- package/dist/cjs/verticals/reducer.js +4 -4
- package/dist/cjs/verticals/reducer.js.map +1 -0
- package/dist/cjs/verticals/resolvers.js +8 -22
- package/dist/cjs/verticals/resolvers.js.map +1 -0
- package/dist/cjs/verticals/selectors.js +3 -2
- package/dist/cjs/verticals/selectors.js.map +1 -0
- package/dist/cjs/verticals/types.js +1 -0
- package/dist/cjs/verticals/types.js.map +1 -0
- package/dist/cjs/verticals-templates/actions.js +5 -4
- package/dist/cjs/verticals-templates/actions.js.map +1 -0
- package/dist/cjs/verticals-templates/constants.js +1 -0
- package/dist/cjs/verticals-templates/constants.js.map +1 -0
- package/dist/cjs/verticals-templates/index.js +14 -19
- package/dist/cjs/verticals-templates/index.js.map +1 -0
- package/dist/cjs/verticals-templates/reducer.js +8 -7
- package/dist/cjs/verticals-templates/reducer.js.map +1 -0
- package/dist/cjs/verticals-templates/resolvers.js +7 -20
- package/dist/cjs/verticals-templates/resolvers.js.map +1 -0
- package/dist/cjs/verticals-templates/selectors.js +2 -1
- package/dist/cjs/verticals-templates/selectors.js.map +1 -0
- package/dist/cjs/verticals-templates/types.js +1 -0
- package/dist/cjs/verticals-templates/types.js.map +1 -0
- package/dist/cjs/wpcom-features/constants.js +1 -0
- package/dist/cjs/wpcom-features/constants.js.map +1 -0
- package/dist/cjs/wpcom-features/features-data.js +4 -9
- package/dist/cjs/wpcom-features/features-data.js.map +1 -0
- package/dist/cjs/wpcom-features/index.js +10 -15
- package/dist/cjs/wpcom-features/index.js.map +1 -0
- package/dist/cjs/wpcom-features/reducer.js +3 -3
- package/dist/cjs/wpcom-features/reducer.js.map +1 -0
- package/dist/cjs/wpcom-features/selectors.js +7 -6
- package/dist/cjs/wpcom-features/selectors.js.map +1 -0
- package/dist/cjs/wpcom-features/types.js +1 -0
- package/dist/cjs/wpcom-features/types.js.map +1 -0
- package/dist/cjs/wpcom-request-controls/index.js +27 -56
- package/dist/cjs/wpcom-request-controls/index.js.map +1 -0
- package/dist/esm/auth/actions.js +178 -302
- package/dist/esm/auth/actions.js.map +1 -0
- package/dist/esm/auth/constants.js +3 -2
- package/dist/esm/auth/constants.js.map +1 -0
- package/dist/esm/auth/controls.js +15 -23
- package/dist/esm/auth/controls.js.map +1 -0
- package/dist/esm/auth/index.js +13 -15
- package/dist/esm/auth/index.js.map +1 -0
- package/dist/esm/auth/reducer.js +6 -9
- package/dist/esm/auth/reducer.js.map +1 -0
- package/dist/esm/auth/selectors.js +6 -7
- package/dist/esm/auth/selectors.js.map +1 -0
- package/dist/esm/auth/types.js +1 -0
- package/dist/esm/auth/types.js.map +1 -0
- package/dist/esm/auth/utils.js +2 -1
- package/dist/esm/auth/utils.js.map +1 -0
- package/dist/esm/automated-transfer-eligibility/actions.js +6 -0
- package/dist/esm/automated-transfer-eligibility/actions.js.map +1 -0
- package/dist/esm/automated-transfer-eligibility/constants.js +40 -0
- package/dist/esm/automated-transfer-eligibility/constants.js.map +1 -0
- package/dist/esm/automated-transfer-eligibility/index.js +24 -0
- package/dist/esm/automated-transfer-eligibility/index.js.map +1 -0
- package/dist/esm/automated-transfer-eligibility/reducer.js +13 -0
- package/dist/esm/automated-transfer-eligibility/reducer.js.map +1 -0
- package/dist/esm/automated-transfer-eligibility/resolvers.js +14 -0
- package/dist/esm/automated-transfer-eligibility/resolvers.js.map +1 -0
- package/dist/esm/automated-transfer-eligibility/selectors.js +60 -0
- package/dist/esm/automated-transfer-eligibility/selectors.js.map +1 -0
- package/dist/esm/automated-transfer-eligibility/types.js +2 -0
- package/dist/esm/automated-transfer-eligibility/types.js.map +1 -0
- package/dist/esm/contextual-help/constants.js +12 -0
- package/dist/esm/contextual-help/constants.js.map +1 -0
- package/dist/esm/contextual-help/contextual-help.js +1994 -0
- package/dist/esm/contextual-help/contextual-help.js.map +1 -0
- package/dist/esm/domain-suggestions/actions.js +25 -34
- package/dist/esm/domain-suggestions/actions.js.map +1 -0
- package/dist/esm/domain-suggestions/constants.js +2 -1
- package/dist/esm/domain-suggestions/constants.js.map +1 -0
- package/dist/esm/domain-suggestions/index.js +7 -12
- package/dist/esm/domain-suggestions/index.js.map +1 -0
- package/dist/esm/domain-suggestions/reducer.js +34 -15
- package/dist/esm/domain-suggestions/reducer.js.map +1 -0
- package/dist/esm/domain-suggestions/resolvers.js +76 -82
- package/dist/esm/domain-suggestions/resolvers.js.map +1 -0
- package/dist/esm/domain-suggestions/selectors.js +20 -31
- package/dist/esm/domain-suggestions/selectors.js.map +1 -0
- package/dist/esm/domain-suggestions/types.js +1 -0
- package/dist/esm/domain-suggestions/types.js.map +1 -0
- package/dist/esm/domain-suggestions/utils.js +13 -9
- package/dist/esm/domain-suggestions/utils.js.map +1 -0
- package/dist/esm/help-center/actions.js +39 -0
- package/dist/esm/help-center/actions.js.map +1 -0
- package/dist/esm/help-center/constants.js +2 -0
- package/dist/esm/help-center/constants.js.map +1 -0
- package/dist/esm/help-center/index.js +21 -0
- package/dist/esm/help-center/index.js.map +1 -0
- package/dist/esm/help-center/reducer.js +82 -0
- package/dist/esm/help-center/reducer.js.map +1 -0
- package/dist/esm/help-center/selectors.js +9 -0
- package/dist/esm/help-center/selectors.js.map +1 -0
- package/dist/esm/i18n/actions.js +6 -7
- package/dist/esm/i18n/actions.js.map +1 -0
- package/dist/esm/i18n/constants.js +3 -2
- package/dist/esm/i18n/constants.js.map +1 -0
- package/dist/esm/i18n/index.js +9 -14
- package/dist/esm/i18n/index.js.map +1 -0
- package/dist/esm/i18n/reducer.js +10 -6
- package/dist/esm/i18n/reducer.js.map +1 -0
- package/dist/esm/i18n/resolvers.js +6 -19
- package/dist/esm/i18n/resolvers.js.map +1 -0
- package/dist/esm/i18n/selectors.js +2 -1
- package/dist/esm/i18n/selectors.js.map +1 -0
- package/dist/esm/i18n/types.js +1 -0
- package/dist/esm/i18n/types.js.map +1 -0
- package/dist/esm/index.js +23 -8
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/launch/actions.js +84 -138
- package/dist/esm/launch/actions.js.map +1 -0
- package/dist/esm/launch/constants.js +4 -3
- package/dist/esm/launch/constants.js.map +1 -0
- package/dist/esm/launch/data.js +3 -2
- package/dist/esm/launch/data.js.map +1 -0
- package/dist/esm/launch/index.js +9 -14
- package/dist/esm/launch/index.js.map +1 -0
- package/dist/esm/launch/persist.js +1 -3
- package/dist/esm/launch/persist.js.map +1 -0
- package/dist/esm/launch/reducer.js +30 -44
- package/dist/esm/launch/reducer.js.map +1 -0
- package/dist/esm/launch/selectors.js +23 -44
- package/dist/esm/launch/selectors.js.map +1 -0
- package/dist/esm/launch/types.js +1 -0
- package/dist/esm/launch/types.js.map +1 -0
- package/dist/esm/mapped-types.js +1 -0
- package/dist/esm/mapped-types.js.map +1 -0
- package/dist/esm/onboard/actions.js +185 -0
- package/dist/esm/onboard/actions.js.map +1 -0
- package/dist/esm/onboard/constants.js +11 -0
- package/dist/esm/onboard/constants.js.map +1 -0
- package/dist/esm/onboard/index.js +42 -0
- package/dist/esm/onboard/index.js.map +1 -0
- package/dist/esm/onboard/persist.js +3 -0
- package/dist/esm/onboard/persist.js.map +1 -0
- package/dist/esm/onboard/reducer.js +280 -0
- package/dist/esm/onboard/reducer.js.map +1 -0
- package/dist/esm/onboard/selectors.js +43 -0
- package/dist/esm/onboard/selectors.js.map +1 -0
- package/dist/esm/persistence-config-factory/index.js +20 -19
- package/dist/esm/persistence-config-factory/index.js.map +1 -0
- package/dist/esm/plans/actions.js +18 -17
- package/dist/esm/plans/actions.js.map +1 -0
- package/dist/esm/plans/constants.js +24 -27
- package/dist/esm/plans/constants.js.map +1 -0
- package/dist/esm/plans/index.js +9 -14
- package/dist/esm/plans/index.js.map +1 -0
- package/dist/esm/plans/mock/apis/features.js +9 -8
- package/dist/esm/plans/mock/apis/features.js.map +1 -0
- package/dist/esm/plans/mock/apis/plans.js +7 -41
- package/dist/esm/plans/mock/apis/plans.js.map +1 -0
- package/dist/esm/plans/mock/index.js +1 -0
- package/dist/esm/plans/mock/index.js.map +1 -0
- package/dist/esm/plans/mock/store/features.js +29 -12
- package/dist/esm/plans/mock/store/features.js.map +1 -0
- package/dist/esm/plans/mock/store/plans.js +3 -5
- package/dist/esm/plans/mock/store/plans.js.map +1 -0
- package/dist/esm/plans/mock/store/products.js +4 -3
- package/dist/esm/plans/mock/store/products.js.map +1 -0
- package/dist/esm/plans/reducer.js +13 -20
- package/dist/esm/plans/reducer.js.map +1 -0
- package/dist/esm/plans/resolvers.js +53 -85
- package/dist/esm/plans/resolvers.js.map +1 -0
- package/dist/esm/plans/selectors.js +29 -34
- package/dist/esm/plans/selectors.js.map +1 -0
- package/dist/esm/plans/test-utils/index.js +5 -7
- package/dist/esm/plans/test-utils/index.js.map +1 -0
- package/dist/esm/plans/types.js +1 -0
- package/dist/esm/plans/types.js.map +1 -0
- package/dist/esm/products-list/actions.js +14 -0
- package/dist/esm/products-list/actions.js.map +1 -0
- package/dist/esm/products-list/constants.js +2 -0
- package/dist/esm/products-list/constants.js.map +1 -0
- package/dist/esm/products-list/index.js +24 -0
- package/dist/esm/products-list/index.js.map +1 -0
- package/dist/esm/products-list/reducer.js +27 -0
- package/dist/esm/products-list/reducer.js.map +1 -0
- package/dist/esm/products-list/resolvers.js +23 -0
- package/dist/esm/products-list/resolvers.js.map +1 -0
- package/dist/esm/products-list/selectors.js +8 -0
- package/dist/esm/products-list/selectors.js.map +1 -0
- package/dist/esm/products-list/types.js +2 -0
- package/dist/esm/products-list/types.js.map +1 -0
- package/dist/esm/queries/use-happiness-engineers-query.js +7 -0
- package/dist/esm/queries/use-happiness-engineers-query.js.map +1 -0
- package/dist/esm/queries/use-has-3rd-party-cookies.js +36 -0
- package/dist/esm/queries/use-has-3rd-party-cookies.js.map +1 -0
- package/dist/esm/queries/use-has-seen-whats-new-modal-query.js +38 -0
- package/dist/esm/queries/use-has-seen-whats-new-modal-query.js.map +1 -0
- package/dist/esm/queries/use-site-analysis.js +60 -0
- package/dist/esm/queries/use-site-analysis.js.map +1 -0
- package/dist/esm/queries/use-site-intent.js +13 -0
- package/dist/esm/queries/use-site-intent.js.map +1 -0
- package/dist/esm/reader/actions.js +5 -0
- package/dist/esm/reader/actions.js.map +1 -0
- package/dist/esm/reader/constants.js +2 -0
- package/dist/esm/reader/constants.js.map +1 -0
- package/dist/esm/reader/index.js +26 -0
- package/dist/esm/reader/index.js.map +1 -0
- package/dist/esm/reader/persist.js +3 -0
- package/dist/esm/reader/persist.js.map +1 -0
- package/dist/esm/reader/reducer.js +12 -0
- package/dist/esm/reader/reducer.js.map +1 -0
- package/dist/esm/reader/resolvers.js +16 -0
- package/dist/esm/reader/resolvers.js.map +1 -0
- package/dist/esm/reader/selectors.js +2 -0
- package/dist/esm/reader/selectors.js.map +1 -0
- package/dist/esm/shared-types.js +1 -0
- package/dist/esm/shared-types.js.map +1 -0
- package/dist/esm/site/actions.js +368 -185
- package/dist/esm/site/actions.js.map +1 -0
- package/dist/esm/site/constants.js +2 -1
- package/dist/esm/site/constants.js.map +1 -0
- package/dist/esm/site/index.js +8 -12
- package/dist/esm/site/index.js.map +1 -0
- package/dist/esm/site/reducer.js +237 -39
- package/dist/esm/site/reducer.js.map +1 -0
- package/dist/esm/site/resolvers.js +34 -62
- package/dist/esm/site/resolvers.js.map +1 -0
- package/dist/esm/site/selectors.js +78 -23
- package/dist/esm/site/selectors.js.map +1 -0
- package/dist/esm/site/types.js +26 -0
- package/dist/esm/site/types.js.map +1 -0
- package/dist/esm/starter-designs-queries/types.js +2 -0
- package/dist/esm/starter-designs-queries/types.js.map +1 -0
- package/dist/esm/starter-designs-queries/use-starter-designs-generated-query.js +32 -0
- package/dist/esm/starter-designs-queries/use-starter-designs-generated-query.js.map +1 -0
- package/dist/esm/support-queries/types.js +2 -0
- package/dist/esm/support-queries/types.js.map +1 -0
- package/dist/esm/support-queries/use-sibyl-query.js +17 -0
- package/dist/esm/support-queries/use-sibyl-query.js.map +1 -0
- package/dist/esm/support-queries/use-submit-forums-topic.js +37 -0
- package/dist/esm/support-queries/use-submit-forums-topic.js.map +1 -0
- package/dist/esm/support-queries/use-submit-support-ticket.js +11 -0
- package/dist/esm/support-queries/use-submit-support-ticket.js.map +1 -0
- package/dist/esm/support-queries/use-support-availability.js +12 -0
- package/dist/esm/support-queries/use-support-availability.js.map +1 -0
- package/dist/esm/user/actions.js +53 -70
- package/dist/esm/user/actions.js.map +1 -0
- package/dist/esm/user/constants.js +2 -1
- package/dist/esm/user/constants.js.map +1 -0
- package/dist/esm/user/index.js +6 -11
- package/dist/esm/user/index.js.map +1 -0
- package/dist/esm/user/reducer.js +8 -8
- package/dist/esm/user/reducer.js.map +1 -0
- package/dist/esm/user/resolvers.js +20 -33
- package/dist/esm/user/resolvers.js.map +1 -0
- package/dist/esm/user/selectors.js +8 -7
- package/dist/esm/user/selectors.js.map +1 -0
- package/dist/esm/user/types.js +1 -0
- package/dist/esm/user/types.js.map +1 -0
- package/dist/esm/verticals/actions.js +4 -3
- package/dist/esm/verticals/actions.js.map +1 -0
- package/dist/esm/verticals/constants.js +2 -1
- package/dist/esm/verticals/constants.js.map +1 -0
- package/dist/esm/verticals/index.js +8 -13
- package/dist/esm/verticals/index.js.map +1 -0
- package/dist/esm/verticals/reducer.js +3 -3
- package/dist/esm/verticals/reducer.js.map +1 -0
- package/dist/esm/verticals/resolvers.js +6 -20
- package/dist/esm/verticals/resolvers.js.map +1 -0
- package/dist/esm/verticals/selectors.js +3 -2
- package/dist/esm/verticals/selectors.js.map +1 -0
- package/dist/esm/verticals/types.js +1 -0
- package/dist/esm/verticals/types.js.map +1 -0
- package/dist/esm/verticals-templates/actions.js +5 -4
- package/dist/esm/verticals-templates/actions.js.map +1 -0
- package/dist/esm/verticals-templates/constants.js +2 -1
- package/dist/esm/verticals-templates/constants.js.map +1 -0
- package/dist/esm/verticals-templates/index.js +8 -13
- package/dist/esm/verticals-templates/index.js.map +1 -0
- package/dist/esm/verticals-templates/reducer.js +7 -6
- package/dist/esm/verticals-templates/reducer.js.map +1 -0
- package/dist/esm/verticals-templates/resolvers.js +5 -18
- package/dist/esm/verticals-templates/resolvers.js.map +1 -0
- package/dist/esm/verticals-templates/selectors.js +2 -1
- package/dist/esm/verticals-templates/selectors.js.map +1 -0
- package/dist/esm/verticals-templates/types.js +1 -0
- package/dist/esm/verticals-templates/types.js.map +1 -0
- package/dist/esm/wpcom-features/constants.js +2 -1
- package/dist/esm/wpcom-features/constants.js.map +1 -0
- package/dist/esm/wpcom-features/features-data.js +3 -8
- package/dist/esm/wpcom-features/features-data.js.map +1 -0
- package/dist/esm/wpcom-features/index.js +5 -10
- package/dist/esm/wpcom-features/index.js.map +1 -0
- package/dist/esm/wpcom-features/reducer.js +2 -2
- package/dist/esm/wpcom-features/reducer.js.map +1 -0
- package/dist/esm/wpcom-features/selectors.js +6 -5
- package/dist/esm/wpcom-features/selectors.js.map +1 -0
- package/dist/esm/wpcom-features/types.js +1 -0
- package/dist/esm/wpcom-features/types.js.map +1 -0
- package/dist/esm/wpcom-request-controls/index.js +25 -55
- package/dist/esm/wpcom-request-controls/index.js.map +1 -0
- package/dist/tsconfig-cjs.tsbuildinfo +1 -1944
- package/dist/tsconfig.tsbuildinfo +1 -1943
- package/dist/types/auth/actions.d.ts +5 -8
- package/dist/types/auth/actions.d.ts.map +1 -1
- package/dist/types/auth/index.d.ts +1 -4
- package/dist/types/auth/index.d.ts.map +1 -1
- package/dist/types/auth/reducer.d.ts +2 -8
- package/dist/types/auth/reducer.d.ts.map +1 -1
- package/dist/types/auth/selectors.d.ts +0 -3
- package/dist/types/auth/selectors.d.ts.map +1 -1
- package/dist/types/automated-transfer-eligibility/actions.d.ts +10 -0
- package/dist/types/automated-transfer-eligibility/actions.d.ts.map +1 -0
- package/dist/types/automated-transfer-eligibility/constants.d.ts +11 -0
- package/dist/types/automated-transfer-eligibility/constants.d.ts.map +1 -0
- package/dist/types/automated-transfer-eligibility/index.d.ts +14 -0
- package/dist/types/automated-transfer-eligibility/index.d.ts.map +1 -0
- package/dist/types/automated-transfer-eligibility/reducer.d.ts +6 -0
- package/dist/types/automated-transfer-eligibility/reducer.d.ts.map +1 -0
- package/dist/types/automated-transfer-eligibility/resolvers.d.ts +8 -0
- package/dist/types/automated-transfer-eligibility/resolvers.d.ts.map +1 -0
- package/dist/types/automated-transfer-eligibility/selectors.d.ts +7 -0
- package/dist/types/automated-transfer-eligibility/selectors.d.ts.map +1 -0
- package/dist/types/automated-transfer-eligibility/types.d.ts +34 -0
- package/dist/types/automated-transfer-eligibility/types.d.ts.map +1 -0
- package/dist/types/contextual-help/constants.d.ts +12 -0
- package/dist/types/contextual-help/constants.d.ts.map +1 -0
- package/dist/types/contextual-help/contextual-help.d.ts +90 -0
- package/dist/types/contextual-help/contextual-help.d.ts.map +1 -0
- package/dist/types/domain-suggestions/actions.d.ts +0 -3
- package/dist/types/domain-suggestions/actions.d.ts.map +1 -1
- package/dist/types/domain-suggestions/index.d.ts +1 -4
- package/dist/types/domain-suggestions/index.d.ts.map +1 -1
- package/dist/types/domain-suggestions/reducer.d.ts +4 -29
- package/dist/types/domain-suggestions/reducer.d.ts.map +1 -1
- package/dist/types/domain-suggestions/resolvers.d.ts +6 -4
- package/dist/types/domain-suggestions/resolvers.d.ts.map +1 -1
- package/dist/types/domain-suggestions/selectors.d.ts +1 -4
- package/dist/types/domain-suggestions/selectors.d.ts.map +1 -1
- package/dist/types/domain-suggestions/types.d.ts +4 -3
- package/dist/types/domain-suggestions/types.d.ts.map +1 -1
- package/dist/types/domain-suggestions/utils.d.ts +0 -3
- package/dist/types/domain-suggestions/utils.d.ts.map +1 -1
- package/dist/types/help-center/actions.d.ts +47 -0
- package/dist/types/help-center/actions.d.ts.map +1 -0
- package/dist/types/help-center/constants.d.ts +2 -0
- package/dist/types/help-center/constants.d.ts.map +1 -0
- package/dist/types/help-center/index.d.ts +12 -0
- package/dist/types/help-center/index.d.ts.map +1 -0
- package/dist/types/help-center/reducer.d.ts +19 -0
- package/dist/types/help-center/reducer.d.ts.map +1 -0
- package/dist/types/help-center/selectors.d.ts +13 -0
- package/dist/types/help-center/selectors.d.ts.map +1 -0
- package/dist/types/i18n/actions.d.ts +0 -3
- package/dist/types/i18n/actions.d.ts.map +1 -1
- package/dist/types/i18n/index.d.ts +2 -5
- package/dist/types/i18n/index.d.ts.map +1 -1
- package/dist/types/i18n/reducer.d.ts +0 -3
- package/dist/types/i18n/reducer.d.ts.map +1 -1
- package/dist/types/i18n/resolvers.d.ts +2 -5
- package/dist/types/i18n/resolvers.d.ts.map +1 -1
- package/dist/types/i18n/selectors.d.ts +0 -3
- package/dist/types/i18n/selectors.d.ts.map +1 -1
- package/dist/types/index.d.ts +24 -8
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/launch/actions.d.ts +2 -14
- package/dist/types/launch/actions.d.ts.map +1 -1
- package/dist/types/launch/index.d.ts +1 -4
- package/dist/types/launch/index.d.ts.map +1 -1
- package/dist/types/launch/persist.d.ts.map +1 -1
- package/dist/types/launch/reducer.d.ts +4 -54
- package/dist/types/launch/reducer.d.ts.map +1 -1
- package/dist/types/launch/selectors.d.ts +3 -6
- package/dist/types/launch/selectors.d.ts.map +1 -1
- package/dist/types/launch/types.d.ts +1 -7
- package/dist/types/launch/types.d.ts.map +1 -1
- package/dist/types/mapped-types.d.ts +10 -4
- package/dist/types/mapped-types.d.ts.map +1 -1
- package/dist/types/onboard/actions.d.ts +186 -0
- package/dist/types/onboard/actions.d.ts.map +1 -0
- package/dist/types/onboard/constants.d.ts +10 -0
- package/dist/types/onboard/constants.d.ts.map +1 -0
- package/dist/types/onboard/index.d.ts +16 -0
- package/dist/types/onboard/index.d.ts.map +1 -0
- package/dist/types/onboard/persist.d.ts +6 -0
- package/dist/types/onboard/persist.d.ts.map +1 -0
- package/dist/types/onboard/reducer.d.ts +43 -0
- package/dist/types/onboard/reducer.d.ts.map +1 -0
- package/dist/types/onboard/selectors.d.ts +68 -0
- package/dist/types/onboard/selectors.d.ts.map +1 -0
- package/dist/types/plans/actions.d.ts +0 -3
- package/dist/types/plans/actions.d.ts.map +1 -1
- package/dist/types/plans/constants.d.ts +0 -3
- package/dist/types/plans/constants.d.ts.map +1 -1
- package/dist/types/plans/index.d.ts +2 -5
- package/dist/types/plans/index.d.ts.map +1 -1
- package/dist/types/plans/mock/apis/features.d.ts +0 -3
- package/dist/types/plans/mock/apis/features.d.ts.map +1 -1
- package/dist/types/plans/mock/apis/plans.d.ts.map +1 -1
- package/dist/types/plans/mock/store/features.d.ts.map +1 -1
- package/dist/types/plans/mock/store/plans.d.ts.map +1 -1
- package/dist/types/plans/mock/store/products.d.ts +0 -3
- package/dist/types/plans/mock/store/products.d.ts.map +1 -1
- package/dist/types/plans/reducer.d.ts +2 -27
- package/dist/types/plans/reducer.d.ts.map +1 -1
- package/dist/types/plans/resolvers.d.ts +2 -2
- package/dist/types/plans/resolvers.d.ts.map +1 -1
- package/dist/types/plans/selectors.d.ts +0 -3
- package/dist/types/plans/selectors.d.ts.map +1 -1
- package/dist/types/plans/test-utils/index.d.ts +0 -3
- package/dist/types/plans/test-utils/index.d.ts.map +1 -1
- package/dist/types/plans/types.d.ts +0 -3
- package/dist/types/plans/types.d.ts.map +1 -1
- package/dist/types/products-list/actions.d.ts +16 -0
- package/dist/types/products-list/actions.d.ts.map +1 -0
- package/dist/types/products-list/constants.d.ts +2 -0
- package/dist/types/products-list/constants.d.ts.map +1 -0
- package/dist/types/products-list/index.d.ts +14 -0
- package/dist/types/products-list/index.d.ts.map +1 -0
- package/dist/types/products-list/reducer.d.ts +12 -0
- package/dist/types/products-list/reducer.d.ts.map +1 -0
- package/dist/types/products-list/resolvers.d.ts +6 -0
- package/dist/types/products-list/resolvers.d.ts.map +1 -0
- package/dist/types/products-list/selectors.d.ts +8 -0
- package/dist/types/products-list/selectors.d.ts.map +1 -0
- package/dist/types/products-list/types.d.ts +27 -0
- package/dist/types/products-list/types.d.ts.map +1 -0
- package/dist/types/queries/use-happiness-engineers-query.d.ts +6 -0
- package/dist/types/queries/use-happiness-engineers-query.d.ts.map +1 -0
- package/dist/types/queries/use-has-3rd-party-cookies.d.ts +10 -0
- package/dist/types/queries/use-has-3rd-party-cookies.d.ts.map +1 -0
- package/dist/types/queries/use-has-seen-whats-new-modal-query.d.ts +12 -0
- package/dist/types/queries/use-has-seen-whats-new-modal-query.d.ts.map +1 -0
- package/dist/types/queries/use-site-analysis.d.ts +18 -0
- package/dist/types/queries/use-site-analysis.d.ts.map +1 -0
- package/dist/types/queries/use-site-intent.d.ts +4 -0
- package/dist/types/queries/use-site-intent.d.ts.map +1 -0
- package/dist/types/reader/actions.d.ts +16 -0
- package/dist/types/reader/actions.d.ts.map +1 -0
- package/dist/types/reader/constants.d.ts +2 -0
- package/dist/types/reader/constants.d.ts.map +1 -0
- package/dist/types/reader/index.d.ts +13 -0
- package/dist/types/reader/index.d.ts.map +1 -0
- package/dist/types/reader/persist.d.ts +6 -0
- package/dist/types/reader/persist.d.ts.map +1 -0
- package/dist/types/reader/reducer.d.ts +8 -0
- package/dist/types/reader/reducer.d.ts.map +1 -0
- package/dist/types/reader/resolvers.d.ts +2 -0
- package/dist/types/reader/resolvers.d.ts.map +1 -0
- package/dist/types/reader/selectors.d.ts +3 -0
- package/dist/types/reader/selectors.d.ts.map +1 -0
- package/dist/types/shared-types.d.ts +5 -0
- package/dist/types/shared-types.d.ts.map +1 -1
- package/dist/types/site/actions.d.ts +256 -24
- package/dist/types/site/actions.d.ts.map +1 -1
- package/dist/types/site/index.d.ts +2 -4
- package/dist/types/site/index.d.ts.map +1 -1
- package/dist/types/site/reducer.d.ts +52 -10
- package/dist/types/site/reducer.d.ts.map +1 -1
- package/dist/types/site/resolvers.d.ts +9 -8
- package/dist/types/site/resolvers.d.ts.map +1 -1
- package/dist/types/site/selectors.d.ts +111 -4
- package/dist/types/site/selectors.d.ts.map +1 -1
- package/dist/types/site/types.d.ts +193 -5
- package/dist/types/site/types.d.ts.map +1 -1
- package/dist/types/starter-designs-queries/types.d.ts +12 -0
- package/dist/types/starter-designs-queries/types.d.ts.map +1 -0
- package/dist/types/starter-designs-queries/use-starter-designs-generated-query.d.ts +9 -0
- package/dist/types/starter-designs-queries/use-starter-designs-generated-query.d.ts.map +1 -0
- package/dist/types/support-queries/types.d.ts +19 -0
- package/dist/types/support-queries/types.d.ts.map +1 -0
- package/dist/types/support-queries/use-sibyl-query.d.ts +9 -0
- package/dist/types/support-queries/use-sibyl-query.d.ts.map +1 -0
- package/dist/types/support-queries/use-submit-forums-topic.d.ts +15 -0
- package/dist/types/support-queries/use-submit-forums-topic.d.ts.map +1 -0
- package/dist/types/support-queries/use-submit-support-ticket.d.ts +10 -0
- package/dist/types/support-queries/use-submit-support-ticket.d.ts.map +1 -0
- package/dist/types/support-queries/use-support-availability.d.ts +5 -0
- package/dist/types/support-queries/use-support-availability.d.ts.map +1 -0
- package/dist/types/user/actions.d.ts +5 -8
- package/dist/types/user/actions.d.ts.map +1 -1
- package/dist/types/user/index.d.ts +1 -4
- package/dist/types/user/index.d.ts.map +1 -1
- package/dist/types/user/reducer.d.ts +2 -8
- package/dist/types/user/reducer.d.ts.map +1 -1
- package/dist/types/user/resolvers.d.ts +3 -3
- package/dist/types/user/resolvers.d.ts.map +1 -1
- package/dist/types/user/selectors.d.ts +0 -3
- package/dist/types/user/selectors.d.ts.map +1 -1
- package/dist/types/user/types.d.ts +1 -3
- package/dist/types/user/types.d.ts.map +1 -1
- package/dist/types/verticals/actions.d.ts +0 -3
- package/dist/types/verticals/actions.d.ts.map +1 -1
- package/dist/types/verticals/index.d.ts +1 -4
- package/dist/types/verticals/index.d.ts.map +1 -1
- package/dist/types/verticals/reducer.d.ts +1 -7
- package/dist/types/verticals/reducer.d.ts.map +1 -1
- package/dist/types/verticals/resolvers.d.ts +4 -3
- package/dist/types/verticals/resolvers.d.ts.map +1 -1
- package/dist/types/verticals/selectors.d.ts +0 -3
- package/dist/types/verticals/selectors.d.ts.map +1 -1
- package/dist/types/verticals-templates/actions.d.ts +0 -3
- package/dist/types/verticals-templates/actions.d.ts.map +1 -1
- package/dist/types/verticals-templates/index.d.ts +1 -4
- package/dist/types/verticals-templates/index.d.ts.map +1 -1
- package/dist/types/verticals-templates/reducer.d.ts +1 -7
- package/dist/types/verticals-templates/reducer.d.ts.map +1 -1
- package/dist/types/verticals-templates/resolvers.d.ts +6 -3
- package/dist/types/verticals-templates/resolvers.d.ts.map +1 -1
- package/dist/types/verticals-templates/selectors.d.ts +0 -3
- package/dist/types/verticals-templates/selectors.d.ts.map +1 -1
- package/dist/types/wpcom-features/features-data.d.ts.map +1 -1
- package/dist/types/wpcom-features/index.d.ts +1 -4
- package/dist/types/wpcom-features/index.d.ts.map +1 -1
- package/dist/types/wpcom-features/reducer.d.ts +1 -7
- package/dist/types/wpcom-features/reducer.d.ts.map +1 -1
- package/dist/types/wpcom-features/selectors.d.ts +2 -5
- package/dist/types/wpcom-features/selectors.d.ts.map +1 -1
- package/dist/types/wpcom-features/types.d.ts +0 -3
- package/dist/types/wpcom-features/types.d.ts.map +1 -1
- package/dist/types/wpcom-request-controls/index.d.ts +2 -5
- package/dist/types/wpcom-request-controls/index.d.ts.map +1 -1
- package/package.json +63 -58
- package/src/auth/actions.ts +21 -28
- package/src/auth/index.ts +3 -10
- package/src/auth/reducer.ts +3 -10
- package/src/auth/selectors.ts +0 -3
- package/src/auth/test/actions.ts +0 -3
- package/src/auth/test/flows.ts +2 -9
- package/src/auth/test/reducer.ts +1 -4
- package/src/automated-transfer-eligibility/actions.ts +15 -0
- package/src/automated-transfer-eligibility/constants.ts +44 -0
- package/src/automated-transfer-eligibility/index.ts +33 -0
- package/src/automated-transfer-eligibility/reducer.ts +18 -0
- package/src/automated-transfer-eligibility/resolvers.ts +17 -0
- package/src/automated-transfer-eligibility/selectors.ts +97 -0
- package/src/automated-transfer-eligibility/test/reducer.ts +60 -0
- package/src/automated-transfer-eligibility/types.ts +42 -0
- package/src/contextual-help/constants.ts +13 -0
- package/src/contextual-help/contextual-help.tsx +2489 -0
- package/src/domain-suggestions/actions.ts +0 -3
- package/src/domain-suggestions/index.ts +2 -9
- package/src/domain-suggestions/reducer.ts +3 -10
- package/src/domain-suggestions/resolvers.ts +57 -34
- package/src/domain-suggestions/selectors.ts +2 -9
- package/src/domain-suggestions/test/reducer.ts +1 -5
- package/src/domain-suggestions/test/selectors.ts +0 -7
- package/src/domain-suggestions/types.ts +5 -4
- package/src/domain-suggestions/utils.ts +3 -11
- package/src/help-center/README.md +11 -0
- package/src/help-center/actions.ts +72 -0
- package/src/help-center/constants.ts +1 -0
- package/src/help-center/index.ts +30 -0
- package/src/help-center/reducer.ts +98 -0
- package/src/help-center/selectors.ts +10 -0
- package/src/i18n/actions.ts +0 -3
- package/src/i18n/index.ts +4 -11
- package/src/i18n/reducer.ts +0 -3
- package/src/i18n/resolvers.ts +3 -6
- package/src/i18n/selectors.ts +0 -3
- package/src/i18n/test/reducer.js +1 -4
- package/src/i18n/test/resolvers.js +1 -8
- package/src/i18n/test/selectors.js +0 -3
- package/src/index.ts +28 -7
- package/src/launch/actions.ts +3 -23
- package/src/launch/index.ts +3 -10
- package/src/launch/persist.ts +0 -3
- package/src/launch/reducer.ts +4 -11
- package/src/launch/selectors.ts +6 -14
- package/src/launch/types.ts +1 -8
- package/src/mapped-types.ts +21 -5
- package/src/onboard/actions.ts +292 -0
- package/src/onboard/constants.ts +10 -0
- package/src/onboard/index.ts +53 -0
- package/src/onboard/persist.ts +3 -0
- package/src/onboard/reducer.ts +340 -0
- package/src/onboard/selectors.ts +48 -0
- package/src/plans/actions.ts +0 -3
- package/src/plans/constants.ts +0 -4
- package/src/plans/index.ts +4 -11
- package/src/plans/mock/apis/features.ts +0 -3
- package/src/plans/mock/apis/plans.ts +2 -37
- package/src/plans/mock/store/features.ts +0 -3
- package/src/plans/mock/store/plans.ts +0 -3
- package/src/plans/mock/store/products.ts +0 -3
- package/src/plans/reducer.ts +1 -8
- package/src/plans/resolvers.ts +10 -17
- package/src/plans/selectors.ts +1 -8
- package/src/plans/test/actions.ts +0 -3
- package/src/plans/test/reducer.ts +1 -4
- package/src/plans/test/resolvers.ts +1 -5
- package/src/plans/test/selectors.ts +2 -9
- package/src/plans/test-utils/index.ts +0 -3
- package/src/plans/types.ts +0 -3
- package/src/products-list/actions.ts +23 -0
- package/src/products-list/constants.ts +1 -0
- package/src/products-list/index.ts +32 -0
- package/src/products-list/reducer.ts +40 -0
- package/src/products-list/resolvers.ts +28 -0
- package/src/products-list/selectors.ts +11 -0
- package/src/products-list/test/actions.ts +55 -0
- package/src/products-list/test/reducer.ts +25 -0
- package/src/products-list/test/selectors.ts +68 -0
- package/src/products-list/types.ts +30 -0
- package/src/queries/use-happiness-engineers-query.ts +18 -0
- package/src/queries/use-has-3rd-party-cookies.ts +42 -0
- package/src/queries/use-has-seen-whats-new-modal-query.ts +68 -0
- package/src/queries/use-site-analysis.ts +78 -0
- package/src/queries/use-site-intent.ts +20 -0
- package/src/reader/actions.ts +20 -0
- package/src/reader/constants.ts +1 -0
- package/src/reader/index.ts +36 -0
- package/src/reader/persist.ts +3 -0
- package/src/reader/reducer.ts +18 -0
- package/src/reader/resolvers.ts +15 -0
- package/src/reader/selectors.ts +4 -0
- package/src/reader/test/reader-store.test.ts +43 -0
- package/src/shared-types.ts +6 -0
- package/src/site/actions.ts +344 -15
- package/src/site/index.ts +3 -9
- package/src/site/reducer.ts +242 -11
- package/src/site/resolvers.ts +39 -28
- package/src/site/selectors.ts +95 -12
- package/src/site/test/actions.ts +266 -4
- package/src/site/test/reducer.ts +49 -5
- package/src/site/test/selectors.ts +251 -8
- package/src/site/types.ts +207 -5
- package/src/starter-designs-queries/types.ts +13 -0
- package/src/starter-designs-queries/use-starter-designs-generated-query.ts +51 -0
- package/src/support-queries/types.ts +28 -0
- package/src/support-queries/use-sibyl-query.ts +31 -0
- package/src/support-queries/use-submit-forums-topic.ts +56 -0
- package/src/support-queries/use-submit-support-ticket.ts +21 -0
- package/src/support-queries/use-support-availability.ts +24 -0
- package/src/types.d.ts +1 -0
- package/src/user/README.md +1 -1
- package/src/user/actions.ts +6 -12
- package/src/user/index.ts +2 -9
- package/src/user/reducer.ts +2 -9
- package/src/user/resolvers.ts +1 -4
- package/src/user/selectors.ts +0 -3
- package/src/user/test/actions.ts +0 -3
- package/src/user/test/reducer.ts +3 -9
- package/src/user/test/resolvers.ts +0 -3
- package/src/user/types.ts +1 -4
- package/src/verticals/actions.ts +0 -3
- package/src/verticals/index.ts +2 -9
- package/src/verticals/reducer.ts +2 -9
- package/src/verticals/resolvers.ts +2 -8
- package/src/verticals/selectors.ts +0 -3
- package/src/verticals-templates/actions.ts +0 -3
- package/src/verticals-templates/index.ts +2 -9
- package/src/verticals-templates/reducer.ts +2 -9
- package/src/verticals-templates/resolvers.ts +2 -8
- package/src/verticals-templates/selectors.ts +0 -3
- package/src/wpcom-features/features-data.tsx +1 -6
- package/src/wpcom-features/index.ts +3 -10
- package/src/wpcom-features/reducer.ts +2 -9
- package/src/wpcom-features/selectors.ts +2 -6
- package/src/wpcom-features/types.ts +0 -3
- package/src/wpcom-request-controls/index.ts +3 -4
- package/LICENSE.md +0 -257
- package/src/site/test/resolvers.ts +0 -82
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export const STORE_KEY = 'automattic/products-list';
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { registerStore } from '@wordpress/data';
|
|
2
|
+
import { controls } from '../wpcom-request-controls';
|
|
3
|
+
import * as actions from './actions';
|
|
4
|
+
import { STORE_KEY } from './constants';
|
|
5
|
+
import reducer, { State } from './reducer';
|
|
6
|
+
import * as resolvers from './resolvers';
|
|
7
|
+
import * as selectors from './selectors';
|
|
8
|
+
import type { DispatchFromMap, SelectFromMap } from '../mapped-types';
|
|
9
|
+
|
|
10
|
+
export * from './types';
|
|
11
|
+
export type { State };
|
|
12
|
+
export { STORE_KEY };
|
|
13
|
+
|
|
14
|
+
let isRegistered = false;
|
|
15
|
+
export function register(): typeof STORE_KEY {
|
|
16
|
+
if ( ! isRegistered ) {
|
|
17
|
+
isRegistered = true;
|
|
18
|
+
registerStore< State >( STORE_KEY, {
|
|
19
|
+
actions,
|
|
20
|
+
controls: controls as any, // eslint-disable-line @typescript-eslint/no-explicit-any
|
|
21
|
+
reducer: reducer as any, // eslint-disable-line @typescript-eslint/no-explicit-any
|
|
22
|
+
resolvers,
|
|
23
|
+
selectors,
|
|
24
|
+
} );
|
|
25
|
+
}
|
|
26
|
+
return STORE_KEY;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
declare module '@wordpress/data' {
|
|
30
|
+
function dispatch( key: typeof STORE_KEY ): DispatchFromMap< typeof actions >;
|
|
31
|
+
function select( key: typeof STORE_KEY ): SelectFromMap< typeof selectors >;
|
|
32
|
+
}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { combineReducers } from '@wordpress/data';
|
|
2
|
+
import { ProductsList } from './types';
|
|
3
|
+
import type { Action } from './actions';
|
|
4
|
+
import type { Reducer } from 'redux';
|
|
5
|
+
|
|
6
|
+
// Stores the complete list of products, indexed by the product key
|
|
7
|
+
export const productsList: Reducer< ProductsList | undefined, Action > = ( state, action ) => {
|
|
8
|
+
switch ( action.type ) {
|
|
9
|
+
case 'PRODUCTS_LIST_RECEIVE':
|
|
10
|
+
return action.productsList;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
return state;
|
|
14
|
+
};
|
|
15
|
+
|
|
16
|
+
// Tracks product list fetching state
|
|
17
|
+
export const isFetchingProductsList: Reducer< boolean | undefined, Action > = (
|
|
18
|
+
state = false,
|
|
19
|
+
action
|
|
20
|
+
) => {
|
|
21
|
+
switch ( action.type ) {
|
|
22
|
+
case 'PRODUCTS_LIST_REQUEST':
|
|
23
|
+
return true;
|
|
24
|
+
case 'PRODUCTS_LIST_RECEIVE':
|
|
25
|
+
return false;
|
|
26
|
+
case 'PRODUCTS_LIST_REQUEST_FAILURE':
|
|
27
|
+
return false;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
return state;
|
|
31
|
+
};
|
|
32
|
+
|
|
33
|
+
const reducer = combineReducers( {
|
|
34
|
+
isFetchingProductsList,
|
|
35
|
+
productsList,
|
|
36
|
+
} );
|
|
37
|
+
|
|
38
|
+
export type State = ReturnType< typeof reducer >;
|
|
39
|
+
|
|
40
|
+
export default reducer;
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import wpcomRequest from 'wpcom-proxy-request';
|
|
2
|
+
import { ProductsList, ProductsListFailure, Dispatch } from './types';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Requests the list of all products from the WPCOM API.
|
|
6
|
+
*/
|
|
7
|
+
export const getProductsList =
|
|
8
|
+
() =>
|
|
9
|
+
async ( { dispatch }: Dispatch ) => {
|
|
10
|
+
dispatch.requestProductsList();
|
|
11
|
+
|
|
12
|
+
try {
|
|
13
|
+
const productsList: ProductsList = await wpcomRequest( {
|
|
14
|
+
path: '/products',
|
|
15
|
+
apiVersion: '1.1',
|
|
16
|
+
} );
|
|
17
|
+
|
|
18
|
+
// Since the request succeeded, productsList should be guaranteed non-null;
|
|
19
|
+
// thus, we don't have any safety checks before this line.
|
|
20
|
+
for ( const product of Object.values( productsList ) ) {
|
|
21
|
+
product.cost = Number( product.cost );
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
dispatch.receiveProductsList( productsList );
|
|
25
|
+
} catch ( err ) {
|
|
26
|
+
dispatch.receiveProductsListFailure( err as ProductsListFailure );
|
|
27
|
+
}
|
|
28
|
+
};
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { State } from './reducer';
|
|
2
|
+
|
|
3
|
+
export const getState = ( state: State ) => state;
|
|
4
|
+
|
|
5
|
+
export const getProductsList = ( state: State ) => {
|
|
6
|
+
return state.productsList;
|
|
7
|
+
};
|
|
8
|
+
|
|
9
|
+
export const getProductBySlug = ( state: State, slug: string ) => {
|
|
10
|
+
return state.productsList?.[ slug ];
|
|
11
|
+
};
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import { requestProductsList, receiveProductsListFailure, receiveProductsList } from '../actions';
|
|
2
|
+
import { ProductsList } from '../types';
|
|
3
|
+
|
|
4
|
+
describe( 'actions', () => {
|
|
5
|
+
it( 'should return a PRODUCTS_LIST_REQUEST action', () => {
|
|
6
|
+
const expected = {
|
|
7
|
+
type: 'PRODUCTS_LIST_REQUEST',
|
|
8
|
+
};
|
|
9
|
+
|
|
10
|
+
expect( requestProductsList() ).toEqual( expected );
|
|
11
|
+
} );
|
|
12
|
+
|
|
13
|
+
it( 'should return a PRODUCTS_LIST_REQUEST_FAILURE action', () => {
|
|
14
|
+
const error = {
|
|
15
|
+
message: 'test error',
|
|
16
|
+
};
|
|
17
|
+
|
|
18
|
+
const expected = {
|
|
19
|
+
type: 'PRODUCTS_LIST_REQUEST_FAILURE',
|
|
20
|
+
error,
|
|
21
|
+
};
|
|
22
|
+
|
|
23
|
+
expect( receiveProductsListFailure( error ) ).toEqual( expected );
|
|
24
|
+
} );
|
|
25
|
+
|
|
26
|
+
it( 'should return a PRODUCTS_LIST_RECEIVE action', () => {
|
|
27
|
+
const productsList = {
|
|
28
|
+
test_product: {
|
|
29
|
+
available: true,
|
|
30
|
+
combined_cost_display: '$20.00',
|
|
31
|
+
cost: 20,
|
|
32
|
+
cost_display: '$20.00',
|
|
33
|
+
currency_code: 'USD',
|
|
34
|
+
description: 'test product',
|
|
35
|
+
is_domain_registration: false,
|
|
36
|
+
price_tier_list: [],
|
|
37
|
+
price_tier_slug: '',
|
|
38
|
+
price_tier_usage_quantity: null,
|
|
39
|
+
price_tiers: [],
|
|
40
|
+
product_id: 9,
|
|
41
|
+
product_name: '10GB',
|
|
42
|
+
product_slug: '1gb_space_upgrade',
|
|
43
|
+
product_term: 'year',
|
|
44
|
+
product_type: 'space',
|
|
45
|
+
},
|
|
46
|
+
} as ProductsList;
|
|
47
|
+
|
|
48
|
+
const expected = {
|
|
49
|
+
type: 'PRODUCTS_LIST_RECEIVE',
|
|
50
|
+
productsList,
|
|
51
|
+
};
|
|
52
|
+
|
|
53
|
+
expect( receiveProductsList( productsList ) ).toEqual( expected );
|
|
54
|
+
} );
|
|
55
|
+
} );
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { productsList } from '../reducer';
|
|
2
|
+
import { ProductsList } from '../types';
|
|
3
|
+
|
|
4
|
+
describe( 'reducer', () => {
|
|
5
|
+
it( 'returns the correct default state', () => {
|
|
6
|
+
const state = productsList( undefined, { type: 'TEST_ACTION' } );
|
|
7
|
+
expect( state ).toEqual( undefined );
|
|
8
|
+
} );
|
|
9
|
+
|
|
10
|
+
it( 'returns the products list', () => {
|
|
11
|
+
const expectedProductsList = {
|
|
12
|
+
test_product: {
|
|
13
|
+
available: true,
|
|
14
|
+
cost: 20,
|
|
15
|
+
},
|
|
16
|
+
} as ProductsList;
|
|
17
|
+
|
|
18
|
+
const state = productsList( undefined, {
|
|
19
|
+
type: 'PRODUCTS_LIST_RECEIVE',
|
|
20
|
+
productsList: expectedProductsList,
|
|
21
|
+
} );
|
|
22
|
+
|
|
23
|
+
expect( state ).toEqual( expectedProductsList );
|
|
24
|
+
} );
|
|
25
|
+
} );
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* These tests shouldn't require the jsdom environment,
|
|
3
|
+
* but we're waiting for this PR to merge:
|
|
4
|
+
* https://github.com/WordPress/gutenberg/pull/20486
|
|
5
|
+
*
|
|
6
|
+
* @jest-environment jsdom
|
|
7
|
+
*/
|
|
8
|
+
import { select, subscribe } from '@wordpress/data';
|
|
9
|
+
import wpcomRequest from 'wpcom-proxy-request';
|
|
10
|
+
import { register } from '..';
|
|
11
|
+
|
|
12
|
+
jest.mock( 'wpcom-proxy-request', () => ( {
|
|
13
|
+
__esModule: true,
|
|
14
|
+
default: jest.fn(),
|
|
15
|
+
} ) );
|
|
16
|
+
|
|
17
|
+
let store: ReturnType< typeof register >;
|
|
18
|
+
|
|
19
|
+
beforeAll( () => {
|
|
20
|
+
store = register();
|
|
21
|
+
} );
|
|
22
|
+
|
|
23
|
+
beforeEach( () => {
|
|
24
|
+
( wpcomRequest as jest.Mock ).mockReset();
|
|
25
|
+
} );
|
|
26
|
+
|
|
27
|
+
describe( 'selectors', () => {
|
|
28
|
+
it( 'resolves the state via an API call', async () => {
|
|
29
|
+
const apiResponse = {
|
|
30
|
+
free_plan: {
|
|
31
|
+
product_id: 1,
|
|
32
|
+
product_name: 'WordPress.com Free',
|
|
33
|
+
product_slug: 'free_plan',
|
|
34
|
+
description: '',
|
|
35
|
+
product_type: 'bundle',
|
|
36
|
+
available: true,
|
|
37
|
+
is_domain_registration: false,
|
|
38
|
+
cost_display: '$0.00',
|
|
39
|
+
combined_cost_display: '$0.00',
|
|
40
|
+
cost: 0,
|
|
41
|
+
currency_code: 'USD',
|
|
42
|
+
price_tier_list: [],
|
|
43
|
+
price_tier_usage_quantity: null,
|
|
44
|
+
product_term: 'one time',
|
|
45
|
+
price_tiers: [],
|
|
46
|
+
price_tier_slug: '',
|
|
47
|
+
},
|
|
48
|
+
};
|
|
49
|
+
|
|
50
|
+
( wpcomRequest as jest.Mock ).mockResolvedValue( apiResponse );
|
|
51
|
+
|
|
52
|
+
// First call returns undefined
|
|
53
|
+
expect( select( store ).getProductsList() ).toEqual( undefined );
|
|
54
|
+
|
|
55
|
+
await new Promise( ( resolve ) => {
|
|
56
|
+
const unsubscribe = subscribe( () => {
|
|
57
|
+
if ( select( store ).getProductsList() === undefined ) {
|
|
58
|
+
return;
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
unsubscribe();
|
|
62
|
+
resolve();
|
|
63
|
+
} );
|
|
64
|
+
} );
|
|
65
|
+
|
|
66
|
+
expect( select( store ).getProductsList() ).toEqual( apiResponse );
|
|
67
|
+
} );
|
|
68
|
+
} );
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import * as actions from './actions';
|
|
2
|
+
import type { DispatchFromMap } from '../mapped-types';
|
|
3
|
+
|
|
4
|
+
export interface Dispatch {
|
|
5
|
+
dispatch: DispatchFromMap< typeof actions >;
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
export interface ProductsListItem {
|
|
9
|
+
available: boolean;
|
|
10
|
+
combined_cost_display: string;
|
|
11
|
+
cost: number;
|
|
12
|
+
currency_code: string;
|
|
13
|
+
description: string;
|
|
14
|
+
is_domain_registration: boolean;
|
|
15
|
+
price_tier_list: any;
|
|
16
|
+
price_tier_lug: string;
|
|
17
|
+
price_tier_usage_quantity: number | null;
|
|
18
|
+
price_tiers: any;
|
|
19
|
+
product_id: number;
|
|
20
|
+
product_name: string;
|
|
21
|
+
product_slug: string;
|
|
22
|
+
product_term: string;
|
|
23
|
+
product_type: string;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
export type ProductsList = Record< string, ProductsListItem >;
|
|
27
|
+
|
|
28
|
+
export interface ProductsListFailure {
|
|
29
|
+
message: string;
|
|
30
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { useQuery } from 'react-query';
|
|
2
|
+
import wpcomRequest from 'wpcom-proxy-request';
|
|
3
|
+
|
|
4
|
+
export const useHappinessEngineersQuery = () =>
|
|
5
|
+
useQuery<
|
|
6
|
+
{
|
|
7
|
+
display_name: string;
|
|
8
|
+
name: string;
|
|
9
|
+
avatar_URL: string;
|
|
10
|
+
}[]
|
|
11
|
+
>(
|
|
12
|
+
'happinessEngineers',
|
|
13
|
+
async () => await wpcomRequest( { path: '/meta/happiness-engineers/', apiVersion: '1.1' } ),
|
|
14
|
+
{
|
|
15
|
+
refetchOnWindowFocus: false,
|
|
16
|
+
staleTime: Infinity,
|
|
17
|
+
}
|
|
18
|
+
);
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { useEffect, useState } from 'react';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Cache the result for the entire session, since changing 3PC settings requires a refresh
|
|
5
|
+
*/
|
|
6
|
+
let result: boolean | undefined;
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* Calls a widgets.wp.com endpoint from within an iframe to determine whether the user has 3rd party cookies allowed
|
|
10
|
+
*
|
|
11
|
+
* @returns true when cookies are allowed, false when not.
|
|
12
|
+
*/
|
|
13
|
+
export function useHas3PC() {
|
|
14
|
+
const [ hasCookies, setHasCookies ] = useState( Boolean( result ) );
|
|
15
|
+
|
|
16
|
+
useEffect( () => {
|
|
17
|
+
const iframe = document.createElement( 'iframe' );
|
|
18
|
+
|
|
19
|
+
function handler( event: MessageEvent ) {
|
|
20
|
+
const { data } = event;
|
|
21
|
+
if ( data.type === 'widgets.wp.com-cookie-check' ) {
|
|
22
|
+
// cache the result
|
|
23
|
+
result = data.result;
|
|
24
|
+
setHasCookies( data.result );
|
|
25
|
+
window.removeEventListener( 'message', handler );
|
|
26
|
+
iframe.remove();
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
// only inject the iframe if the result isn't already cached
|
|
31
|
+
if ( result === undefined ) {
|
|
32
|
+
iframe.src = 'https://widgets.wp.com/calypso-happychat/check-cookies.html';
|
|
33
|
+
iframe.style.display = 'none';
|
|
34
|
+
|
|
35
|
+
window.addEventListener( 'message', handler );
|
|
36
|
+
document.body.appendChild( iframe );
|
|
37
|
+
return () => window.removeEventListener( 'message', handler );
|
|
38
|
+
}
|
|
39
|
+
}, [] );
|
|
40
|
+
|
|
41
|
+
return { hasCookies, isLoading: result === undefined };
|
|
42
|
+
}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import { useCallback } from 'react';
|
|
2
|
+
import { useQuery, useQueryClient, useMutation } from 'react-query';
|
|
3
|
+
import wpcomRequest from 'wpcom-proxy-request';
|
|
4
|
+
|
|
5
|
+
interface HasSeenWhatsNewModal {
|
|
6
|
+
hasSeenWhatsNewModal: boolean;
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
interface HasSeenWhatsNewModalResult {
|
|
10
|
+
has_seen_whats_new_modal: boolean;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
interface UpdateError {
|
|
14
|
+
message: string;
|
|
15
|
+
error: string;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
export const useHasSeenWhatsNewModalQuery = ( siteId: number | null ) => {
|
|
19
|
+
const queryKey = 'has-seen-whats-new-modal';
|
|
20
|
+
|
|
21
|
+
const { data, isLoading } = useQuery< { has_seen_whats_new_modal: boolean } >(
|
|
22
|
+
queryKey,
|
|
23
|
+
() =>
|
|
24
|
+
wpcomRequest( {
|
|
25
|
+
path: `/sites/${ siteId }/block-editor/has-seen-whats-new-modal`,
|
|
26
|
+
apiNamespace: 'wpcom/v2',
|
|
27
|
+
} ),
|
|
28
|
+
{
|
|
29
|
+
enabled: !! siteId,
|
|
30
|
+
refetchOnWindowFocus: false,
|
|
31
|
+
}
|
|
32
|
+
);
|
|
33
|
+
|
|
34
|
+
const queryClient = useQueryClient();
|
|
35
|
+
const mutation = useMutation< HasSeenWhatsNewModalResult, UpdateError, HasSeenWhatsNewModal >(
|
|
36
|
+
( { hasSeenWhatsNewModal } ) =>
|
|
37
|
+
wpcomRequest( {
|
|
38
|
+
path: `/sites/${ siteId }/block-editor/has-seen-whats-new-modal`,
|
|
39
|
+
apiNamespace: 'wpcom/v2',
|
|
40
|
+
method: 'post',
|
|
41
|
+
body: {
|
|
42
|
+
has_seen_whats_new_modal: hasSeenWhatsNewModal,
|
|
43
|
+
},
|
|
44
|
+
} ),
|
|
45
|
+
{
|
|
46
|
+
onSuccess( data ) {
|
|
47
|
+
queryClient.setQueryData( queryKey, {
|
|
48
|
+
...data,
|
|
49
|
+
} );
|
|
50
|
+
},
|
|
51
|
+
}
|
|
52
|
+
);
|
|
53
|
+
|
|
54
|
+
const { mutateAsync } = mutation;
|
|
55
|
+
|
|
56
|
+
const setHasSeenWhatsNewModal = useCallback(
|
|
57
|
+
( hasSeenWhatsNewModal: boolean ) => {
|
|
58
|
+
return mutateAsync( { hasSeenWhatsNewModal } );
|
|
59
|
+
},
|
|
60
|
+
[ mutateAsync ]
|
|
61
|
+
);
|
|
62
|
+
|
|
63
|
+
return {
|
|
64
|
+
data,
|
|
65
|
+
isLoading,
|
|
66
|
+
setHasSeenWhatsNewModal,
|
|
67
|
+
};
|
|
68
|
+
};
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
import { useEffect, useState } from 'react';
|
|
2
|
+
import { useDebounce } from 'use-debounce';
|
|
3
|
+
import wpcomRequest from 'wpcom-proxy-request';
|
|
4
|
+
import { SiteDetails } from '../site';
|
|
5
|
+
|
|
6
|
+
type ResultType = 'WPCOM' | 'WPORG' | 'UNKNOWN' | 'NOT_OWNED_BY_USER' | 'UNKNOWN';
|
|
7
|
+
|
|
8
|
+
export type AnalysisReport = {
|
|
9
|
+
result: ResultType;
|
|
10
|
+
site?: SiteDetails;
|
|
11
|
+
};
|
|
12
|
+
|
|
13
|
+
type Analysis = {
|
|
14
|
+
url: string;
|
|
15
|
+
platform: string;
|
|
16
|
+
meta: {
|
|
17
|
+
title: string;
|
|
18
|
+
favicon: string;
|
|
19
|
+
};
|
|
20
|
+
platform_data?: { is_wpcom: boolean };
|
|
21
|
+
};
|
|
22
|
+
|
|
23
|
+
// a simple way to check if a string is host to save on API calls
|
|
24
|
+
function isHost( string: string | undefined ) {
|
|
25
|
+
if ( string ) {
|
|
26
|
+
return string.length > 4 && Boolean( string?.match( /\w{2,}\.\w{2,16}/ ) );
|
|
27
|
+
}
|
|
28
|
+
return false;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
/**
|
|
32
|
+
* Analyses a site to determine whether its a WPCOM site, and if yes, it would fetch and return the site information (SiteDetails).
|
|
33
|
+
*
|
|
34
|
+
* @param siteURL the site URL
|
|
35
|
+
*/
|
|
36
|
+
export function useSiteAnalysis( siteURL: string | undefined ) {
|
|
37
|
+
const [ analysis, setAnalysis ] = useState< AnalysisReport | undefined >();
|
|
38
|
+
const [ debouncedSiteUrl ] = useDebounce( siteURL, 500 );
|
|
39
|
+
|
|
40
|
+
useEffect( () => {
|
|
41
|
+
setAnalysis( undefined );
|
|
42
|
+
if ( ! isHost( debouncedSiteUrl ) ) {
|
|
43
|
+
return;
|
|
44
|
+
}
|
|
45
|
+
if ( debouncedSiteUrl ) {
|
|
46
|
+
( async () => {
|
|
47
|
+
try {
|
|
48
|
+
const analysis = await wpcomRequest< Analysis >( {
|
|
49
|
+
path: `/imports/analyze-url?site_url=${ encodeURIComponent( debouncedSiteUrl ) }`,
|
|
50
|
+
apiNamespace: 'wpcom/v2',
|
|
51
|
+
} );
|
|
52
|
+
|
|
53
|
+
if ( analysis.platform_data?.is_wpcom ) {
|
|
54
|
+
try {
|
|
55
|
+
// if a wpcom site, get its info
|
|
56
|
+
const site = await wpcomRequest< SiteDetails >( {
|
|
57
|
+
path: '/sites/' + encodeURIComponent( debouncedSiteUrl ),
|
|
58
|
+
apiVersion: '1.1',
|
|
59
|
+
} );
|
|
60
|
+
setAnalysis( { site, result: 'WPCOM' } );
|
|
61
|
+
} catch ( error ) {
|
|
62
|
+
// wpcom site, but not owned by user
|
|
63
|
+
setAnalysis( { result: 'NOT_OWNED_BY_USER' } );
|
|
64
|
+
}
|
|
65
|
+
} else if ( analysis.platform === 'wordpress' ) {
|
|
66
|
+
setAnalysis( { result: 'WPORG' } );
|
|
67
|
+
} else {
|
|
68
|
+
setAnalysis( { result: 'UNKNOWN' } );
|
|
69
|
+
}
|
|
70
|
+
} catch ( error ) {
|
|
71
|
+
setAnalysis( { result: 'UNKNOWN' } );
|
|
72
|
+
}
|
|
73
|
+
} )();
|
|
74
|
+
}
|
|
75
|
+
}, [ debouncedSiteUrl ] );
|
|
76
|
+
|
|
77
|
+
return { ...analysis, isLoading: ! analysis };
|
|
78
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { useQuery } from 'react-query';
|
|
2
|
+
import wpcomRequest from 'wpcom-proxy-request';
|
|
3
|
+
|
|
4
|
+
export function useSiteIntent( siteId: string | number | undefined ) {
|
|
5
|
+
return useQuery< {
|
|
6
|
+
site_intent: '';
|
|
7
|
+
} >(
|
|
8
|
+
'site-intent-' + siteId,
|
|
9
|
+
async () =>
|
|
10
|
+
await wpcomRequest( {
|
|
11
|
+
path: `/sites/${ encodeURIComponent( siteId as string ) }/site-intent`,
|
|
12
|
+
apiNamespace: 'wpcom/v2',
|
|
13
|
+
} ),
|
|
14
|
+
{
|
|
15
|
+
refetchOnWindowFocus: false,
|
|
16
|
+
staleTime: Infinity,
|
|
17
|
+
enabled: !! siteId,
|
|
18
|
+
}
|
|
19
|
+
);
|
|
20
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
export interface ReaderTeam {
|
|
2
|
+
slug: string;
|
|
3
|
+
team: string;
|
|
4
|
+
}
|
|
5
|
+
|
|
6
|
+
export interface ReaderTeamsResponse {
|
|
7
|
+
number: number;
|
|
8
|
+
teams: ReaderTeam[];
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
export const fetchReaderTeamsSuccess = ( response: ReaderTeamsResponse ) =>
|
|
12
|
+
( {
|
|
13
|
+
type: 'FETCH_READER_TEAMS_SUCCESS',
|
|
14
|
+
response,
|
|
15
|
+
} as const );
|
|
16
|
+
|
|
17
|
+
export type ReaderAction =
|
|
18
|
+
| ReturnType< typeof fetchReaderTeamsSuccess >
|
|
19
|
+
// Dummy action used during testing
|
|
20
|
+
| { type: 'DUMMY_ACTION' };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export const STORE_KEY = 'automattic/reader';
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { plugins, registerStore, use } from '@wordpress/data';
|
|
2
|
+
import { controls } from '../wpcom-request-controls';
|
|
3
|
+
import * as actions from './actions';
|
|
4
|
+
import { STORE_KEY } from './constants';
|
|
5
|
+
import persistOptions from './persist';
|
|
6
|
+
import reducer, { State } from './reducer';
|
|
7
|
+
import * as resolvers from './resolvers';
|
|
8
|
+
import * as selectors from './selectors';
|
|
9
|
+
import type { SelectFromMap, DispatchFromMap } from '../mapped-types';
|
|
10
|
+
|
|
11
|
+
export type { State };
|
|
12
|
+
export { STORE_KEY };
|
|
13
|
+
|
|
14
|
+
use( plugins.persistence, persistOptions );
|
|
15
|
+
|
|
16
|
+
let isRegistered = false;
|
|
17
|
+
|
|
18
|
+
export function register(): typeof STORE_KEY {
|
|
19
|
+
if ( ! isRegistered ) {
|
|
20
|
+
isRegistered = true;
|
|
21
|
+
registerStore< State >( STORE_KEY, {
|
|
22
|
+
actions,
|
|
23
|
+
controls: controls as any,
|
|
24
|
+
reducer: reducer as any,
|
|
25
|
+
resolvers,
|
|
26
|
+
selectors,
|
|
27
|
+
persist: [ 'teams' ],
|
|
28
|
+
} );
|
|
29
|
+
}
|
|
30
|
+
return STORE_KEY;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
declare module '@wordpress/data' {
|
|
34
|
+
function dispatch( key: typeof STORE_KEY ): DispatchFromMap< typeof actions >;
|
|
35
|
+
function select( key: typeof STORE_KEY ): SelectFromMap< typeof selectors >;
|
|
36
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { combineReducers } from '@wordpress/data';
|
|
2
|
+
import type { ReaderTeam, ReaderAction } from './actions';
|
|
3
|
+
import type { Reducer } from 'redux';
|
|
4
|
+
|
|
5
|
+
const teams: Reducer< ReaderTeam[] | null, ReaderAction > = ( state = null, action ) => {
|
|
6
|
+
if ( action.type === 'FETCH_READER_TEAMS_SUCCESS' ) {
|
|
7
|
+
return action.response.teams;
|
|
8
|
+
}
|
|
9
|
+
return state;
|
|
10
|
+
};
|
|
11
|
+
|
|
12
|
+
const reducer = combineReducers( {
|
|
13
|
+
teams,
|
|
14
|
+
} );
|
|
15
|
+
|
|
16
|
+
export type State = ReturnType< typeof reducer >;
|
|
17
|
+
|
|
18
|
+
export default reducer;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { wpcomRequest } from '../wpcom-request-controls';
|
|
2
|
+
import { fetchReaderTeamsSuccess, ReaderTeamsResponse } from './actions';
|
|
3
|
+
|
|
4
|
+
export function* isA8cTeamMember(): Generator {
|
|
5
|
+
try {
|
|
6
|
+
const response = yield wpcomRequest( {
|
|
7
|
+
method: 'GET',
|
|
8
|
+
path: '/read/teams',
|
|
9
|
+
apiVersion: '1.2',
|
|
10
|
+
} );
|
|
11
|
+
yield fetchReaderTeamsSuccess( response as ReaderTeamsResponse );
|
|
12
|
+
} catch {
|
|
13
|
+
// Ignore errors
|
|
14
|
+
}
|
|
15
|
+
}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { dispatch, select } from '@wordpress/data';
|
|
2
|
+
import waitForExpect from 'wait-for-expect';
|
|
3
|
+
import wpcomRequest from 'wpcom-proxy-request';
|
|
4
|
+
import { STORE_KEY } from '../constants';
|
|
5
|
+
import { register } from '../index';
|
|
6
|
+
import readerReducer from '../reducer';
|
|
7
|
+
|
|
8
|
+
jest.mock( 'wpcom-proxy-request', () => ( {
|
|
9
|
+
__esModule: true,
|
|
10
|
+
default: jest.fn(),
|
|
11
|
+
requestAllBlogsAccess: jest.fn( () => Promise.resolve() ),
|
|
12
|
+
} ) );
|
|
13
|
+
|
|
14
|
+
beforeAll( () => {
|
|
15
|
+
register();
|
|
16
|
+
} );
|
|
17
|
+
|
|
18
|
+
beforeEach( () => {
|
|
19
|
+
// Reset the store back to default state
|
|
20
|
+
dispatch( STORE_KEY ).fetchReaderTeamsSuccess( { teams: null } as any );
|
|
21
|
+
} );
|
|
22
|
+
|
|
23
|
+
test( 'teams state defaults to `null`', () => {
|
|
24
|
+
const defaultState = readerReducer( undefined, { type: 'DUMMY_ACTION' } );
|
|
25
|
+
expect( defaultState.teams ).toBe( null );
|
|
26
|
+
} );
|
|
27
|
+
|
|
28
|
+
test( 'selecting isA8cTeamMember requests teams data from API', async () => {
|
|
29
|
+
( wpcomRequest as jest.Mock ).mockResolvedValue( {
|
|
30
|
+
count: 0,
|
|
31
|
+
teams: [ { name: '', slug: 'a8c' } ],
|
|
32
|
+
} );
|
|
33
|
+
|
|
34
|
+
const isTeamMember = select( STORE_KEY ).isA8cTeamMember();
|
|
35
|
+
|
|
36
|
+
// Returns false while response is loading
|
|
37
|
+
expect( isTeamMember ).toBe( false );
|
|
38
|
+
|
|
39
|
+
await waitForExpect( () => {
|
|
40
|
+
const isTeamMember = select( STORE_KEY ).isA8cTeamMember();
|
|
41
|
+
expect( isTeamMember ).toBe( true );
|
|
42
|
+
} );
|
|
43
|
+
} );
|