@automattic/launchpad 1.0.0 → 1.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.storybook/main.ts +16 -0
- package/.storybook/preview.ts +6 -0
- package/README.md +11 -2
- package/dist/cjs/action-components/index.js +6 -0
- package/dist/cjs/action-components/index.js.map +1 -0
- package/dist/cjs/action-components/share-site-modal/index.js +44 -0
- package/dist/cjs/action-components/share-site-modal/index.js.map +1 -0
- package/dist/cjs/action-components/share-site-modal/style.scss +159 -0
- package/dist/cjs/badge/index.js +2 -2
- package/dist/cjs/badge/index.js.map +1 -1
- package/dist/cjs/checklist/index.js +16 -8
- package/dist/cjs/checklist/index.js.map +1 -1
- package/dist/cjs/checklist/index.stories.js +29 -0
- package/dist/cjs/checklist/index.stories.js.map +1 -0
- package/dist/cjs/checklist-item/index.js +30 -13
- package/dist/cjs/checklist-item/index.js.map +1 -1
- package/dist/cjs/checklist-item/index.stories.js +79 -0
- package/dist/cjs/checklist-item/index.stories.js.map +1 -0
- package/dist/cjs/checklist-item/style.scss +142 -22
- package/dist/cjs/index.js +6 -1
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/launchpad-container/index.js +11 -0
- package/dist/cjs/launchpad-container/index.js.map +1 -0
- package/dist/cjs/launchpad-container/style.scss +59 -0
- package/dist/cjs/launchpad-internal.js +40 -0
- package/dist/cjs/launchpad-internal.js.map +1 -0
- package/dist/cjs/launchpad-internal.stories.js +45 -0
- package/dist/cjs/launchpad-internal.stories.js.map +1 -0
- package/dist/cjs/launchpad.js +39 -10
- package/dist/cjs/launchpad.js.map +1 -1
- package/dist/cjs/msw/link-in-bio.js +68 -0
- package/dist/cjs/msw/link-in-bio.js.map +1 -0
- package/dist/cjs/msw/resolver.js +19 -0
- package/dist/cjs/msw/resolver.js.map +1 -0
- package/dist/cjs/msw/setup-free.js +88 -0
- package/dist/cjs/msw/setup-free.js.map +1 -0
- package/dist/cjs/setup-actions.js +51 -54
- package/dist/cjs/setup-actions.js.map +1 -1
- package/dist/cjs/use-tracking/index.js +72 -0
- package/dist/cjs/use-tracking/index.js.map +1 -0
- package/dist/esm/action-components/index.js +2 -0
- package/dist/esm/action-components/index.js.map +1 -0
- package/dist/esm/action-components/share-site-modal/index.js +42 -0
- package/dist/esm/action-components/share-site-modal/index.js.map +1 -0
- package/dist/esm/action-components/share-site-modal/style.scss +159 -0
- package/dist/esm/badge/index.js +2 -2
- package/dist/esm/badge/index.js.map +1 -1
- package/dist/esm/checklist/index.js +14 -8
- package/dist/esm/checklist/index.js.map +1 -1
- package/dist/esm/checklist/index.stories.js +25 -0
- package/dist/esm/checklist/index.stories.js.map +1 -0
- package/dist/esm/checklist-item/index.js +29 -14
- package/dist/esm/checklist-item/index.js.map +1 -1
- package/dist/esm/checklist-item/index.stories.js +75 -0
- package/dist/esm/checklist-item/index.stories.js.map +1 -0
- package/dist/esm/checklist-item/style.scss +142 -22
- package/dist/esm/index.js +3 -0
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/launchpad-container/index.js +8 -0
- package/dist/esm/launchpad-container/index.js.map +1 -0
- package/dist/esm/launchpad-container/style.scss +59 -0
- package/dist/esm/launchpad-internal.js +37 -0
- package/dist/esm/launchpad-internal.js.map +1 -0
- package/dist/esm/launchpad-internal.stories.js +41 -0
- package/dist/esm/launchpad-internal.stories.js.map +1 -0
- package/dist/esm/launchpad.js +41 -13
- package/dist/esm/launchpad.js.map +1 -1
- package/dist/esm/msw/link-in-bio.js +66 -0
- package/dist/esm/msw/link-in-bio.js.map +1 -0
- package/dist/esm/msw/resolver.js +14 -0
- package/dist/esm/msw/resolver.js.map +1 -0
- package/dist/esm/msw/setup-free.js +86 -0
- package/dist/esm/msw/setup-free.js.map +1 -0
- package/dist/esm/setup-actions.js +51 -54
- package/dist/esm/setup-actions.js.map +1 -1
- package/dist/esm/use-tracking/index.js +68 -0
- package/dist/esm/use-tracking/index.js.map +1 -0
- package/dist/tsconfig-cjs.tsbuildinfo +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/types/action-components/index.d.ts +2 -0
- package/dist/types/action-components/index.d.ts.map +1 -0
- package/dist/types/action-components/share-site-modal/index.d.ts +9 -0
- package/dist/types/action-components/share-site-modal/index.d.ts.map +1 -0
- package/dist/types/badge/index.d.ts.map +1 -1
- package/dist/types/checklist/index.d.ts +6 -7
- package/dist/types/checklist/index.d.ts.map +1 -1
- package/dist/types/checklist/index.stories.d.ts +8 -0
- package/dist/types/checklist/index.stories.d.ts.map +1 -0
- package/dist/types/checklist-item/index.d.ts +11 -8
- package/dist/types/checklist-item/index.d.ts.map +1 -1
- package/dist/types/checklist-item/index.stories.d.ts +14 -0
- package/dist/types/checklist-item/index.stories.d.ts.map +1 -0
- package/dist/types/index.d.ts +3 -0
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/launchpad-container/index.d.ts +15 -0
- package/dist/types/launchpad-container/index.d.ts.map +1 -0
- package/dist/types/launchpad-internal.d.ts +20 -0
- package/dist/types/launchpad-internal.d.ts.map +1 -0
- package/dist/types/launchpad-internal.stories.d.ts +8 -0
- package/dist/types/launchpad-internal.stories.d.ts.map +1 -0
- package/dist/types/launchpad.d.ts +10 -9
- package/dist/types/launchpad.d.ts.map +1 -1
- package/dist/types/msw/link-in-bio.d.ts +35 -0
- package/dist/types/msw/link-in-bio.d.ts.map +1 -0
- package/dist/types/msw/resolver.d.ts +3 -0
- package/dist/types/msw/resolver.d.ts.map +1 -0
- package/dist/types/msw/setup-free.d.ts +35 -0
- package/dist/types/msw/setup-free.d.ts.map +1 -0
- package/dist/types/setup-actions.d.ts +1 -1
- package/dist/types/setup-actions.d.ts.map +1 -1
- package/dist/types/types.d.ts +19 -9
- package/dist/types/types.d.ts.map +1 -1
- package/dist/types/use-tracking/index.d.ts +14 -0
- package/dist/types/use-tracking/index.d.ts.map +1 -0
- package/package.json +24 -16
- package/src/action-components/index.ts +1 -0
- package/src/action-components/share-site-modal/index.tsx +100 -0
- package/src/action-components/share-site-modal/style.scss +159 -0
- package/src/badge/index.tsx +2 -4
- package/src/checklist/index.stories.tsx +45 -0
- package/src/checklist/index.tsx +22 -21
- package/src/checklist/test/index.tsx +26 -0
- package/src/checklist-item/index.stories.tsx +92 -0
- package/src/checklist-item/index.tsx +62 -22
- package/src/checklist-item/style.scss +142 -22
- package/src/checklist-item/test/index.tsx +232 -0
- package/src/index.ts +3 -0
- package/src/launchpad-container/index.tsx +45 -0
- package/src/launchpad-container/style.scss +59 -0
- package/src/launchpad-container/test/index.tsx +72 -0
- package/src/launchpad-internal.stories.tsx +49 -0
- package/src/launchpad-internal.tsx +85 -0
- package/src/launchpad.tsx +80 -30
- package/src/msw/link-in-bio.ts +66 -0
- package/src/msw/resolver.ts +18 -0
- package/src/msw/setup-free.ts +85 -0
- package/src/setup-actions.ts +67 -54
- package/src/test/launchpad.tsx +51 -24
- package/src/test/lib/fixtures.ts +7 -2
- package/src/types.ts +24 -9
- package/src/use-tracking/index.tsx +87 -0
- package/src/use-tracking/test/index.tsx +116 -0
- package/static/mockServiceWorker.js +287 -0
- package/src/test/checklist-item.tsx +0 -96
- package/src/test/checklist.tsx +0 -25
package/dist/esm/launchpad.js
CHANGED
|
@@ -1,16 +1,44 @@
|
|
|
1
|
-
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
}
|
|
13
|
-
|
|
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,
|
|
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,
|
|
16
|
-
const { setShareSiteModalIsOpen,
|
|
17
|
-
|
|
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
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
74
|
-
|
|
75
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
101
|
-
|
|
102
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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":"AAAA,OAAO,MAAM,MAAM,4BAA4B,CAAC;AAChD,OAAO,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAClE,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,YAAY,MAAM,qBAAqB,CAAC;AAG/C,MAAM,0BAA0B,GAAG;IAClC,gBAAgB;IAChB,6BAA6B;IAC7B,YAAY;IACZ,oBAAoB;IACpB,sBAAsB;IACtB,eAAe;
|
|
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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"}
|