@automattic/data-stores 3.1.2 → 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.
Files changed (601) hide show
  1. package/CHANGELOG.md +18 -1
  2. package/dist/cjs/agents-manager/actions.js +116 -0
  3. package/dist/cjs/agents-manager/actions.js.map +1 -0
  4. package/dist/cjs/agents-manager/constants.js +5 -0
  5. package/dist/cjs/agents-manager/constants.js.map +1 -0
  6. package/dist/cjs/agents-manager/index.js +37 -0
  7. package/dist/cjs/agents-manager/index.js.map +1 -0
  8. package/dist/cjs/agents-manager/persist-state.js +58 -0
  9. package/dist/cjs/agents-manager/persist-state.js.map +1 -0
  10. package/dist/cjs/agents-manager/reducer.js +87 -0
  11. package/dist/cjs/agents-manager/reducer.js.map +1 -0
  12. package/dist/cjs/agents-manager/resolvers.js +60 -0
  13. package/dist/cjs/agents-manager/resolvers.js.map +1 -0
  14. package/dist/cjs/agents-manager/selectors.js +44 -0
  15. package/dist/cjs/agents-manager/selectors.js.map +1 -0
  16. package/dist/cjs/{domain-suggestions → agents-manager}/types.js.map +1 -1
  17. package/dist/cjs/contextual-help/admin-sections.js +2 -2
  18. package/dist/cjs/contextual-help/admin-sections.js.map +1 -1
  19. package/dist/cjs/help-center/actions.js +103 -69
  20. package/dist/cjs/help-center/actions.js.map +1 -1
  21. package/dist/cjs/help-center/constants.js +2 -1
  22. package/dist/cjs/help-center/constants.js.map +1 -1
  23. package/dist/cjs/help-center/index.js +14 -27
  24. package/dist/cjs/help-center/index.js.map +1 -1
  25. package/dist/cjs/help-center/reducer.js +36 -12
  26. package/dist/cjs/help-center/reducer.js.map +1 -1
  27. package/dist/cjs/help-center/resolvers.js +45 -24
  28. package/dist/cjs/help-center/resolvers.js.map +1 -1
  29. package/dist/cjs/help-center/selectors.js +13 -5
  30. package/dist/cjs/help-center/selectors.js.map +1 -1
  31. package/dist/cjs/help-center/utils.js +136 -0
  32. package/dist/cjs/help-center/utils.js.map +1 -0
  33. package/dist/cjs/index.js +8 -6
  34. package/dist/cjs/index.js.map +1 -1
  35. package/dist/cjs/mutations/use-domains-bulk-actions-mutation.js +3 -3
  36. package/dist/cjs/mutations/use-domains-bulk-actions-mutation.js.map +1 -1
  37. package/dist/cjs/newsletter-categories/index.js +2 -2
  38. package/dist/cjs/newsletter-categories/index.js.map +1 -1
  39. package/dist/cjs/onboard/actions.js +16 -1
  40. package/dist/cjs/onboard/actions.js.map +1 -1
  41. package/dist/cjs/onboard/reducer.js +34 -1
  42. package/dist/cjs/onboard/reducer.js.map +1 -1
  43. package/dist/cjs/onboard/selectors.js +7 -1
  44. package/dist/cjs/onboard/selectors.js.map +1 -1
  45. package/dist/cjs/plans/constants.js +3 -1
  46. package/dist/cjs/plans/constants.js.map +1 -1
  47. package/dist/cjs/plans/hooks/use-pricing-meta-for-grid-plans.js +35 -18
  48. package/dist/cjs/plans/hooks/use-pricing-meta-for-grid-plans.js.map +1 -1
  49. package/dist/cjs/plans/index.js +2 -1
  50. package/dist/cjs/plans/index.js.map +1 -1
  51. package/dist/cjs/plans/queries/use-plans.js +21 -2
  52. package/dist/cjs/plans/queries/use-plans.js.map +1 -1
  53. package/dist/cjs/plans/queries/use-site-plans.js +2 -2
  54. package/dist/cjs/plans/queries/use-site-plans.js.map +1 -1
  55. package/dist/cjs/plans/resolvers.js +0 -1
  56. package/dist/cjs/plans/resolvers.js.map +1 -1
  57. package/dist/cjs/plans/selectors.js.map +1 -1
  58. package/dist/cjs/products-list/queries/use-products.js +2 -2
  59. package/dist/cjs/products-list/queries/use-products.js.map +1 -1
  60. package/dist/cjs/products-list/resolvers.js +2 -2
  61. package/dist/cjs/products-list/resolvers.js.map +1 -1
  62. package/dist/cjs/purchases/lib/assembler.js +15 -20
  63. package/dist/cjs/purchases/lib/assembler.js.map +1 -1
  64. package/dist/cjs/purchases/queries/use-get-jetpack-transferred-license-purchases.js +2 -2
  65. package/dist/cjs/purchases/queries/use-get-jetpack-transferred-license-purchases.js.map +1 -1
  66. package/dist/cjs/purchases/queries/use-site-purchases.js +3 -3
  67. package/dist/cjs/purchases/queries/use-site-purchases.js.map +1 -1
  68. package/dist/cjs/queries/use-all-domains-query.js +2 -2
  69. package/dist/cjs/queries/use-all-domains-query.js.map +1 -1
  70. package/dist/cjs/queries/use-bulk-domain-update-status-query.js +3 -57
  71. package/dist/cjs/queries/use-bulk-domain-update-status-query.js.map +1 -1
  72. package/dist/cjs/queries/use-happiness-engineers-query.js +2 -2
  73. package/dist/cjs/queries/use-happiness-engineers-query.js.map +1 -1
  74. package/dist/cjs/queries/use-launchpad.js +5 -5
  75. package/dist/cjs/queries/use-launchpad.js.map +1 -1
  76. package/dist/cjs/queries/use-site-domains-query.js +2 -2
  77. package/dist/cjs/queries/use-site-domains-query.js.map +1 -1
  78. package/dist/cjs/queries/use-site-intent.js +2 -2
  79. package/dist/cjs/queries/use-site-intent.js.map +1 -1
  80. package/dist/cjs/queries/use-site-query.js +2 -2
  81. package/dist/cjs/queries/use-site-query.js.map +1 -1
  82. package/dist/cjs/reader/contexts/index.js +1 -4
  83. package/dist/cjs/reader/contexts/index.js.map +1 -1
  84. package/dist/cjs/reader/helpers/index.js +4 -3
  85. package/dist/cjs/reader/helpers/index.js.map +1 -1
  86. package/dist/cjs/reader/helpers/optimistic-update.js +2 -1
  87. package/dist/cjs/reader/helpers/optimistic-update.js.map +1 -1
  88. package/dist/cjs/reader/index.js +2 -8
  89. package/dist/cjs/reader/index.js.map +1 -1
  90. package/dist/cjs/reader/mutations/use-pending-site-confirm-mutation.js +2 -2
  91. package/dist/cjs/reader/mutations/use-pending-site-confirm-mutation.js.map +1 -1
  92. package/dist/cjs/reader/mutations/use-site-delivery-frequency-mutation.js +26 -20
  93. package/dist/cjs/reader/mutations/use-site-delivery-frequency-mutation.js.map +1 -1
  94. package/dist/cjs/reader/mutations/use-site-email-me-new-comments-mutation.js +4 -3
  95. package/dist/cjs/reader/mutations/use-site-email-me-new-comments-mutation.js.map +1 -1
  96. package/dist/cjs/reader/mutations/use-site-email-me-new-posts-mutation.js +4 -3
  97. package/dist/cjs/reader/mutations/use-site-email-me-new-posts-mutation.js.map +1 -1
  98. package/dist/cjs/reader/mutations/use-site-notify-me-of-new-posts-mutation.js +4 -3
  99. package/dist/cjs/reader/mutations/use-site-notify-me-of-new-posts-mutation.js.map +1 -1
  100. package/dist/cjs/reader/mutations/use-site-subscribe-mutation.js +10 -4
  101. package/dist/cjs/reader/mutations/use-site-subscribe-mutation.js.map +1 -1
  102. package/dist/cjs/reader/mutations/use-site-unsubscribe-mutation.js +11 -4
  103. package/dist/cjs/reader/mutations/use-site-unsubscribe-mutation.js.map +1 -1
  104. package/dist/cjs/reader/queries/index.js +2 -8
  105. package/dist/cjs/reader/queries/index.js.map +1 -1
  106. package/dist/cjs/reader/queries/use-site-subscriptions-query.js +27 -26
  107. package/dist/cjs/reader/queries/use-site-subscriptions-query.js.map +1 -1
  108. package/dist/cjs/site/queries/use-site-features.js +2 -2
  109. package/dist/cjs/site/queries/use-site-features.js.map +1 -1
  110. package/dist/cjs/site/queries/use-site-media-storage.js +2 -2
  111. package/dist/cjs/site/queries/use-site-media-storage.js.map +1 -1
  112. package/dist/cjs/site/queries/use-site-user-query.js +2 -2
  113. package/dist/cjs/site/queries/use-site-user-query.js.map +1 -1
  114. package/dist/cjs/site/queries/use-site.js +2 -2
  115. package/dist/cjs/site/queries/use-site.js.map +1 -1
  116. package/dist/cjs/site/resolvers.js +5 -5
  117. package/dist/cjs/site/resolvers.js.map +1 -1
  118. package/dist/cjs/site/selectors.js +5 -3
  119. package/dist/cjs/site/selectors.js.map +1 -1
  120. package/dist/cjs/site/types.js.map +1 -1
  121. package/dist/cjs/site-reset/use-site-reset-content-summary-query.js +2 -2
  122. package/dist/cjs/site-reset/use-site-reset-content-summary-query.js.map +1 -1
  123. package/dist/cjs/site-reset/use-site-reset-mutation.js +2 -2
  124. package/dist/cjs/site-reset/use-site-reset-mutation.js.map +1 -1
  125. package/dist/cjs/site-reset/use-site-reset-status-query.js +2 -2
  126. package/dist/cjs/site-reset/use-site-reset-status-query.js.map +1 -1
  127. package/dist/cjs/starter-designs-queries/use-starter-design-by-slug.js +2 -2
  128. package/dist/cjs/starter-designs-queries/use-starter-design-by-slug.js.map +1 -1
  129. package/dist/cjs/starter-designs-queries/use-starter-designs-query.js +2 -2
  130. package/dist/cjs/starter-designs-queries/use-starter-designs-query.js.map +1 -1
  131. package/dist/cjs/subscriber/actions.js +5 -5
  132. package/dist/cjs/subscriber/actions.js.map +1 -1
  133. package/dist/cjs/templates/use-template.js +2 -2
  134. package/dist/cjs/templates/use-template.js.map +1 -1
  135. package/dist/cjs/users/use-send-invites.js +2 -2
  136. package/dist/cjs/users/use-send-invites.js.map +1 -1
  137. package/dist/cjs/utils.js +26 -0
  138. package/dist/cjs/utils.js.map +1 -0
  139. package/dist/cjs/wpcom-request-controls/index.js +3 -2
  140. package/dist/cjs/wpcom-request-controls/index.js.map +1 -1
  141. package/dist/cjs/wpcom-request.js +24 -0
  142. package/dist/cjs/wpcom-request.js.map +1 -0
  143. package/dist/esm/agents-manager/actions.js +104 -0
  144. package/dist/esm/agents-manager/actions.js.map +1 -0
  145. package/dist/esm/agents-manager/constants.js +2 -0
  146. package/dist/esm/agents-manager/constants.js.map +1 -0
  147. package/dist/esm/agents-manager/index.js +31 -0
  148. package/dist/esm/agents-manager/index.js.map +1 -0
  149. package/dist/esm/agents-manager/persist-state.js +54 -0
  150. package/dist/esm/agents-manager/persist-state.js.map +1 -0
  151. package/dist/esm/agents-manager/reducer.js +82 -0
  152. package/dist/esm/agents-manager/reducer.js.map +1 -0
  153. package/dist/esm/agents-manager/resolvers.js +57 -0
  154. package/dist/esm/agents-manager/resolvers.js.map +1 -0
  155. package/dist/esm/agents-manager/selectors.js +31 -0
  156. package/dist/esm/agents-manager/selectors.js.map +1 -0
  157. package/dist/esm/{domain-suggestions → agents-manager}/types.js.map +1 -1
  158. package/dist/esm/contextual-help/admin-sections.js +2 -2
  159. package/dist/esm/contextual-help/admin-sections.js.map +1 -1
  160. package/dist/esm/help-center/actions.js +95 -65
  161. package/dist/esm/help-center/actions.js.map +1 -1
  162. package/dist/esm/help-center/constants.js +1 -0
  163. package/dist/esm/help-center/constants.js.map +1 -1
  164. package/dist/esm/help-center/index.js +11 -23
  165. package/dist/esm/help-center/index.js.map +1 -1
  166. package/dist/esm/help-center/reducer.js +36 -12
  167. package/dist/esm/help-center/reducer.js.map +1 -1
  168. package/dist/esm/help-center/resolvers.js +43 -24
  169. package/dist/esm/help-center/resolvers.js.map +1 -1
  170. package/dist/esm/help-center/selectors.js +6 -2
  171. package/dist/esm/help-center/selectors.js.map +1 -1
  172. package/dist/esm/help-center/utils.js +127 -0
  173. package/dist/esm/help-center/utils.js.map +1 -0
  174. package/dist/esm/index.js +4 -4
  175. package/dist/esm/index.js.map +1 -1
  176. package/dist/esm/mutations/use-domains-bulk-actions-mutation.js +1 -1
  177. package/dist/esm/mutations/use-domains-bulk-actions-mutation.js.map +1 -1
  178. package/dist/esm/newsletter-categories/index.js +1 -1
  179. package/dist/esm/newsletter-categories/index.js.map +1 -1
  180. package/dist/esm/onboard/actions.js +12 -0
  181. package/dist/esm/onboard/actions.js.map +1 -1
  182. package/dist/esm/onboard/reducer.js +30 -0
  183. package/dist/esm/onboard/reducer.js.map +1 -1
  184. package/dist/esm/onboard/selectors.js +3 -0
  185. package/dist/esm/onboard/selectors.js.map +1 -1
  186. package/dist/esm/plans/constants.js +2 -0
  187. package/dist/esm/plans/constants.js.map +1 -1
  188. package/dist/esm/plans/hooks/use-pricing-meta-for-grid-plans.js +35 -18
  189. package/dist/esm/plans/hooks/use-pricing-meta-for-grid-plans.js.map +1 -1
  190. package/dist/esm/plans/index.js +1 -1
  191. package/dist/esm/plans/index.js.map +1 -1
  192. package/dist/esm/plans/queries/use-plans.js +21 -2
  193. package/dist/esm/plans/queries/use-plans.js.map +1 -1
  194. package/dist/esm/plans/queries/use-site-plans.js +1 -1
  195. package/dist/esm/plans/resolvers.js +0 -1
  196. package/dist/esm/plans/resolvers.js.map +1 -1
  197. package/dist/esm/plans/selectors.js.map +1 -1
  198. package/dist/esm/products-list/queries/use-products.js +1 -1
  199. package/dist/esm/products-list/queries/use-products.js.map +1 -1
  200. package/dist/esm/products-list/resolvers.js +1 -1
  201. package/dist/esm/products-list/resolvers.js.map +1 -1
  202. package/dist/esm/purchases/lib/assembler.js +15 -20
  203. package/dist/esm/purchases/lib/assembler.js.map +1 -1
  204. package/dist/esm/purchases/queries/use-get-jetpack-transferred-license-purchases.js +1 -1
  205. package/dist/esm/purchases/queries/use-site-purchases.js +2 -2
  206. package/dist/esm/queries/use-all-domains-query.js +1 -1
  207. package/dist/esm/queries/use-all-domains-query.js.map +1 -1
  208. package/dist/esm/queries/use-bulk-domain-update-status-query.js +3 -56
  209. package/dist/esm/queries/use-bulk-domain-update-status-query.js.map +1 -1
  210. package/dist/esm/queries/use-happiness-engineers-query.js +1 -1
  211. package/dist/esm/queries/use-happiness-engineers-query.js.map +1 -1
  212. package/dist/esm/queries/use-launchpad.js +1 -1
  213. package/dist/esm/queries/use-launchpad.js.map +1 -1
  214. package/dist/esm/queries/use-site-domains-query.js +1 -1
  215. package/dist/esm/queries/use-site-domains-query.js.map +1 -1
  216. package/dist/esm/queries/use-site-intent.js +1 -1
  217. package/dist/esm/queries/use-site-intent.js.map +1 -1
  218. package/dist/esm/queries/use-site-query.js +1 -1
  219. package/dist/esm/queries/use-site-query.js.map +1 -1
  220. package/dist/esm/reader/contexts/index.js +0 -1
  221. package/dist/esm/reader/contexts/index.js.map +1 -1
  222. package/dist/esm/reader/helpers/index.js +3 -2
  223. package/dist/esm/reader/helpers/index.js.map +1 -1
  224. package/dist/esm/reader/helpers/optimistic-update.js +2 -1
  225. package/dist/esm/reader/helpers/optimistic-update.js.map +1 -1
  226. package/dist/esm/reader/index.js +2 -3
  227. package/dist/esm/reader/index.js.map +1 -1
  228. package/dist/esm/reader/mutations/use-pending-site-confirm-mutation.js +2 -2
  229. package/dist/esm/reader/mutations/use-pending-site-confirm-mutation.js.map +1 -1
  230. package/dist/esm/reader/mutations/use-site-delivery-frequency-mutation.js +27 -21
  231. package/dist/esm/reader/mutations/use-site-delivery-frequency-mutation.js.map +1 -1
  232. package/dist/esm/reader/mutations/use-site-email-me-new-comments-mutation.js +5 -4
  233. package/dist/esm/reader/mutations/use-site-email-me-new-comments-mutation.js.map +1 -1
  234. package/dist/esm/reader/mutations/use-site-email-me-new-posts-mutation.js +5 -4
  235. package/dist/esm/reader/mutations/use-site-email-me-new-posts-mutation.js.map +1 -1
  236. package/dist/esm/reader/mutations/use-site-notify-me-of-new-posts-mutation.js +5 -4
  237. package/dist/esm/reader/mutations/use-site-notify-me-of-new-posts-mutation.js.map +1 -1
  238. package/dist/esm/reader/mutations/use-site-subscribe-mutation.js +10 -4
  239. package/dist/esm/reader/mutations/use-site-subscribe-mutation.js.map +1 -1
  240. package/dist/esm/reader/mutations/use-site-unsubscribe-mutation.js +11 -4
  241. package/dist/esm/reader/mutations/use-site-unsubscribe-mutation.js.map +1 -1
  242. package/dist/esm/reader/queries/index.js +1 -4
  243. package/dist/esm/reader/queries/index.js.map +1 -1
  244. package/dist/esm/reader/queries/use-site-subscriptions-query.js +28 -27
  245. package/dist/esm/reader/queries/use-site-subscriptions-query.js.map +1 -1
  246. package/dist/esm/site/queries/use-site-features.js +1 -1
  247. package/dist/esm/site/queries/use-site-media-storage.js +1 -1
  248. package/dist/esm/site/queries/use-site-user-query.js +1 -1
  249. package/dist/esm/site/queries/use-site-user-query.js.map +1 -1
  250. package/dist/esm/site/queries/use-site.js +1 -1
  251. package/dist/esm/site/resolvers.js +1 -1
  252. package/dist/esm/site/resolvers.js.map +1 -1
  253. package/dist/esm/site/selectors.js +5 -3
  254. package/dist/esm/site/selectors.js.map +1 -1
  255. package/dist/esm/site/types.js.map +1 -1
  256. package/dist/esm/site-reset/use-site-reset-content-summary-query.js +1 -1
  257. package/dist/esm/site-reset/use-site-reset-content-summary-query.js.map +1 -1
  258. package/dist/esm/site-reset/use-site-reset-mutation.js +1 -1
  259. package/dist/esm/site-reset/use-site-reset-mutation.js.map +1 -1
  260. package/dist/esm/site-reset/use-site-reset-status-query.js +1 -1
  261. package/dist/esm/site-reset/use-site-reset-status-query.js.map +1 -1
  262. package/dist/esm/starter-designs-queries/use-starter-design-by-slug.js +1 -1
  263. package/dist/esm/starter-designs-queries/use-starter-design-by-slug.js.map +1 -1
  264. package/dist/esm/starter-designs-queries/use-starter-designs-query.js +1 -1
  265. package/dist/esm/starter-designs-queries/use-starter-designs-query.js.map +1 -1
  266. package/dist/esm/subscriber/actions.js +1 -1
  267. package/dist/esm/subscriber/actions.js.map +1 -1
  268. package/dist/esm/templates/use-template.js +1 -1
  269. package/dist/esm/templates/use-template.js.map +1 -1
  270. package/dist/esm/users/use-send-invites.js +1 -1
  271. package/dist/esm/users/use-send-invites.js.map +1 -1
  272. package/dist/esm/utils.js +21 -0
  273. package/dist/esm/utils.js.map +1 -0
  274. package/dist/esm/wpcom-request-controls/index.js +2 -1
  275. package/dist/esm/wpcom-request-controls/index.js.map +1 -1
  276. package/dist/esm/wpcom-request.js +18 -0
  277. package/dist/esm/wpcom-request.js.map +1 -0
  278. package/dist/tsconfig-cjs.tsbuildinfo +1 -1
  279. package/dist/tsconfig.tsbuildinfo +1 -1
  280. package/dist/types/add-ons/types.d.ts +1 -0
  281. package/dist/types/add-ons/types.d.ts.map +1 -1
  282. package/dist/types/agents-manager/actions.d.ts +77 -0
  283. package/dist/types/agents-manager/actions.d.ts.map +1 -0
  284. package/dist/types/agents-manager/constants.d.ts +2 -0
  285. package/dist/types/agents-manager/constants.d.ts.map +1 -0
  286. package/dist/types/agents-manager/index.d.ts +6 -0
  287. package/dist/types/agents-manager/index.d.ts.map +1 -0
  288. package/dist/types/agents-manager/persist-state.d.ts +6 -0
  289. package/dist/types/agents-manager/persist-state.d.ts.map +1 -0
  290. package/dist/types/agents-manager/reducer.d.ts +29 -0
  291. package/dist/types/agents-manager/reducer.d.ts.map +1 -0
  292. package/dist/types/agents-manager/resolvers.d.ts +54 -0
  293. package/dist/types/agents-manager/resolvers.d.ts.map +1 -0
  294. package/dist/types/agents-manager/selectors.d.ts +22 -0
  295. package/dist/types/agents-manager/selectors.d.ts.map +1 -0
  296. package/dist/types/agents-manager/types.d.ts +20 -0
  297. package/dist/types/agents-manager/types.d.ts.map +1 -0
  298. package/dist/types/contextual-help/admin-sections.d.ts +330 -6
  299. package/dist/types/contextual-help/admin-sections.d.ts.map +1 -1
  300. package/dist/types/contextual-help/contextual-help.d.ts +410 -30
  301. package/dist/types/contextual-help/contextual-help.d.ts.map +1 -1
  302. package/dist/types/help-center/actions.d.ts +249 -28
  303. package/dist/types/help-center/actions.d.ts.map +1 -1
  304. package/dist/types/help-center/constants.d.ts +1 -0
  305. package/dist/types/help-center/constants.d.ts.map +1 -1
  306. package/dist/types/help-center/index.d.ts +1 -2
  307. package/dist/types/help-center/index.d.ts.map +1 -1
  308. package/dist/types/help-center/reducer.d.ts +19 -7
  309. package/dist/types/help-center/reducer.d.ts.map +1 -1
  310. package/dist/types/help-center/resolvers.d.ts +4 -23
  311. package/dist/types/help-center/resolvers.d.ts.map +1 -1
  312. package/dist/types/help-center/selectors.d.ts +14 -3
  313. package/dist/types/help-center/selectors.d.ts.map +1 -1
  314. package/dist/types/help-center/types.d.ts +21 -12
  315. package/dist/types/help-center/types.d.ts.map +1 -1
  316. package/dist/types/help-center/utils.d.ts +13 -0
  317. package/dist/types/help-center/utils.d.ts.map +1 -0
  318. package/dist/types/index.d.ts +347 -197
  319. package/dist/types/index.d.ts.map +1 -1
  320. package/dist/types/onboard/actions.d.ts +32 -4
  321. package/dist/types/onboard/actions.d.ts.map +1 -1
  322. package/dist/types/onboard/reducer.d.ts +11 -2
  323. package/dist/types/onboard/reducer.d.ts.map +1 -1
  324. package/dist/types/onboard/selectors.d.ts +14 -8
  325. package/dist/types/onboard/selectors.d.ts.map +1 -1
  326. package/dist/types/onboard/types.d.ts +1 -1
  327. package/dist/types/onboard/types.d.ts.map +1 -1
  328. package/dist/types/plans/constants.d.ts +3 -2
  329. package/dist/types/plans/constants.d.ts.map +1 -1
  330. package/dist/types/plans/hooks/use-pricing-meta-for-grid-plans.d.ts +6 -1
  331. package/dist/types/plans/hooks/use-pricing-meta-for-grid-plans.d.ts.map +1 -1
  332. package/dist/types/plans/index.d.ts +1 -1
  333. package/dist/types/plans/index.d.ts.map +1 -1
  334. package/dist/types/plans/queries/use-plans.d.ts.map +1 -1
  335. package/dist/types/plans/resolvers.d.ts.map +1 -1
  336. package/dist/types/plans/types.d.ts +6 -0
  337. package/dist/types/plans/types.d.ts.map +1 -1
  338. package/dist/types/products-list/index.d.ts +1 -1
  339. package/dist/types/products-list/index.d.ts.map +1 -1
  340. package/dist/types/products-list/queries/use-products.d.ts.map +1 -1
  341. package/dist/types/purchases/lib/assembler.d.ts +3 -3
  342. package/dist/types/purchases/lib/assembler.d.ts.map +1 -1
  343. package/dist/types/purchases/types.d.ts +40 -109
  344. package/dist/types/purchases/types.d.ts.map +1 -1
  345. package/dist/types/queries/use-all-domains-query.d.ts +3 -3
  346. package/dist/types/queries/use-all-domains-query.d.ts.map +1 -1
  347. package/dist/types/queries/use-bulk-domain-update-status-query.d.ts +5 -48
  348. package/dist/types/queries/use-bulk-domain-update-status-query.d.ts.map +1 -1
  349. package/dist/types/queries/use-site-domains-query.d.ts +1 -1
  350. package/dist/types/queries/use-site-domains-query.d.ts.map +1 -1
  351. package/dist/types/queries/use-site-intent.d.ts.map +1 -1
  352. package/dist/types/queries/use-site-query.d.ts +1 -1
  353. package/dist/types/queries/use-site-query.d.ts.map +1 -1
  354. package/dist/types/reader/contexts/index.d.ts +0 -1
  355. package/dist/types/reader/contexts/index.d.ts.map +1 -1
  356. package/dist/types/reader/helpers/index.d.ts.map +1 -1
  357. package/dist/types/reader/helpers/optimistic-update.d.ts.map +1 -1
  358. package/dist/types/reader/index.d.ts +342 -196
  359. package/dist/types/reader/index.d.ts.map +1 -1
  360. package/dist/types/reader/mutations/use-site-delivery-frequency-mutation.d.ts +3 -2
  361. package/dist/types/reader/mutations/use-site-delivery-frequency-mutation.d.ts.map +1 -1
  362. package/dist/types/reader/mutations/use-site-email-me-new-comments-mutation.d.ts +3 -2
  363. package/dist/types/reader/mutations/use-site-email-me-new-comments-mutation.d.ts.map +1 -1
  364. package/dist/types/reader/mutations/use-site-email-me-new-posts-mutation.d.ts +3 -2
  365. package/dist/types/reader/mutations/use-site-email-me-new-posts-mutation.d.ts.map +1 -1
  366. package/dist/types/reader/mutations/use-site-notify-me-of-new-posts-mutation.d.ts +3 -2
  367. package/dist/types/reader/mutations/use-site-notify-me-of-new-posts-mutation.d.ts.map +1 -1
  368. package/dist/types/reader/mutations/use-site-subscribe-mutation.d.ts +3 -2
  369. package/dist/types/reader/mutations/use-site-subscribe-mutation.d.ts.map +1 -1
  370. package/dist/types/reader/mutations/use-site-unsubscribe-mutation.d.ts +3 -2
  371. package/dist/types/reader/mutations/use-site-unsubscribe-mutation.d.ts.map +1 -1
  372. package/dist/types/reader/queries/index.d.ts +1 -5
  373. package/dist/types/reader/queries/index.d.ts.map +1 -1
  374. package/dist/types/reader/queries/use-pending-post-subscriptions-query.d.ts +75 -7
  375. package/dist/types/reader/queries/use-pending-post-subscriptions-query.d.ts.map +1 -1
  376. package/dist/types/reader/queries/use-pending-site-subscriptions-query.d.ts +75 -7
  377. package/dist/types/reader/queries/use-pending-site-subscriptions-query.d.ts.map +1 -1
  378. package/dist/types/reader/queries/use-post-subscriptions-query.d.ts +143 -13
  379. package/dist/types/reader/queries/use-post-subscriptions-query.d.ts.map +1 -1
  380. package/dist/types/reader/queries/use-site-subscriptions-query.d.ts +6 -135
  381. package/dist/types/reader/queries/use-site-subscriptions-query.d.ts.map +1 -1
  382. package/dist/types/reader/types/index.d.ts +32 -44
  383. package/dist/types/reader/types/index.d.ts.map +1 -1
  384. package/dist/types/shared-types.d.ts +11 -0
  385. package/dist/types/shared-types.d.ts.map +1 -1
  386. package/dist/types/site/actions.d.ts +1 -1
  387. package/dist/types/site/actions.d.ts.map +1 -1
  388. package/dist/types/site/queries/use-site-user-query.d.ts.map +1 -1
  389. package/dist/types/site/selectors.d.ts.map +1 -1
  390. package/dist/types/site/types.d.ts +5 -0
  391. package/dist/types/site/types.d.ts.map +1 -1
  392. package/dist/types/starter-designs-queries/types.d.ts +1 -1
  393. package/dist/types/starter-designs-queries/types.d.ts.map +1 -1
  394. package/dist/types/starter-designs-queries/use-starter-design-by-slug.d.ts +1 -1
  395. package/dist/types/starter-designs-queries/use-starter-design-by-slug.d.ts.map +1 -1
  396. package/dist/types/starter-designs-queries/use-starter-designs-query.d.ts +1 -1
  397. package/dist/types/starter-designs-queries/use-starter-designs-query.d.ts.map +1 -1
  398. package/dist/types/subscriber/index.d.ts +1 -1
  399. package/dist/types/subscriber/index.d.ts.map +1 -1
  400. package/dist/types/user/actions.d.ts +1 -1
  401. package/dist/types/user/reducer.d.ts +1 -1
  402. package/dist/types/user/resolvers.d.ts +2 -2
  403. package/dist/types/user/selectors.d.ts +2 -2
  404. package/dist/types/user/selectors.d.ts.map +1 -1
  405. package/dist/types/user/types.d.ts +2 -33
  406. package/dist/types/user/types.d.ts.map +1 -1
  407. package/dist/types/utils.d.ts +3 -0
  408. package/dist/types/utils.d.ts.map +1 -0
  409. package/dist/types/wpcom-plans-ui/actions.d.ts +1 -1
  410. package/dist/types/wpcom-plans-ui/index.d.ts +1 -1
  411. package/dist/types/wpcom-plans-ui/index.d.ts.map +1 -1
  412. package/dist/types/wpcom-request-controls/index.d.ts +1 -1
  413. package/dist/types/wpcom-request-controls/index.d.ts.map +1 -1
  414. package/dist/types/wpcom-request.d.ts +7 -0
  415. package/dist/types/wpcom-request.d.ts.map +1 -0
  416. package/package.json +26 -29
  417. package/src/add-ons/types.ts +1 -0
  418. package/src/agents-manager/actions.ts +151 -0
  419. package/src/agents-manager/constants.ts +1 -0
  420. package/src/agents-manager/index.ts +38 -0
  421. package/src/agents-manager/persist-state.ts +60 -0
  422. package/src/agents-manager/reducer.ts +106 -0
  423. package/src/agents-manager/resolvers.ts +87 -0
  424. package/src/agents-manager/selectors.ts +32 -0
  425. package/src/agents-manager/test/persist-state.test.ts +81 -0
  426. package/src/agents-manager/test/reducer.test.ts +69 -0
  427. package/src/agents-manager/types.ts +24 -0
  428. package/src/contextual-help/admin-sections.ts +2 -2
  429. package/src/help-center/actions.ts +139 -79
  430. package/src/help-center/constants.ts +1 -0
  431. package/src/help-center/index.ts +11 -32
  432. package/src/help-center/reducer.ts +55 -19
  433. package/src/help-center/resolvers.ts +47 -32
  434. package/src/help-center/selectors.ts +7 -2
  435. package/src/help-center/test/utils.ts +99 -0
  436. package/src/help-center/types.ts +23 -13
  437. package/src/help-center/utils.ts +156 -0
  438. package/src/index.ts +11 -4
  439. package/src/mutations/use-domains-bulk-actions-mutation.ts +1 -1
  440. package/src/newsletter-categories/index.ts +1 -1
  441. package/src/newsletter-categories/test/index.tsx +5 -2
  442. package/src/onboard/actions.ts +20 -3
  443. package/src/onboard/reducer.ts +38 -3
  444. package/src/onboard/selectors.ts +3 -0
  445. package/src/onboard/types.ts +1 -1
  446. package/src/plans/constants.ts +2 -0
  447. package/src/plans/hooks/test/use-pricing-meta-for-grid-plans.ts +120 -0
  448. package/src/plans/hooks/use-pricing-meta-for-grid-plans.ts +48 -18
  449. package/src/plans/index.ts +1 -0
  450. package/src/plans/queries/use-plans.ts +30 -2
  451. package/src/plans/queries/use-site-plans.ts +1 -1
  452. package/src/plans/resolvers.ts +0 -1
  453. package/src/plans/selectors.ts +9 -9
  454. package/src/plans/types.ts +6 -0
  455. package/src/products-list/queries/use-products.ts +1 -1
  456. package/src/products-list/resolvers.ts +1 -1
  457. package/src/products-list/selectors.ts +1 -1
  458. package/src/products-list/test/selectors.ts +2 -2
  459. package/src/purchases/lib/assembler.ts +20 -29
  460. package/src/purchases/queries/use-get-jetpack-transferred-license-purchases.tsx +1 -1
  461. package/src/purchases/queries/use-site-purchases.ts +2 -2
  462. package/src/purchases/types.ts +47 -116
  463. package/src/queries/use-all-domains-query.ts +3 -3
  464. package/src/queries/use-bulk-domain-update-status-query.ts +14 -115
  465. package/src/queries/use-happiness-engineers-query.ts +1 -1
  466. package/src/queries/use-launchpad.ts +1 -1
  467. package/src/queries/use-site-domains-query.ts +1 -1
  468. package/src/queries/use-site-intent.ts +1 -1
  469. package/src/queries/use-site-query.ts +1 -1
  470. package/src/reader/contexts/index.ts +0 -4
  471. package/src/reader/helpers/index.ts +3 -2
  472. package/src/reader/helpers/optimistic-update.ts +2 -1
  473. package/src/reader/index.ts +2 -4
  474. package/src/reader/mutations/test/use-site-subscription-mutations.test.tsx +208 -0
  475. package/src/reader/mutations/use-pending-site-confirm-mutation.ts +2 -2
  476. package/src/reader/mutations/use-site-delivery-frequency-mutation.ts +32 -36
  477. package/src/reader/mutations/use-site-email-me-new-comments-mutation.ts +10 -10
  478. package/src/reader/mutations/use-site-email-me-new-posts-mutation.ts +10 -10
  479. package/src/reader/mutations/use-site-notify-me-of-new-posts-mutation.ts +10 -10
  480. package/src/reader/mutations/use-site-subscribe-mutation.ts +21 -10
  481. package/src/reader/mutations/use-site-unsubscribe-mutation.ts +20 -10
  482. package/src/reader/queries/index.ts +4 -6
  483. package/src/reader/queries/test/use-site-subscriptions-query.tsx +158 -52
  484. package/src/reader/queries/use-site-subscriptions-query.ts +53 -55
  485. package/src/reader/types/index.ts +34 -48
  486. package/src/shared-types.ts +13 -0
  487. package/src/site/actions.ts +1 -1
  488. package/src/site/queries/use-site-features.ts +1 -1
  489. package/src/site/queries/use-site-media-storage.ts +1 -1
  490. package/src/site/queries/use-site-user-query.ts +1 -1
  491. package/src/site/queries/use-site.ts +1 -1
  492. package/src/site/resolvers.ts +1 -1
  493. package/src/site/selectors.ts +18 -10
  494. package/src/site/test/selectors.ts +3 -3
  495. package/src/site/types.ts +5 -0
  496. package/src/site-reset/test/use-site-reset-mutation.tsx +3 -4
  497. package/src/site-reset/use-site-reset-content-summary-query.ts +1 -1
  498. package/src/site-reset/use-site-reset-mutation.ts +1 -1
  499. package/src/site-reset/use-site-reset-status-query.ts +1 -1
  500. package/src/starter-designs-queries/types.ts +1 -1
  501. package/src/starter-designs-queries/use-starter-design-by-slug.ts +2 -2
  502. package/src/starter-designs-queries/use-starter-designs-query.ts +2 -2
  503. package/src/subscriber/actions.ts +1 -1
  504. package/src/templates/use-template.ts +1 -1
  505. package/src/user/types.ts +2 -38
  506. package/src/users/use-send-invites.ts +1 -1
  507. package/src/utils.ts +33 -0
  508. package/src/wpcom-request-controls/index.ts +2 -1
  509. package/src/wpcom-request.ts +26 -0
  510. package/dist/cjs/domain-suggestions/actions.js +0 -33
  511. package/dist/cjs/domain-suggestions/actions.js.map +0 -1
  512. package/dist/cjs/domain-suggestions/constants.js +0 -12
  513. package/dist/cjs/domain-suggestions/constants.js.map +0 -1
  514. package/dist/cjs/domain-suggestions/index.js +0 -25
  515. package/dist/cjs/domain-suggestions/index.js.map +0 -1
  516. package/dist/cjs/domain-suggestions/queries.js +0 -78
  517. package/dist/cjs/domain-suggestions/queries.js.map +0 -1
  518. package/dist/cjs/domain-suggestions/reducer.js +0 -65
  519. package/dist/cjs/domain-suggestions/reducer.js.map +0 -1
  520. package/dist/cjs/domain-suggestions/resolvers.js +0 -91
  521. package/dist/cjs/domain-suggestions/resolvers.js.map +0 -1
  522. package/dist/cjs/domain-suggestions/selectors.js +0 -58
  523. package/dist/cjs/domain-suggestions/selectors.js.map +0 -1
  524. package/dist/cjs/domain-suggestions/utils.js +0 -47
  525. package/dist/cjs/domain-suggestions/utils.js.map +0 -1
  526. package/dist/cjs/reader/contexts/unsubscribed-feeds-search.js +0 -26
  527. package/dist/cjs/reader/contexts/unsubscribed-feeds-search.js.map +0 -1
  528. package/dist/cjs/reader/queries/use-read-feed-query.js +0 -21
  529. package/dist/cjs/reader/queries/use-read-feed-query.js.map +0 -1
  530. package/dist/cjs/reader/queries/use-read-feed-search-query.js +0 -39
  531. package/dist/cjs/reader/queries/use-read-feed-search-query.js.map +0 -1
  532. package/dist/cjs/reader/queries/use-read-feed-site-query.js +0 -26
  533. package/dist/cjs/reader/queries/use-read-feed-site-query.js.map +0 -1
  534. package/dist/esm/domain-suggestions/actions.js +0 -25
  535. package/dist/esm/domain-suggestions/actions.js.map +0 -1
  536. package/dist/esm/domain-suggestions/constants.js +0 -9
  537. package/dist/esm/domain-suggestions/constants.js.map +0 -1
  538. package/dist/esm/domain-suggestions/index.js +0 -20
  539. package/dist/esm/domain-suggestions/index.js.map +0 -1
  540. package/dist/esm/domain-suggestions/queries.js +0 -72
  541. package/dist/esm/domain-suggestions/queries.js.map +0 -1
  542. package/dist/esm/domain-suggestions/reducer.js +0 -61
  543. package/dist/esm/domain-suggestions/reducer.js.map +0 -1
  544. package/dist/esm/domain-suggestions/resolvers.js +0 -84
  545. package/dist/esm/domain-suggestions/resolvers.js.map +0 -1
  546. package/dist/esm/domain-suggestions/selectors.js +0 -47
  547. package/dist/esm/domain-suggestions/selectors.js.map +0 -1
  548. package/dist/esm/domain-suggestions/utils.js +0 -41
  549. package/dist/esm/domain-suggestions/utils.js.map +0 -1
  550. package/dist/esm/reader/contexts/unsubscribed-feeds-search.js +0 -20
  551. package/dist/esm/reader/contexts/unsubscribed-feeds-search.js.map +0 -1
  552. package/dist/esm/reader/queries/use-read-feed-query.js +0 -18
  553. package/dist/esm/reader/queries/use-read-feed-query.js.map +0 -1
  554. package/dist/esm/reader/queries/use-read-feed-search-query.js +0 -35
  555. package/dist/esm/reader/queries/use-read-feed-search-query.js.map +0 -1
  556. package/dist/esm/reader/queries/use-read-feed-site-query.js +0 -23
  557. package/dist/esm/reader/queries/use-read-feed-site-query.js.map +0 -1
  558. package/dist/types/domain-suggestions/actions.d.ts +0 -27
  559. package/dist/types/domain-suggestions/actions.d.ts.map +0 -1
  560. package/dist/types/domain-suggestions/constants.d.ts +0 -8
  561. package/dist/types/domain-suggestions/constants.d.ts.map +0 -1
  562. package/dist/types/domain-suggestions/index.d.ts +0 -10
  563. package/dist/types/domain-suggestions/index.d.ts.map +0 -1
  564. package/dist/types/domain-suggestions/queries.d.ts +0 -323
  565. package/dist/types/domain-suggestions/queries.d.ts.map +0 -1
  566. package/dist/types/domain-suggestions/reducer.d.ts +0 -16
  567. package/dist/types/domain-suggestions/reducer.d.ts.map +0 -1
  568. package/dist/types/domain-suggestions/resolvers.d.ts +0 -39
  569. package/dist/types/domain-suggestions/resolvers.d.ts.map +0 -1
  570. package/dist/types/domain-suggestions/selectors.d.ts +0 -18
  571. package/dist/types/domain-suggestions/selectors.d.ts.map +0 -1
  572. package/dist/types/domain-suggestions/types.d.ts +0 -206
  573. package/dist/types/domain-suggestions/types.d.ts.map +0 -1
  574. package/dist/types/domain-suggestions/utils.d.ts +0 -23
  575. package/dist/types/domain-suggestions/utils.d.ts.map +0 -1
  576. package/dist/types/reader/contexts/unsubscribed-feeds-search.d.ts +0 -12
  577. package/dist/types/reader/contexts/unsubscribed-feeds-search.d.ts.map +0 -1
  578. package/dist/types/reader/queries/use-read-feed-query.d.ts +0 -28
  579. package/dist/types/reader/queries/use-read-feed-query.d.ts.map +0 -1
  580. package/dist/types/reader/queries/use-read-feed-search-query.d.ts +0 -34
  581. package/dist/types/reader/queries/use-read-feed-search-query.d.ts.map +0 -1
  582. package/dist/types/reader/queries/use-read-feed-site-query.d.ts +0 -15
  583. package/dist/types/reader/queries/use-read-feed-site-query.d.ts.map +0 -1
  584. package/src/domain-suggestions/actions.ts +0 -51
  585. package/src/domain-suggestions/constants.ts +0 -8
  586. package/src/domain-suggestions/index.ts +0 -22
  587. package/src/domain-suggestions/queries.ts +0 -85
  588. package/src/domain-suggestions/reducer.ts +0 -77
  589. package/src/domain-suggestions/resolvers.ts +0 -110
  590. package/src/domain-suggestions/selectors.ts +0 -86
  591. package/src/domain-suggestions/test/reducer.ts +0 -105
  592. package/src/domain-suggestions/test/selectors.ts +0 -127
  593. package/src/domain-suggestions/types.ts +0 -254
  594. package/src/domain-suggestions/utils.ts +0 -50
  595. package/src/reader/contexts/unsubscribed-feeds-search.tsx +0 -35
  596. package/src/reader/queries/test/use-read-feed-search-query.tsx +0 -55
  597. package/src/reader/queries/use-read-feed-query.ts +0 -45
  598. package/src/reader/queries/use-read-feed-search-query.ts +0 -72
  599. package/src/reader/queries/use-read-feed-site-query.ts +0 -35
  600. /package/dist/cjs/{domain-suggestions → agents-manager}/types.js +0 -0
  601. /package/dist/esm/{domain-suggestions → agents-manager}/types.js +0 -0
@@ -1,40 +1,42 @@
1
- import { default as apiFetchPromise } from '@wordpress/api-fetch';
2
- import { select } from '@wordpress/data';
1
+ import { controls } from '@wordpress/data';
3
2
  import { addQueryArgs } from '@wordpress/url';
4
- import { default as wpcomRequestPromise, canAccessWpcomApis } from 'wpcom-proxy-request';
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 { isE2ETest } from '.';
9
- import type {
10
- APIFetchOptions,
11
- HelpCenterOptions,
12
- HelpCenterSelect,
13
- HelpCenterShowOptions,
14
- } from './types';
15
- import type { SupportInteraction } from '@automattic/odie-client/src/types';
16
- import type { Location } from 'history';
17
-
18
- export function setCurrentSupportInteraction( supportInteraction: SupportInteraction ) {
19
- return {
20
- type: 'HELP_CENTER_SET_CURRENT_SUPPORT_INTERACTION',
21
- supportInteraction,
22
- } as const;
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
+ };
16
+ }
23
17
  }
24
18
 
25
19
  export function setHelpCenterRouterHistory(
26
- history: { entries: Location[]; index: number } | undefined
20
+ history: { entries: Location[]; index: number } | null
27
21
  ) {
22
+ persistPreference( 'help_center_router_history', history );
28
23
  return {
29
24
  type: 'HELP_CENTER_SET_HELP_CENTER_ROUTER_HISTORY',
30
25
  history,
31
26
  } as const;
32
27
  }
33
28
 
34
- export const setNavigateToRoute = ( route?: string ) =>
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 ) =>
35
36
  ( {
36
37
  type: 'HELP_CENTER_SET_NAVIGATE_TO_ROUTE',
37
38
  route,
39
+ coalesceParams,
38
40
  } ) as const;
39
41
 
40
42
  export const setUnreadCount = ( count: number ) =>
@@ -55,10 +57,20 @@ export const setOdieBotNameSlug = ( odieBotNameSlug: string ) =>
55
57
  odieBotNameSlug,
56
58
  } ) as const;
57
59
 
58
- export const setIsMinimized = ( minimized: boolean ) =>
59
- ( {
60
+ export const setIsMinimized = function ( minimized: boolean ) {
61
+ persistPreference( 'help_center_minimized', minimized );
62
+ return {
60
63
  type: 'HELP_CENTER_SET_MINIMIZED',
61
64
  minimized,
65
+ } as const;
66
+ };
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,
62
74
  } ) as const;
63
75
 
64
76
  export const setIsChatLoaded = ( isChatLoaded: boolean ) =>
@@ -79,6 +91,21 @@ export const setZendeskClientId = ( zendeskClientId: string ) =>
79
91
  zendeskClientId,
80
92
  } ) as const;
81
93
 
94
+ export const setZendeskConnectionStatus = (
95
+ connectionStatus: 'disconnected' | 'reconnecting' | 'connected'
96
+ ) =>
97
+ ( {
98
+ type: 'HELP_CENTER_SET_ZENDESK_CONNECTION_STATUS',
99
+ connectionStatus,
100
+ } ) as const;
101
+
102
+ export const setSupportTypingStatus = ( conversationId: string, isTyping: false ) =>
103
+ ( {
104
+ type: 'HELP_CENTER_SET_TYPING_STATUS',
105
+ conversationId,
106
+ isTyping,
107
+ } ) as const;
108
+
82
109
  export const setShowMessagingLauncher = ( show: boolean ) =>
83
110
  ( {
84
111
  type: 'HELP_CENTER_SET_SHOW_MESSAGING_LAUNCHER',
@@ -103,9 +130,9 @@ export const setContextTerm = ( contextTerm: string ) =>
103
130
  contextTerm,
104
131
  } ) as const;
105
132
 
106
- export const setAllowPremiumSupport = ( allow: boolean ) =>
133
+ export const setHasPremiumSupport = ( allow: boolean ) =>
107
134
  ( {
108
- type: 'HELP_CENTER_SET_ALLOW_PREMIUM_SUPPORT',
135
+ type: 'HELP_CENTER_SET_HAS_PREMIUM_SUPPORT',
109
136
  allow,
110
137
  } ) as const;
111
138
 
@@ -114,74 +141,78 @@ export const setHelpCenterOptions = ( options: HelpCenterOptions ) => ( {
114
141
  options,
115
142
  } );
116
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
+
117
164
  export const setShowHelpCenter = function* (
118
165
  show: boolean,
119
- allowPremiumSupport = false,
120
- options: HelpCenterShowOptions = { hideBackButton: false, contextTerm: '' }
121
- ): Generator< unknown, { type: 'HELP_CENTER_SET_SHOW'; show: boolean }, unknown > {
122
- const isMinimized = ( select( STORE_KEY ) as HelpCenterSelect ).getIsMinimized();
166
+ options: HelpCenterShowOptions = {
167
+ hasPremiumSupport: false,
168
+ hideBackButton: false,
169
+ contextTerm: '',
170
+ },
171
+ /**
172
+ * When the Help Center is minimized and someone clicks the (?) toggle button, we should maximize it.
173
+ * But this means ignoring the `show=false` value the button will send. The problem is we'll also ignore the `show=false` when the close (x) buttons is clicked too.
174
+ * `forceClose` listens to the show value always. Which the (x) button sets to true.
175
+ */
176
+ forceClose = false
177
+ ) {
178
+ const isMinimized: boolean = yield controls.resolveSelect( STORE_KEY, 'getIsMinimized' );
123
179
 
124
- if ( ! show && isMinimized ) {
180
+ // Opening or closing the Help Center should reset the minimized state.
181
+ if ( ! show && ! forceClose && isMinimized ) {
125
182
  yield setIsMinimized( false );
126
-
127
- return {
128
- type: 'HELP_CENTER_SET_SHOW',
129
- show: true,
130
- } as const;
131
- }
132
-
133
- if ( ! isE2ETest() ) {
134
- if ( canAccessWpcomApis() ) {
135
- // Use the promise version to do that action without waiting for the result.
136
- wpcomRequestPromise( {
137
- path: '/me/preferences',
138
- apiNamespace: 'wpcom/v2',
139
- method: 'PUT',
140
- body: {
141
- calypso_preferences: {
142
- help_center_open: show,
143
- // Delete the remote version of the navigation history when closing the help center
144
- ...( ! show ? { help_center_router_history: null } : {} ),
145
- },
146
- },
147
- } ).catch( () => {} );
148
- } else {
149
- // Use the promise version to do that action without waiting for the result.
150
- apiFetchPromise( {
151
- global: true,
152
- path: '/help-center/open-state',
153
- method: 'PUT',
154
- data: {
155
- help_center_open: show, // Delete the remote version of the navigation history when closing the help center
156
- ...( ! show ? { help_center_router_history: null } : {} ),
157
- },
158
- } as APIFetchOptions ).catch( () => {} );
159
- }
183
+ return showHelpCenter( true );
160
184
  }
161
185
 
162
186
  if ( ! show ) {
163
187
  yield setNavigateToRoute( undefined );
164
- // Reset the local navigation history when closing the help center
165
- yield setHelpCenterRouterHistory( undefined );
166
- } else {
167
- yield setShowMessagingWidget( false );
188
+ // Reset the local navigation history when closing the help center.
189
+ yield setHelpCenterRouterHistory( null );
190
+ return showHelpCenter( false );
168
191
  }
169
192
 
193
+ yield setShowMessagingWidget( false );
170
194
  yield setContextTerm( options?.contextTerm || '' );
171
- yield setIsMinimized( false );
172
195
 
173
- if ( allowPremiumSupport ) {
174
- yield setAllowPremiumSupport( true );
196
+ if ( isMinimized ) {
197
+ yield setIsMinimized( false );
198
+ }
199
+
200
+ if ( options?.hasPremiumSupport ) {
201
+ yield setHasPremiumSupport( true );
175
202
  }
176
203
 
177
- if ( options?.hideBackButton ) {
204
+ if ( options ) {
178
205
  yield setHelpCenterOptions( options );
179
206
  }
180
207
 
181
- return {
182
- type: 'HELP_CENTER_SET_SHOW',
183
- show,
184
- } as const;
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 );
185
216
  };
186
217
 
187
218
  export const setSubject = ( subject: string ) =>
@@ -237,6 +268,31 @@ export const setNavigateToOdie = function* () {
237
268
  yield setShowHelpCenter( true );
238
269
  };
239
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
+
240
296
  export const setShowSupportDoc = function* ( link: string, postId?: number, blogId?: number ) {
241
297
  const params = new URLSearchParams( {
242
298
  link,
@@ -256,20 +312,24 @@ export type HelpCenterAction =
256
312
  | typeof setSubject
257
313
  | typeof resetStore
258
314
  | typeof setMessage
315
+ | typeof setLoggedOutOdieChat
259
316
  | typeof setContextTerm
260
317
  | typeof setUserDeclaredSite
261
318
  | typeof setUserDeclaredSiteUrl
262
319
  | typeof setUnreadCount
263
- | typeof setIsMinimized
264
- | typeof setHelpCenterRouterHistory
265
320
  | typeof setIsChatLoaded
266
321
  | typeof setAreSoundNotificationsEnabled
267
322
  | typeof setZendeskClientId
323
+ | typeof setLoggedOutOdieChat
324
+ | typeof setSupportTypingStatus
325
+ | typeof setZendeskConnectionStatus
268
326
  | typeof setNavigateToRoute
269
327
  | typeof setOdieInitialPromptText
328
+ | typeof setHelpCenterRouterHistory
329
+ | typeof setIsMinimized
270
330
  | typeof setOdieBotNameSlug
271
- | typeof setCurrentSupportInteraction
272
- | typeof setAllowPremiumSupport
331
+ | typeof setHasPremiumSupport
273
332
  | typeof setHelpCenterOptions
333
+ | typeof setCurrentUser
274
334
  >
275
335
  | GeneratorReturnType< typeof setShowHelpCenter >;
@@ -1 +1,2 @@
1
1
  export const STORE_KEY = 'automattic/help-center';
2
+ export const PREFERENCES_KEY = 'logged_out_help_center_preferences_';
@@ -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 { isHelpCenterShown } from './resolvers';
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: [ 'message', 'userDeclaredSite', 'userDeclaredSiteUrl', 'subject' ],
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 ? { isHelpCenterShown } : undefined,
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,9 +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 { SupportInteraction } from '@automattic/odie-client/src/types';
6
- import type { Location } from 'history';
7
7
  import type { Reducer } from 'redux';
8
8
 
9
9
  const showHelpCenter: Reducer< boolean | undefined, HelpCenterAction > = ( state, action ) => {
@@ -14,6 +14,28 @@ const showHelpCenter: Reducer< boolean | undefined, HelpCenterAction > = ( state
14
14
  return state;
15
15
  };
16
16
 
17
+ const typingConversationStatus: Reducer<
18
+ Record< string, boolean > | undefined,
19
+ HelpCenterAction
20
+ > = ( state = undefined, action ) => {
21
+ switch ( action.type ) {
22
+ case 'HELP_CENTER_SET_TYPING_STATUS':
23
+ return { ...state, [ action.conversationId ]: action.isTyping };
24
+ }
25
+ return state;
26
+ };
27
+
28
+ const zendeskConnectionStatus: Reducer<
29
+ 'disconnected' | 'reconnecting' | 'connected' | undefined,
30
+ HelpCenterAction
31
+ > = ( state = undefined, action ) => {
32
+ switch ( action.type ) {
33
+ case 'HELP_CENTER_SET_ZENDESK_CONNECTION_STATUS':
34
+ return action.connectionStatus;
35
+ }
36
+ return state;
37
+ };
38
+
17
39
  const showMessagingLauncher: Reducer< boolean | undefined, HelpCenterAction > = (
18
40
  state,
19
41
  action
@@ -26,9 +48,9 @@ const showMessagingLauncher: Reducer< boolean | undefined, HelpCenterAction > =
26
48
  };
27
49
 
28
50
  const helpCenterRouterHistory: Reducer<
29
- { entries: Location[]; index: number } | undefined,
51
+ { entries: Location[]; index: number } | null,
30
52
  HelpCenterAction
31
- > = ( state, action ) => {
53
+ > = ( state = null, action ) => {
32
54
  switch ( action.type ) {
33
55
  case 'HELP_CENTER_SET_HELP_CENTER_ROUTER_HISTORY':
34
56
  return action.history;
@@ -36,20 +58,21 @@ const helpCenterRouterHistory: Reducer<
36
58
  return state;
37
59
  };
38
60
 
39
- const showMessagingWidget: Reducer< boolean | undefined, HelpCenterAction > = ( state, action ) => {
61
+ const loggedOutOdieChat: Reducer<
62
+ { odieId: number; sessionId: string; botSlug: string } | undefined,
63
+ HelpCenterAction
64
+ > = ( state = undefined, action ) => {
40
65
  switch ( action.type ) {
41
- case 'HELP_CENTER_SET_SHOW_MESSAGING_WIDGET':
42
- return action.show;
66
+ case 'HELP_CENTER_SET_LOGGED_OUT_ODIE_CHAT':
67
+ return action.session;
43
68
  }
44
69
  return state;
45
70
  };
46
71
 
47
- const currentSupportInteraction: Reducer< SupportInteraction | undefined, HelpCenterAction > = (
48
- state,
49
- action
50
- ) => {
51
- if ( action.type === 'HELP_CENTER_SET_CURRENT_SUPPORT_INTERACTION' ) {
52
- return action.supportInteraction;
72
+ const showMessagingWidget: Reducer< boolean | undefined, HelpCenterAction > = ( state, action ) => {
73
+ switch ( action.type ) {
74
+ case 'HELP_CENTER_SET_SHOW_MESSAGING_WIDGET':
75
+ return action.show;
53
76
  }
54
77
  return state;
55
78
  };
@@ -137,9 +160,12 @@ const userDeclaredSite: Reducer< SiteDetails | undefined, HelpCenterAction > = (
137
160
  return state;
138
161
  };
139
162
 
140
- const navigateToRoute: Reducer< string | undefined, HelpCenterAction > = ( state, action ) => {
163
+ const navigateToRoute: Reducer<
164
+ { route: string | undefined; coalesceParams: boolean } | undefined,
165
+ HelpCenterAction
166
+ > = ( state, action ) => {
141
167
  if ( action.type === 'HELP_CENTER_SET_NAVIGATE_TO_ROUTE' ) {
142
- return action.route;
168
+ return { route: action.route, coalesceParams: action.coalesceParams };
143
169
  }
144
170
  return state;
145
171
  };
@@ -161,9 +187,9 @@ const odieBotNameSlug: Reducer< string | undefined, HelpCenterAction > = ( state
161
187
  return state;
162
188
  };
163
189
 
164
- const allowPremiumSupport: Reducer< boolean, HelpCenterAction > = ( state = false, action ) => {
190
+ const hasPremiumSupport: Reducer< boolean, HelpCenterAction > = ( state = false, action ) => {
165
191
  switch ( action.type ) {
166
- case 'HELP_CENTER_SET_ALLOW_PREMIUM_SUPPORT':
192
+ case 'HELP_CENTER_SET_HAS_PREMIUM_SUPPORT':
167
193
  return action.allow;
168
194
  }
169
195
  return state;
@@ -186,17 +212,25 @@ const helpCenterOptions: Reducer< HelpCenterOptions, HelpCenterAction > = (
186
212
  return state;
187
213
  };
188
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
+
189
222
  const reducer = combineReducers( {
190
- currentSupportInteraction,
191
223
  showHelpCenter,
192
224
  showMessagingLauncher,
193
225
  showMessagingWidget,
226
+ zendeskConnectionStatus,
194
227
  subject,
195
228
  message,
196
229
  userDeclaredSite,
197
230
  userDeclaredSiteUrl,
198
231
  isMinimized,
199
232
  isChatLoaded,
233
+ typingConversationStatus,
200
234
  areSoundNotificationsEnabled,
201
235
  zendeskClientId,
202
236
  unreadCount,
@@ -204,9 +238,11 @@ const reducer = combineReducers( {
204
238
  odieInitialPromptText,
205
239
  odieBotNameSlug,
206
240
  helpCenterRouterHistory,
207
- allowPremiumSupport,
241
+ loggedOutOdieChat,
242
+ hasPremiumSupport,
208
243
  contextTerm,
209
244
  helpCenterOptions,
245
+ currentUser,
210
246
  } );
211
247
 
212
248
  export type State = ReturnType< typeof reducer >;
@@ -1,38 +1,53 @@
1
- import { apiFetch } from '@wordpress/data-controls';
2
- import { canAccessWpcomApis } from 'wpcom-proxy-request';
3
- import { wpcomRequest } from '../wpcom-request-controls';
4
- import { setHelpCenterRouterHistory } from './actions';
5
- import type { APIFetchOptions } from './types';
6
- import type { Location } from 'history';
1
+ import { HelpCenterThunkProps } from './types';
2
+ import { getPersistedPreference } from './utils';
7
3
 
8
- export function* isHelpCenterShown() {
9
- try {
10
- const preferences: {
11
- help_center_open: boolean;
12
- help_center_router_history: {
13
- entries: Location[];
14
- index: number;
15
- };
16
- } = canAccessWpcomApis()
17
- ? yield wpcomRequest( {
18
- path: '/me/preferences',
19
- apiNamespace: 'wpcom/v2',
20
- } )
21
- : yield apiFetch( {
22
- global: true,
23
- path: '/help-center/open-state',
24
- } as APIFetchOptions );
4
+ export function isHelpCenterShown() {
5
+ return async ( { dispatch }: HelpCenterThunkProps ) => {
6
+ try {
7
+ const helpCenterOpen = await getPersistedPreference( 'help_center_open' );
25
8
 
26
- if ( preferences.help_center_router_history ) {
27
- yield setHelpCenterRouterHistory( preferences.help_center_router_history );
9
+ // We only want to auto-open, we don't want to auto-close (and potentially overrule the user's action).
10
+ if ( helpCenterOpen ) {
11
+ dispatch( {
12
+ type: 'HELP_CENTER_SET_SHOW',
13
+ show: true,
14
+ } as const );
15
+ }
16
+ } catch {
17
+ dispatch( {
18
+ type: 'HELP_CENTER_SET_SHOW',
19
+ show: false,
20
+ } as const );
28
21
  }
22
+ };
23
+ }
29
24
 
30
- // We only want to auto-open, we don't want to auto-close (and potentially overrule the user's action).
31
- if ( preferences.help_center_open ) {
32
- return {
33
- type: 'HELP_CENTER_SET_SHOW',
34
- show: true,
35
- } as const;
25
+ export function getHelpCenterRouterHistory() {
26
+ return async ( { dispatch, select }: HelpCenterThunkProps ) => {
27
+ const route = select.getNavigateToRoute()?.route;
28
+
29
+ // Don't use the history from the preferences if route is defined to avoid a race condition between restoring
30
+ // persisted data and setting the support doc data. Persisted values could overwrite freshly fetched data.
31
+ if ( typeof route === 'undefined' ) {
32
+ const routerHistory = await getPersistedPreference( 'help_center_router_history' );
33
+
34
+ // We only want to auto-open, we don't want to auto-close (and potentially overrule the user's action).
35
+ if ( routerHistory ) {
36
+ dispatch( {
37
+ type: 'HELP_CENTER_SET_HELP_CENTER_ROUTER_HISTORY',
38
+ history: routerHistory,
39
+ } as const );
40
+ }
36
41
  }
37
- } catch {}
42
+ };
43
+ }
44
+
45
+ export function getIsMinimized() {
46
+ return async ( { dispatch }: HelpCenterThunkProps ) => {
47
+ const minimized = await getPersistedPreference( 'help_center_minimized' );
48
+ dispatch( {
49
+ type: 'HELP_CENTER_SET_MINIMIZED',
50
+ minimized: minimized ?? false,
51
+ } as const );
52
+ };
38
53
  }
@@ -8,8 +8,10 @@ export const getMessage = ( state: State ) => state.message;
8
8
  export const getUserDeclaredSiteUrl = ( state: State ) => state.userDeclaredSiteUrl;
9
9
  export const getUserDeclaredSite = ( state: State ) => state.userDeclaredSite;
10
10
  export const getUnreadCount = ( state: State ) => state.unreadCount;
11
+ export const getZendeskConnectionStatus = ( state: State ) => state.zendeskConnectionStatus;
11
12
  export const getIsMinimized = ( state: State ) => state.isMinimized;
12
13
  export const getIsChatLoaded = ( state: State ) => state.isChatLoaded;
14
+ export const getLoggedOutOdieChat = ( state: State ) => state.loggedOutOdieChat;
13
15
  export const getAreSoundNotificationsEnabled = ( state: State ) =>
14
16
  state.areSoundNotificationsEnabled;
15
17
  export const getZendeskClientId = ( state: State ) => state.zendeskClientId;
@@ -17,7 +19,10 @@ export const getHelpCenterRouterHistory = ( state: State ) => state.helpCenterRo
17
19
  export const getNavigateToRoute = ( state: State ) => state.navigateToRoute;
18
20
  export const getOdieInitialPromptText = ( state: State ) => state.odieInitialPromptText;
19
21
  export const getOdieBotNameSlug = ( state: State ) => state.odieBotNameSlug;
20
- export const getCurrentSupportInteraction = ( state: State ) => state.currentSupportInteraction;
21
- export const getAllowPremiumSupport = ( state: State ) => state.allowPremiumSupport;
22
+ export const getHasPremiumSupport = ( state: State ) => state.hasPremiumSupport;
22
23
  export const getHelpCenterOptions = ( state: State ) => state.helpCenterOptions;
23
24
  export const getContextTerm = ( state: State ) => state.contextTerm;
25
+ export const getSupportTypingStatus = ( state: State, conversationId: string ) =>
26
+ state.typingConversationStatus?.[ conversationId ];
27
+ export const getCurrentUser = ( state: State ) => state.currentUser;
28
+ export const getIsLoggedIn = ( state: State ) => !! state.currentUser?.ID;