@automattic/launchpad 1.0.0 → 1.1.0-rc.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 (145) hide show
  1. package/.storybook/main.ts +16 -0
  2. package/.storybook/preview.ts +6 -0
  3. package/README.md +11 -2
  4. package/dist/cjs/action-components/index.js +6 -0
  5. package/dist/cjs/action-components/index.js.map +1 -0
  6. package/dist/cjs/action-components/share-site-modal/index.js +43 -0
  7. package/dist/cjs/action-components/share-site-modal/index.js.map +1 -0
  8. package/dist/cjs/action-components/share-site-modal/style.scss +159 -0
  9. package/dist/cjs/badge/index.js +2 -2
  10. package/dist/cjs/badge/index.js.map +1 -1
  11. package/dist/cjs/checklist/index.js +16 -8
  12. package/dist/cjs/checklist/index.js.map +1 -1
  13. package/dist/cjs/checklist/index.stories.js +29 -0
  14. package/dist/cjs/checklist/index.stories.js.map +1 -0
  15. package/dist/cjs/checklist-item/index.js +31 -15
  16. package/dist/cjs/checklist-item/index.js.map +1 -1
  17. package/dist/cjs/checklist-item/index.stories.js +79 -0
  18. package/dist/cjs/checklist-item/index.stories.js.map +1 -0
  19. package/dist/cjs/checklist-item/style.scss +142 -22
  20. package/dist/cjs/index.js +6 -1
  21. package/dist/cjs/index.js.map +1 -1
  22. package/dist/cjs/launchpad-container/index.js +11 -0
  23. package/dist/cjs/launchpad-container/index.js.map +1 -0
  24. package/dist/cjs/launchpad-container/style.scss +59 -0
  25. package/dist/cjs/launchpad-internal.js +40 -0
  26. package/dist/cjs/launchpad-internal.js.map +1 -0
  27. package/dist/cjs/launchpad-internal.stories.js +45 -0
  28. package/dist/cjs/launchpad-internal.stories.js.map +1 -0
  29. package/dist/cjs/launchpad.js +39 -10
  30. package/dist/cjs/launchpad.js.map +1 -1
  31. package/dist/cjs/msw/link-in-bio.js +68 -0
  32. package/dist/cjs/msw/link-in-bio.js.map +1 -0
  33. package/dist/cjs/msw/resolver.js +19 -0
  34. package/dist/cjs/msw/resolver.js.map +1 -0
  35. package/dist/cjs/msw/setup-free.js +88 -0
  36. package/dist/cjs/msw/setup-free.js.map +1 -0
  37. package/dist/cjs/setup-actions.js +51 -54
  38. package/dist/cjs/setup-actions.js.map +1 -1
  39. package/dist/cjs/use-tracking/index.js +72 -0
  40. package/dist/cjs/use-tracking/index.js.map +1 -0
  41. package/dist/esm/action-components/index.js +2 -0
  42. package/dist/esm/action-components/index.js.map +1 -0
  43. package/dist/esm/action-components/share-site-modal/index.js +41 -0
  44. package/dist/esm/action-components/share-site-modal/index.js.map +1 -0
  45. package/dist/esm/action-components/share-site-modal/style.scss +159 -0
  46. package/dist/esm/badge/index.js +2 -2
  47. package/dist/esm/badge/index.js.map +1 -1
  48. package/dist/esm/checklist/index.js +14 -8
  49. package/dist/esm/checklist/index.js.map +1 -1
  50. package/dist/esm/checklist/index.stories.js +25 -0
  51. package/dist/esm/checklist/index.stories.js.map +1 -0
  52. package/dist/esm/checklist-item/index.js +30 -16
  53. package/dist/esm/checklist-item/index.js.map +1 -1
  54. package/dist/esm/checklist-item/index.stories.js +75 -0
  55. package/dist/esm/checklist-item/index.stories.js.map +1 -0
  56. package/dist/esm/checklist-item/style.scss +142 -22
  57. package/dist/esm/index.js +3 -0
  58. package/dist/esm/index.js.map +1 -1
  59. package/dist/esm/launchpad-container/index.js +8 -0
  60. package/dist/esm/launchpad-container/index.js.map +1 -0
  61. package/dist/esm/launchpad-container/style.scss +59 -0
  62. package/dist/esm/launchpad-internal.js +37 -0
  63. package/dist/esm/launchpad-internal.js.map +1 -0
  64. package/dist/esm/launchpad-internal.stories.js +41 -0
  65. package/dist/esm/launchpad-internal.stories.js.map +1 -0
  66. package/dist/esm/launchpad.js +41 -13
  67. package/dist/esm/launchpad.js.map +1 -1
  68. package/dist/esm/msw/link-in-bio.js +66 -0
  69. package/dist/esm/msw/link-in-bio.js.map +1 -0
  70. package/dist/esm/msw/resolver.js +14 -0
  71. package/dist/esm/msw/resolver.js.map +1 -0
  72. package/dist/esm/msw/setup-free.js +86 -0
  73. package/dist/esm/msw/setup-free.js.map +1 -0
  74. package/dist/esm/setup-actions.js +51 -54
  75. package/dist/esm/setup-actions.js.map +1 -1
  76. package/dist/esm/use-tracking/index.js +68 -0
  77. package/dist/esm/use-tracking/index.js.map +1 -0
  78. package/dist/tsconfig-cjs.tsbuildinfo +1 -1
  79. package/dist/tsconfig.tsbuildinfo +1 -1
  80. package/dist/types/action-components/index.d.ts +2 -0
  81. package/dist/types/action-components/index.d.ts.map +1 -0
  82. package/dist/types/action-components/share-site-modal/index.d.ts +9 -0
  83. package/dist/types/action-components/share-site-modal/index.d.ts.map +1 -0
  84. package/dist/types/badge/index.d.ts.map +1 -1
  85. package/dist/types/checklist/index.d.ts +6 -7
  86. package/dist/types/checklist/index.d.ts.map +1 -1
  87. package/dist/types/checklist/index.stories.d.ts +8 -0
  88. package/dist/types/checklist/index.stories.d.ts.map +1 -0
  89. package/dist/types/checklist-item/index.d.ts +11 -8
  90. package/dist/types/checklist-item/index.d.ts.map +1 -1
  91. package/dist/types/checklist-item/index.stories.d.ts +14 -0
  92. package/dist/types/checklist-item/index.stories.d.ts.map +1 -0
  93. package/dist/types/index.d.ts +3 -0
  94. package/dist/types/index.d.ts.map +1 -1
  95. package/dist/types/launchpad-container/index.d.ts +15 -0
  96. package/dist/types/launchpad-container/index.d.ts.map +1 -0
  97. package/dist/types/launchpad-internal.d.ts +20 -0
  98. package/dist/types/launchpad-internal.d.ts.map +1 -0
  99. package/dist/types/launchpad-internal.stories.d.ts +8 -0
  100. package/dist/types/launchpad-internal.stories.d.ts.map +1 -0
  101. package/dist/types/launchpad.d.ts +10 -9
  102. package/dist/types/launchpad.d.ts.map +1 -1
  103. package/dist/types/msw/link-in-bio.d.ts +35 -0
  104. package/dist/types/msw/link-in-bio.d.ts.map +1 -0
  105. package/dist/types/msw/resolver.d.ts +3 -0
  106. package/dist/types/msw/resolver.d.ts.map +1 -0
  107. package/dist/types/msw/setup-free.d.ts +35 -0
  108. package/dist/types/msw/setup-free.d.ts.map +1 -0
  109. package/dist/types/setup-actions.d.ts +1 -1
  110. package/dist/types/setup-actions.d.ts.map +1 -1
  111. package/dist/types/types.d.ts +19 -9
  112. package/dist/types/types.d.ts.map +1 -1
  113. package/dist/types/use-tracking/index.d.ts +14 -0
  114. package/dist/types/use-tracking/index.d.ts.map +1 -0
  115. package/package.json +32 -17
  116. package/src/action-components/index.ts +1 -0
  117. package/src/action-components/share-site-modal/index.tsx +104 -0
  118. package/src/action-components/share-site-modal/style.scss +159 -0
  119. package/src/badge/index.tsx +2 -4
  120. package/src/checklist/index.stories.tsx +45 -0
  121. package/src/checklist/index.tsx +22 -21
  122. package/src/checklist/test/index.tsx +26 -0
  123. package/src/checklist-item/index.stories.tsx +92 -0
  124. package/src/checklist-item/index.tsx +66 -27
  125. package/src/checklist-item/style.scss +142 -22
  126. package/src/checklist-item/test/index.tsx +232 -0
  127. package/src/index.ts +3 -0
  128. package/src/launchpad-container/index.tsx +45 -0
  129. package/src/launchpad-container/style.scss +59 -0
  130. package/src/launchpad-container/test/index.tsx +72 -0
  131. package/src/launchpad-internal.stories.tsx +49 -0
  132. package/src/launchpad-internal.tsx +85 -0
  133. package/src/launchpad.tsx +80 -30
  134. package/src/msw/link-in-bio.ts +66 -0
  135. package/src/msw/resolver.ts +18 -0
  136. package/src/msw/setup-free.ts +85 -0
  137. package/src/setup-actions.ts +67 -54
  138. package/src/test/launchpad.tsx +51 -24
  139. package/src/test/lib/fixtures.ts +7 -2
  140. package/src/types.ts +24 -9
  141. package/src/use-tracking/index.tsx +87 -0
  142. package/src/use-tracking/test/index.tsx +116 -0
  143. package/static/mockServiceWorker.js +287 -0
  144. package/src/test/checklist-item.tsx +0 -96
  145. package/src/test/checklist.tsx +0 -25
@@ -1,16 +1,44 @@
1
- import { jsx as _jsx } from "react/jsx-runtime";
2
- import { useLaunchpad } from '@automattic/data-stores';
3
- import { useRef, useMemo } from 'react';
4
- import Checklist from './checklist';
5
- const Launchpad = ({ siteSlug, checklistSlug, taskFilter, makeLastTaskPrimaryAction, useLaunchpadOptions = {}, }) => {
6
- const launchpadData = useLaunchpad(siteSlug || '', checklistSlug, useLaunchpadOptions);
7
- const { isFetchedAfterMount, data } = launchpadData;
8
- const tasks = useRef([]);
9
- useMemo(() => {
10
- const originalTasks = data.checklist || [];
11
- tasks.current = taskFilter ? taskFilter(originalTasks) : originalTasks;
12
- }, [data, taskFilter]);
13
- return (_jsx("div", { className: "launchpad__checklist-wrapper", children: isFetchedAfterMount ? (_jsx(Checklist, { tasks: tasks.current, makeLastTaskPrimaryAction: makeLastTaskPrimaryAction })) : (_jsx(Checklist.Placeholder, {})) }));
1
+ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { recordTracksEvent } from '@automattic/calypso-analytics';
3
+ import { LaunchpadNavigator, Site, sortLaunchpadTasksByCompletionStatus, useSortedLaunchpadTasks, } from '@automattic/data-stores';
4
+ import { useDispatch, useSelect } from '@wordpress/data';
5
+ import { useState } from 'react';
6
+ import { ShareSiteModal } from './action-components';
7
+ import LaunchpadInternal from './launchpad-internal';
8
+ import { setUpActionsForTasks } from './setup-actions';
9
+ export const SITE_STORE = Site.register({ client_id: '', client_secret: '' });
10
+ const Launchpad = ({ siteSlug, checklistSlug, launchpadContext, onSiteLaunched, onTaskClick, onPostFilterTasks, }) => {
11
+ const { data: { checklist }, } = useSortedLaunchpadTasks(siteSlug, checklistSlug, launchpadContext);
12
+ const { setActiveChecklist } = useDispatch(LaunchpadNavigator.store);
13
+ const tasklistCompleted = checklist?.every((task) => task.completed) || false;
14
+ const tracksData = { recordTracksEvent, checklistSlug, tasklistCompleted, launchpadContext };
15
+ const site = useSelect((select) => {
16
+ return siteSlug ? select(SITE_STORE).getSite(siteSlug) : null;
17
+ }, [siteSlug]);
18
+ const [shareSiteModalIsOpen, setShareSiteModalIsOpen] = useState(false);
19
+ const taskFilter = (tasks) => {
20
+ const baseTasks = setUpActionsForTasks({
21
+ tasks,
22
+ siteSlug,
23
+ tracksData,
24
+ extraActions: {
25
+ setActiveChecklist,
26
+ setShareSiteModalIsOpen,
27
+ },
28
+ eventHandlers: {
29
+ onSiteLaunched,
30
+ onTaskClick,
31
+ },
32
+ });
33
+ if (onPostFilterTasks) {
34
+ return onPostFilterTasks(baseTasks);
35
+ }
36
+ return baseTasks;
37
+ };
38
+ const launchpadOptions = {
39
+ onSuccess: sortLaunchpadTasksByCompletionStatus,
40
+ };
41
+ return (_jsxs(_Fragment, { children: [shareSiteModalIsOpen && site && (_jsx(ShareSiteModal, { setModalIsOpen: setShareSiteModalIsOpen, site: site })), _jsx(LaunchpadInternal, { site: site, siteSlug: siteSlug, checklistSlug: checklistSlug, taskFilter: taskFilter, useLaunchpadOptions: launchpadOptions, launchpadContext: launchpadContext })] }));
14
42
  };
15
43
  export default Launchpad;
16
44
  //# sourceMappingURL=launchpad.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"launchpad.js","sourceRoot":"","sources":["../../src/launchpad.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AACxC,OAAO,SAAS,MAAM,aAAa,CAAC;AAYpC,MAAM,SAAS,GAAG,CAAE,EACnB,QAAQ,EACR,aAAa,EACb,UAAU,EACV,yBAAyB,EACzB,mBAAmB,GAAG,EAAE,GACR,EAAG,EAAE;IACrB,MAAM,aAAa,GAAG,YAAY,CAAE,QAAQ,IAAI,EAAE,EAAE,aAAa,EAAE,mBAAmB,CAAE,CAAC;IACzF,MAAM,EAAE,mBAAmB,EAAE,IAAI,EAAE,GAAG,aAAa,CAAC;IACpD,MAAM,KAAK,GAAG,MAAM,CAAY,EAAE,CAAE,CAAC;IAErC,OAAO,CAAE,GAAG,EAAE;QACb,MAAM,aAAa,GAAG,IAAI,CAAC,SAAS,IAAI,EAAE,CAAC;QAC3C,KAAK,CAAC,OAAO,GAAG,UAAU,CAAC,CAAC,CAAC,UAAU,CAAE,aAAa,CAAE,CAAC,CAAC,CAAC,aAAa,CAAC;IAC1E,CAAC,EAAE,CAAE,IAAI,EAAE,UAAU,CAAE,CAAE,CAAC;IAE1B,OAAO,CACN,cAAK,SAAS,EAAC,8BAA8B,YAC1C,mBAAmB,CAAC,CAAC,CAAC,CACvB,KAAC,SAAS,IACT,KAAK,EAAG,KAAK,CAAC,OAAO,EACrB,yBAAyB,EAAG,yBAAyB,GACpD,CACF,CAAC,CAAC,CAAC,CACH,KAAC,SAAS,CAAC,WAAW,KAAG,CACzB,GACI,CACN,CAAC;AACH,CAAC,CAAC;AAEF,eAAe,SAAS,CAAC"}
1
+ {"version":3,"file":"launchpad.js","sourceRoot":"","sources":["../../src/launchpad.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAClE,OAAO,EACN,kBAAkB,EAClB,IAAI,EAEJ,oCAAoC,EACpC,uBAAuB,GACvB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACzD,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACjC,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,iBAAiB,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAGvD,MAAM,CAAC,MAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAE,EAAE,SAAS,EAAE,EAAE,EAAE,aAAa,EAAE,EAAE,EAAE,CAAE,CAAC;AAWhF,MAAM,SAAS,GAAG,CAAE,EACnB,QAAQ,EACR,aAAa,EACb,gBAAgB,EAChB,cAAc,EACd,WAAW,EACX,iBAAiB,GACD,EAAG,EAAE;IACrB,MAAM,EACL,IAAI,EAAE,EAAE,SAAS,EAAE,GACnB,GAAG,uBAAuB,CAAE,QAAQ,EAAE,aAAa,EAAE,gBAAgB,CAAE,CAAC;IACzE,MAAM,EAAE,kBAAkB,EAAE,GAAG,WAAW,CAAE,kBAAkB,CAAC,KAAK,CAAE,CAAC;IAEvE,MAAM,iBAAiB,GAAG,SAAS,EAAE,KAAK,CAAE,CAAE,IAAU,EAAG,EAAE,CAAC,IAAI,CAAC,SAAS,CAAE,IAAI,KAAK,CAAC;IAExF,MAAM,UAAU,GAAG,EAAE,iBAAiB,EAAE,aAAa,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,CAAC;IAE7F,MAAM,IAAI,GAAG,SAAS,CACrB,CAAE,MAAM,EAAG,EAAE;QACZ,OAAO,QAAQ,CAAC,CAAC,CAAG,MAAM,CAAE,UAAU,CAAkB,CAAC,OAAO,CAAE,QAAQ,CAAE,CAAC,CAAC,CAAC,IAAI,CAAC;IACrF,CAAC,EACD,CAAE,QAAQ,CAAE,CACZ,CAAC;IACF,MAAM,CAAE,oBAAoB,EAAE,uBAAuB,CAAE,GAAG,QAAQ,CAAE,KAAK,CAAE,CAAC;IAE5E,MAAM,UAAU,GAAG,CAAE,KAAa,EAAG,EAAE;QACtC,MAAM,SAAS,GAAG,oBAAoB,CAAE;YACvC,KAAK;YACL,QAAQ;YACR,UAAU;YACV,YAAY,EAAE;gBACb,kBAAkB;gBAClB,uBAAuB;aACvB;YACD,aAAa,EAAE;gBACd,cAAc;gBACd,WAAW;aACX;SACD,CAAE,CAAC;QAEJ,IAAK,iBAAiB,EAAG,CAAC;YACzB,OAAO,iBAAiB,CAAE,SAAS,CAAE,CAAC;QACvC,CAAC;QAED,OAAO,SAAS,CAAC;IAClB,CAAC,CAAC;IAEF,MAAM,gBAAgB,GAAG;QACxB,SAAS,EAAE,oCAAoC;KAC/C,CAAC;IAEF,OAAO,CACN,8BACG,oBAAoB,IAAI,IAAI,IAAI,CACjC,KAAC,cAAc,IAAC,cAAc,EAAG,uBAAuB,EAAG,IAAI,EAAG,IAAI,GAAK,CAC3E,EACD,KAAC,iBAAiB,IACjB,IAAI,EAAG,IAAI,EACX,QAAQ,EAAG,QAAQ,EACnB,aAAa,EAAG,aAAa,EAC7B,UAAU,EAAG,UAAU,EACvB,mBAAmB,EAAG,gBAAgB,EACtC,gBAAgB,EAAG,gBAAgB,GAClC,IACA,CACH,CAAC;AACH,CAAC,CAAC;AAEF,eAAe,SAAS,CAAC"}
@@ -0,0 +1,66 @@
1
+ export default {
2
+ site_intent: 'free',
3
+ launchpad_screen: 'full',
4
+ checklist_statuses: {
5
+ setup_free: true,
6
+ setup_general: true,
7
+ design_completed: true,
8
+ site_theme_selected: true,
9
+ },
10
+ checklist: [
11
+ {
12
+ id: 'design_selected',
13
+ title: 'Select a design',
14
+ completed: true,
15
+ disabled: false,
16
+ subtitle: '',
17
+ badge_text: '',
18
+ isLaunchTask: false,
19
+ calypso_path: '/setup/update-design/designSetup?siteSlug=site62798.wordpress.com',
20
+ },
21
+ {
22
+ id: 'setup_link_in_bio',
23
+ title: 'Personalize Link in Bio',
24
+ completed: true,
25
+ disabled: false,
26
+ subtitle: '',
27
+ badge_text: '',
28
+ isLaunchTask: false,
29
+ calypso_path: '/setup/link-in-bio-post-setup/linkInBioPostSetup?siteSlug=site62798.wordpress.com',
30
+ },
31
+ {
32
+ id: 'plan_selected',
33
+ title: 'Choose a plan',
34
+ completed: true,
35
+ disabled: false,
36
+ subtitle: '',
37
+ badge_text: '',
38
+ isLaunchTask: false,
39
+ calypso_path: '/plans/site62798.wordpress.com',
40
+ },
41
+ {
42
+ id: 'links_added',
43
+ title: 'Add links',
44
+ completed: false,
45
+ disabled: false,
46
+ subtitle: '',
47
+ badge_text: '',
48
+ isLaunchTask: false,
49
+ calypso_path: '/site-editor/site62798.wordpress.com',
50
+ },
51
+ {
52
+ id: 'link_in_bio_launched',
53
+ title: 'Launch your site',
54
+ completed: false,
55
+ disabled: true,
56
+ subtitle: '',
57
+ badge_text: '',
58
+ isLaunchTask: false,
59
+ },
60
+ ],
61
+ is_enabled: true,
62
+ is_dismissed: false,
63
+ is_dismissible: false,
64
+ title: 'Next steps for your site',
65
+ };
66
+ //# sourceMappingURL=link-in-bio.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"link-in-bio.js","sourceRoot":"","sources":["../../../src/msw/link-in-bio.ts"],"names":[],"mappings":"AAAA,eAAe;IACd,WAAW,EAAE,MAAM;IACnB,gBAAgB,EAAE,MAAM;IACxB,kBAAkB,EAAE;QACnB,UAAU,EAAE,IAAI;QAChB,aAAa,EAAE,IAAI;QACnB,gBAAgB,EAAE,IAAI;QACtB,mBAAmB,EAAE,IAAI;KACzB;IACD,SAAS,EAAE;QACV;YACC,EAAE,EAAE,iBAAiB;YACrB,KAAK,EAAE,iBAAiB;YACxB,SAAS,EAAE,IAAI;YACf,QAAQ,EAAE,KAAK;YACf,QAAQ,EAAE,EAAE;YACZ,UAAU,EAAE,EAAE;YACd,YAAY,EAAE,KAAK;YACnB,YAAY,EAAE,mEAAmE;SACjF;QACD;YACC,EAAE,EAAE,mBAAmB;YACvB,KAAK,EAAE,yBAAyB;YAChC,SAAS,EAAE,IAAI;YACf,QAAQ,EAAE,KAAK;YACf,QAAQ,EAAE,EAAE;YACZ,UAAU,EAAE,EAAE;YACd,YAAY,EAAE,KAAK;YACnB,YAAY,EACX,mFAAmF;SACpF;QACD;YACC,EAAE,EAAE,eAAe;YACnB,KAAK,EAAE,eAAe;YACtB,SAAS,EAAE,IAAI;YACf,QAAQ,EAAE,KAAK;YACf,QAAQ,EAAE,EAAE;YACZ,UAAU,EAAE,EAAE;YACd,YAAY,EAAE,KAAK;YACnB,YAAY,EAAE,gCAAgC;SAC9C;QACD;YACC,EAAE,EAAE,aAAa;YACjB,KAAK,EAAE,WAAW;YAClB,SAAS,EAAE,KAAK;YAChB,QAAQ,EAAE,KAAK;YACf,QAAQ,EAAE,EAAE;YACZ,UAAU,EAAE,EAAE;YACd,YAAY,EAAE,KAAK;YACnB,YAAY,EAAE,sCAAsC;SACpD;QACD;YACC,EAAE,EAAE,sBAAsB;YAC1B,KAAK,EAAE,kBAAkB;YACzB,SAAS,EAAE,KAAK;YAChB,QAAQ,EAAE,IAAI;YACd,QAAQ,EAAE,EAAE;YACZ,UAAU,EAAE,EAAE;YACd,YAAY,EAAE,KAAK;SACnB;KACD;IACD,UAAU,EAAE,IAAI;IAChB,YAAY,EAAE,KAAK;IACnB,cAAc,EAAE,KAAK;IACrB,KAAK,EAAE,0BAA0B;CACjC,CAAC"}
@@ -0,0 +1,14 @@
1
+ import { HttpResponse, delay } from 'msw';
2
+ import linkInBio from './link-in-bio';
3
+ import free from './setup-free';
4
+ export const launchpadResolver = async ({ request }) => {
5
+ const searchParams = new URL(request.url).searchParams;
6
+ const checklistSlug = searchParams.get('checklist_slug');
7
+ // Random delay to make the UI feel more realistic
8
+ await delay();
9
+ if (checklistSlug === 'link-in-bio') {
10
+ return HttpResponse.json(linkInBio);
11
+ }
12
+ return HttpResponse.json(free);
13
+ };
14
+ //# sourceMappingURL=resolver.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolver.js","sourceRoot":"","sources":["../../../src/msw/resolver.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAwB,KAAK,EAAE,MAAM,KAAK,CAAC;AAChE,OAAO,SAAS,MAAM,eAAe,CAAC;AACtC,OAAO,IAAI,MAAM,cAAc,CAAC;AAEhC,MAAM,CAAC,MAAM,iBAAiB,GAAyB,KAAK,EAAG,EAAE,OAAO,EAAE,EAAG,EAAE;IAC9E,MAAM,YAAY,GAAG,IAAI,GAAG,CAAE,OAAO,CAAC,GAAG,CAAE,CAAC,YAAY,CAAC;IACzD,MAAM,aAAa,GAAG,YAAY,CAAC,GAAG,CAAE,gBAAgB,CAAE,CAAC;IAE3D,kDAAkD;IAElD,MAAM,KAAK,EAAE,CAAC;IAEd,IAAK,aAAa,KAAK,aAAa,EAAG,CAAC;QACvC,OAAO,YAAY,CAAC,IAAI,CAAE,SAAS,CAAE,CAAC;IACvC,CAAC;IAED,OAAO,YAAY,CAAC,IAAI,CAAE,IAAI,CAAE,CAAC;AAClC,CAAC,CAAC"}
@@ -0,0 +1,86 @@
1
+ export default {
2
+ site_intent: 'free',
3
+ launchpad_screen: 'full',
4
+ checklist_statuses: {
5
+ setup_free: true,
6
+ setup_general: true,
7
+ design_completed: true,
8
+ site_theme_selected: true,
9
+ },
10
+ checklist: [
11
+ {
12
+ id: 'plan_selected',
13
+ title: 'Choose a plan',
14
+ completed: true,
15
+ disabled: false,
16
+ subtitle: '',
17
+ badge_text: '',
18
+ isLaunchTask: false,
19
+ calypso_path: '/plans/site62798.wordpress.com',
20
+ },
21
+ {
22
+ id: 'setup_free',
23
+ title: 'Personalize your site',
24
+ completed: true,
25
+ disabled: false,
26
+ subtitle: '',
27
+ badge_text: '',
28
+ isLaunchTask: false,
29
+ calypso_path: '/settings/general/site62798.wordpress.com',
30
+ },
31
+ {
32
+ id: 'design_selected',
33
+ title: 'Select a design',
34
+ completed: true,
35
+ disabled: false,
36
+ subtitle: '',
37
+ badge_text: '',
38
+ isLaunchTask: false,
39
+ calypso_path: '/setup/update-design/designSetup?siteSlug=site62798.wordpress.com',
40
+ },
41
+ {
42
+ id: 'domain_upsell',
43
+ title: 'Choose a domain',
44
+ completed: false,
45
+ disabled: false,
46
+ subtitle: '',
47
+ badge_text: 'Upgrade plan',
48
+ isLaunchTask: false,
49
+ calypso_path: '/setup/domain-upsell/domains?siteSlug=site62798.wordpress.com',
50
+ },
51
+ {
52
+ id: 'first_post_published',
53
+ title: 'Write your first post',
54
+ completed: false,
55
+ disabled: false,
56
+ subtitle: '',
57
+ badge_text: '',
58
+ isLaunchTask: false,
59
+ calypso_path: '/post/site62798.wordpress.com',
60
+ },
61
+ {
62
+ id: 'design_edited',
63
+ title: 'Edit site design',
64
+ completed: false,
65
+ disabled: false,
66
+ subtitle: '',
67
+ badge_text: '',
68
+ isLaunchTask: false,
69
+ calypso_path: '/site-editor/site62798.wordpress.com',
70
+ },
71
+ {
72
+ id: 'site_launched',
73
+ title: 'Launch your site',
74
+ completed: false,
75
+ disabled: false,
76
+ subtitle: '',
77
+ badge_text: '',
78
+ isLaunchTask: true,
79
+ },
80
+ ],
81
+ is_enabled: true,
82
+ is_dismissed: false,
83
+ is_dismissible: false,
84
+ title: 'Next steps for your site',
85
+ };
86
+ //# sourceMappingURL=setup-free.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"setup-free.js","sourceRoot":"","sources":["../../../src/msw/setup-free.ts"],"names":[],"mappings":"AAAA,eAAe;IACd,WAAW,EAAE,MAAM;IACnB,gBAAgB,EAAE,MAAM;IACxB,kBAAkB,EAAE;QACnB,UAAU,EAAE,IAAI;QAChB,aAAa,EAAE,IAAI;QACnB,gBAAgB,EAAE,IAAI;QACtB,mBAAmB,EAAE,IAAI;KACzB;IACD,SAAS,EAAE;QACV;YACC,EAAE,EAAE,eAAe;YACnB,KAAK,EAAE,eAAe;YACtB,SAAS,EAAE,IAAI;YACf,QAAQ,EAAE,KAAK;YACf,QAAQ,EAAE,EAAE;YACZ,UAAU,EAAE,EAAE;YACd,YAAY,EAAE,KAAK;YACnB,YAAY,EAAE,gCAAgC;SAC9C;QACD;YACC,EAAE,EAAE,YAAY;YAChB,KAAK,EAAE,uBAAuB;YAC9B,SAAS,EAAE,IAAI;YACf,QAAQ,EAAE,KAAK;YACf,QAAQ,EAAE,EAAE;YACZ,UAAU,EAAE,EAAE;YACd,YAAY,EAAE,KAAK;YACnB,YAAY,EAAE,2CAA2C;SACzD;QACD;YACC,EAAE,EAAE,iBAAiB;YACrB,KAAK,EAAE,iBAAiB;YACxB,SAAS,EAAE,IAAI;YACf,QAAQ,EAAE,KAAK;YACf,QAAQ,EAAE,EAAE;YACZ,UAAU,EAAE,EAAE;YACd,YAAY,EAAE,KAAK;YACnB,YAAY,EAAE,mEAAmE;SACjF;QACD;YACC,EAAE,EAAE,eAAe;YACnB,KAAK,EAAE,iBAAiB;YACxB,SAAS,EAAE,KAAK;YAChB,QAAQ,EAAE,KAAK;YACf,QAAQ,EAAE,EAAE;YACZ,UAAU,EAAE,cAAc;YAC1B,YAAY,EAAE,KAAK;YACnB,YAAY,EAAE,+DAA+D;SAC7E;QACD;YACC,EAAE,EAAE,sBAAsB;YAC1B,KAAK,EAAE,uBAAuB;YAC9B,SAAS,EAAE,KAAK;YAChB,QAAQ,EAAE,KAAK;YACf,QAAQ,EAAE,EAAE;YACZ,UAAU,EAAE,EAAE;YACd,YAAY,EAAE,KAAK;YACnB,YAAY,EAAE,+BAA+B;SAC7C;QACD;YACC,EAAE,EAAE,eAAe;YACnB,KAAK,EAAE,kBAAkB;YACzB,SAAS,EAAE,KAAK;YAChB,QAAQ,EAAE,KAAK;YACf,QAAQ,EAAE,EAAE;YACZ,UAAU,EAAE,EAAE;YACd,YAAY,EAAE,KAAK;YACnB,YAAY,EAAE,sCAAsC;SACpD;QACD;YACC,EAAE,EAAE,eAAe;YACnB,KAAK,EAAE,kBAAkB;YACzB,SAAS,EAAE,KAAK;YAChB,QAAQ,EAAE,KAAK;YACf,QAAQ,EAAE,EAAE;YACZ,UAAU,EAAE,EAAE;YACd,YAAY,EAAE,IAAI;SAClB;KACD;IACD,UAAU,EAAE,IAAI;IAChB,YAAY,EAAE,KAAK;IACnB,cAAc,EAAE,KAAK;IACrB,KAAK,EAAE,0BAA0B;CACjC,CAAC"}
@@ -1,5 +1,6 @@
1
1
  import config from '@automattic/calypso-config';
2
2
  import { updateLaunchpadSettings } from '@automattic/data-stores';
3
+ import { localizeUrl } from '@automattic/i18n-utils';
3
4
  import { isMobile } from '@automattic/viewport';
4
5
  import { addQueryArgs } from '@wordpress/url';
5
6
  import wpcomRequest from 'wpcom-proxy-request';
@@ -10,29 +11,24 @@ const TASKS_TO_COMPLETE_ON_CLICK = [
10
11
  'manage_subscribers',
11
12
  'connect_social_media',
12
13
  'drive_traffic',
14
+ 'site_monitoring_page',
15
+ 'front_page_updated',
16
+ 'post_sharing_enabled',
17
+ 'mobile_app_installed',
13
18
  ];
14
- export const setUpActionsForTasks = ({ siteSlug, tasks, tracksData, extraActions, uiContext = 'calypso', }) => {
15
- const { recordTracksEvent, checklistSlug, tasklistCompleted, launchpadContext } = tracksData;
16
- const { setShareSiteModalIsOpen, siteLaunched, setActiveChecklist } = extraActions;
17
- //Record click events for tasks
18
- const recordTaskClickTracksEvent = (task) => {
19
- recordTracksEvent('calypso_launchpad_task_clicked', {
20
- checklist_slug: checklistSlug,
21
- checklist_completed: tasklistCompleted,
22
- task_id: task.id,
23
- is_completed: task.completed,
24
- context: launchpadContext,
25
- order: task.order,
26
- });
27
- };
19
+ export const setUpActionsForTasks = ({ siteSlug, tasks, tracksData, extraActions, eventHandlers, uiContext = 'calypso', }) => {
20
+ const { recordTracksEvent, checklistSlug, launchpadContext } = tracksData;
21
+ const { setShareSiteModalIsOpen, setActiveChecklist } = extraActions;
22
+ const { onSiteLaunched, onTaskClick } = eventHandlers || {};
28
23
  // Add actions to the tasks.
29
24
  return tasks.map((task) => {
30
25
  let action;
31
26
  let logMissingCalypsoPath = false;
32
- if (uiContext === 'calypso' && task.calypso_path !== undefined) {
33
- let targetPath = task.calypso_path;
34
- if (task.id === 'drive_traffic' && !isMobile()) {
35
- targetPath = addQueryArgs(targetPath, { tour: 'marketingConnectionsTour' });
27
+ let useCalypsoPath = true;
28
+ const hasCalypsoPath = task.calypso_path !== undefined;
29
+ if (uiContext === 'calypso' && hasCalypsoPath) {
30
+ if (task.id === 'drive_traffic' && !isMobile() && hasCalypsoPath) {
31
+ task.calypso_path = addQueryArgs(task.calypso_path, { tour: 'marketingConnectionsTour' });
36
32
  }
37
33
  // Enable task in 'calypso' context
38
34
  if (task.id === 'setup_general') {
@@ -44,7 +40,6 @@ export const setUpActionsForTasks = ({ siteSlug, tasks, tracksData, extraActions
44
40
  checklist_statuses: { [task.id]: true },
45
41
  });
46
42
  }
47
- window.location.assign(targetPath);
48
43
  };
49
44
  }
50
45
  else {
@@ -53,64 +48,45 @@ export const setUpActionsForTasks = ({ siteSlug, tasks, tracksData, extraActions
53
48
  action = () => {
54
49
  setShareSiteModalIsOpen?.(true);
55
50
  };
51
+ useCalypsoPath = false;
56
52
  break;
57
53
  case 'site_title':
58
54
  logMissingCalypsoPath = true;
59
- action = () => {
60
- window.location.assign(`/settings/general/${siteSlug}`);
61
- };
55
+ task.calypso_path = `/settings/general/${siteSlug}`;
62
56
  break;
63
57
  case 'domain_claim':
64
58
  case 'domain_upsell':
65
59
  case 'domain_customize':
66
60
  logMissingCalypsoPath = true;
67
- action = () => {
68
- window.location.assign(`/domains/add/${siteSlug}`);
69
- };
61
+ task.calypso_path = `/domains/add/${siteSlug}`;
70
62
  break;
71
63
  case 'drive_traffic':
72
64
  logMissingCalypsoPath = true;
73
- action = () => {
74
- const url = isMobile()
75
- ? `/marketing/connections/${siteSlug}`
76
- : `/marketing/connections/${siteSlug}?tour=marketingConnectionsTour`;
77
- window.location.assign(url);
78
- };
65
+ task.calypso_path = isMobile()
66
+ ? `/marketing/connections/${siteSlug}`
67
+ : `/marketing/connections/${siteSlug}?tour=marketingConnectionsTour`;
79
68
  break;
80
69
  case 'add_new_page':
81
70
  logMissingCalypsoPath = true;
82
- action = () => {
83
- window.location.assign(`/page/${siteSlug}`);
84
- };
71
+ task.calypso_path = `/page/${siteSlug}`;
85
72
  break;
86
73
  case 'edit_page':
87
74
  logMissingCalypsoPath = true;
88
- action = () => {
89
- window.location.assign(`/pages/${siteSlug}`);
90
- };
75
+ task.calypso_path = `/pages/${siteSlug}`;
91
76
  break;
92
77
  case 'update_about_page':
93
78
  logMissingCalypsoPath = true;
94
- action = () => {
95
- window.location.assign(`/page/${siteSlug}/${task?.extra_data?.about_page_id}`);
96
- };
79
+ task.calypso_path = `/page/${siteSlug}/${task?.extra_data?.about_page_id}`;
97
80
  break;
98
81
  case 'customize_welcome_message':
99
82
  logMissingCalypsoPath = true;
100
- action = () => {
101
- if (config.isEnabled('settings/newsletter-settings-page')) {
102
- window.location.assign(`/settings/newsletter/${siteSlug}`);
103
- }
104
- else {
105
- window.location.assign(`/settings/reading/${siteSlug}#newsletter-settings`);
106
- }
107
- };
83
+ task.calypso_path = config.isEnabled('settings/newsletter-settings-page')
84
+ ? `/settings/newsletter/${siteSlug}`
85
+ : `/settings/reading/${siteSlug}#newsletter-settings`;
108
86
  break;
109
87
  case 'manage_subscribers':
110
88
  logMissingCalypsoPath = true;
111
- action = () => {
112
- window.location.assign(`/subscribers/${siteSlug}`);
113
- };
89
+ task.calypso_path = `/subscribers/${siteSlug}`;
114
90
  break;
115
91
  case 'site_launched':
116
92
  case 'blog_launched':
@@ -122,11 +98,29 @@ export const setUpActionsForTasks = ({ siteSlug, tasks, tracksData, extraActions
122
98
  apiVersion: '1.1',
123
99
  method: 'post',
124
100
  });
125
- siteLaunched?.();
101
+ onSiteLaunched?.();
102
+ };
103
+ useCalypsoPath = false;
104
+ break;
105
+ case 'review_site':
106
+ action = () => {
107
+ // redirects to the site slug home page in a new tab
108
+ window.open(`https://${siteSlug}`, '_blank');
109
+ updateLaunchpadSettings(siteSlug, {
110
+ checklist_statuses: { [task.id]: true },
111
+ });
112
+ };
113
+ useCalypsoPath = false;
114
+ break;
115
+ case 'domain_dns_mapped':
116
+ action = () => {
117
+ window.open(localizeUrl(`https://wordpress.com/support/domains/connect-existing-domain/#step-2-connect-your-domain`), '_blank');
126
118
  };
119
+ useCalypsoPath = false;
127
120
  break;
128
121
  default:
129
122
  logMissingCalypsoPath = true;
123
+ useCalypsoPath = false;
130
124
  break;
131
125
  }
132
126
  }
@@ -139,12 +133,15 @@ export const setUpActionsForTasks = ({ siteSlug, tasks, tracksData, extraActions
139
133
  });
140
134
  }
141
135
  const actionDispatch = () => {
142
- recordTaskClickTracksEvent(task);
143
- if (siteSlug && setActiveChecklist) {
136
+ if (siteSlug && setActiveChecklist && config.isEnabled('launchpad/navigator')) {
144
137
  setActiveChecklist(siteSlug, checklistSlug);
145
138
  }
139
+ onTaskClick?.(task);
146
140
  action?.();
147
141
  };
142
+ // Note that we double-check for both the flag and a valid calypso_path as a safety check.
143
+ // We intentionally avoid `hasCalypsoPath`, as it may be out of date.
144
+ task.useCalypsoPath = useCalypsoPath && task.calypso_path !== undefined;
148
145
  return { ...task, actionDispatch };
149
146
  });
150
147
  };
@@ -1 +1 @@
1
- {"version":3,"file":"setup-actions.js","sourceRoot":"","sources":["../../src/setup-actions.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"setup-actions.js","sourceRoot":"","sources":["../../src/setup-actions.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,68 @@
1
+ import { recordTracksEvent } from '@automattic/calypso-analytics';
2
+ import { useEffect, useMemo } from 'react';
3
+ const stringifyTasks = (tasks) => {
4
+ const prefix = ',';
5
+ const suffix = ',';
6
+ const separator = ',';
7
+ const taskIds = tasks.map((task) => task.id).join(separator);
8
+ return `${prefix}${taskIds}${suffix}`;
9
+ };
10
+ export const useTracking = (params) => {
11
+ const { tasks, checklistSlug, context, site, flow } = params;
12
+ const completedSteps = useMemo(() => tasks.filter((task) => task.completed), [tasks]);
13
+ const taskNames = useMemo(() => stringifyTasks(tasks), [tasks]);
14
+ const numberOfSteps = tasks.length;
15
+ const numberOfCompletedSteps = completedSteps.length;
16
+ const isCheckListCompleted = completedSteps.length === tasks.length;
17
+ const isSiteAvailable = !!site;
18
+ const hasNoTask = tasks.length === 0;
19
+ // We skip the view events until we have fetched the site details to avoid sending incomplete data
20
+ const shoulSkipTracking = hasNoTask || !isSiteAvailable;
21
+ useEffect(() => {
22
+ if (shoulSkipTracking) {
23
+ return;
24
+ }
25
+ const siteIntent = site?.options?.site_intent;
26
+ recordTracksEvent('calypso_launchpad_tasklist_viewed', {
27
+ number_of_steps: numberOfSteps,
28
+ number_of_completed_steps: numberOfCompletedSteps,
29
+ is_completed: isCheckListCompleted,
30
+ tasks: taskNames,
31
+ checklist_slug: checklistSlug,
32
+ context: context,
33
+ site_intent: siteIntent,
34
+ flow,
35
+ });
36
+ tasks.forEach((task) => {
37
+ recordTracksEvent('calypso_launchpad_task_view', {
38
+ checklist_slug: checklistSlug,
39
+ task_id: task.id,
40
+ is_completed: task.completed,
41
+ context: context,
42
+ order: task.order,
43
+ site_intent: siteIntent,
44
+ flow,
45
+ });
46
+ });
47
+ // Array of tasks requires deep comparison
48
+ // eslint-disable-next-line react-hooks/exhaustive-deps
49
+ }, [
50
+ JSON.stringify(tasks.map(({ id, completed, order }) => ({ id, completed, order }))),
51
+ shoulSkipTracking,
52
+ ]);
53
+ const trackTaskClick = (task) => {
54
+ recordTracksEvent('calypso_launchpad_task_clicked', {
55
+ checklist_completed: isCheckListCompleted,
56
+ is_completed: task.completed,
57
+ checklist_slug: checklistSlug,
58
+ context: context,
59
+ task_id: task.id,
60
+ flow,
61
+ order: task.order,
62
+ });
63
+ };
64
+ return {
65
+ trackTaskClick,
66
+ };
67
+ };
68
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/use-tracking/index.tsx"],"names":[],"mappings":"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"}