@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
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/action-components/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,oBAAoB,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { SiteDetails } from '@automattic/data-stores';
|
|
2
|
+
import './style.scss';
|
|
3
|
+
interface ShareSiteModalProps {
|
|
4
|
+
setModalIsOpen: (isOpen: boolean) => void;
|
|
5
|
+
site: SiteDetails | null;
|
|
6
|
+
}
|
|
7
|
+
declare const ShareSiteModal: ({ setModalIsOpen, site }: ShareSiteModalProps) => import("react/jsx-runtime").JSX.Element;
|
|
8
|
+
export default ShareSiteModal;
|
|
9
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/action-components/share-site-modal/index.tsx"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAE3D,OAAO,cAAc,CAAC;AAEtB,UAAU,mBAAmB;IAC5B,cAAc,EAAE,CAAE,MAAM,EAAE,OAAO,KAAM,IAAI,CAAC;IAC5C,IAAI,EAAE,WAAW,GAAG,IAAI,CAAC;CACzB;AAED,QAAA,MAAM,cAAc,6BAA+B,mBAAmB,4CAiFrE,CAAC;AAEF,eAAe,cAAc,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/badge/index.tsx"],"names":[],"mappings":";AAEA,OAAO,cAAc,CAAC;AAEtB,MAAM,WAAW,UAAU;IAC1B,IAAI,CAAC,EACF,SAAS,GACT,eAAe,GACf,SAAS,GACT,MAAM,GACN,WAAW,GACX,YAAY,GACZ,aAAa,GACb,OAAO,CAAC;IACX,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC3B;AAED,QAAA,MAAM,KAAK,EAAE,KAAK,CAAC,iBAAiB,CAAE,UAAU,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/badge/index.tsx"],"names":[],"mappings":";AAEA,OAAO,cAAc,CAAC;AAEtB,MAAM,WAAW,UAAU;IAC1B,IAAI,CAAC,EACF,SAAS,GACT,eAAe,GACf,SAAS,GACT,MAAM,GACN,WAAW,GACX,YAAY,GACZ,aAAa,GACb,OAAO,CAAC;IACX,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC3B;AAED,QAAA,MAAM,KAAK,EAAE,KAAK,CAAC,iBAAiB,CAAE,UAAU,CAI/C,CAAC;AAEF,eAAe,KAAK,CAAC"}
|
|
@@ -1,12 +1,11 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { type FC, type ReactElement, type ComponentProps } from 'react';
|
|
2
|
+
import ChecklistItem from '../checklist-item';
|
|
2
3
|
import './style.scss';
|
|
3
|
-
interface
|
|
4
|
-
tasks: Task[] | null;
|
|
4
|
+
interface Props {
|
|
5
5
|
makeLastTaskPrimaryAction?: boolean;
|
|
6
|
+
children?: ReactElement<ComponentProps<typeof ChecklistItem>> | ReactElement<ComponentProps<typeof ChecklistItem>>[];
|
|
6
7
|
}
|
|
7
|
-
declare const Checklist:
|
|
8
|
-
|
|
9
|
-
Placeholder(): import("react/jsx-runtime").JSX.Element;
|
|
10
|
-
};
|
|
8
|
+
declare const Checklist: FC<Props>;
|
|
9
|
+
export declare const Placeholder: () => import("react/jsx-runtime").JSX.Element;
|
|
11
10
|
export default Checklist;
|
|
12
11
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/checklist/index.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/checklist/index.tsx"],"names":[],"mappings":"AACA,OAAO,EAA0B,KAAK,EAAE,EAAE,KAAK,YAAY,EAAE,KAAK,cAAc,EAAE,MAAM,OAAO,CAAC;AAChG,OAAO,aAA0D,MAAM,mBAAmB,CAAC;AAC3F,OAAO,cAAc,CAAC;AAEtB,UAAU,KAAK;IACd,yBAAyB,CAAC,EAAE,OAAO,CAAC;IACpC,QAAQ,CAAC,EACN,YAAY,CAAE,cAAc,CAAE,OAAO,aAAa,CAAE,CAAE,GACtD,YAAY,CAAE,cAAc,CAAE,OAAO,aAAa,CAAE,CAAE,EAAE,CAAC;CAC5D;AAED,QAAA,MAAM,SAAS,EAAE,EAAE,CAAE,KAAK,CAkBzB,CAAC;AAEF,eAAO,MAAM,WAAW,+CASvB,CAAC;AAEF,eAAe,SAAS,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import Checklist from './';
|
|
2
|
+
import type { Meta, StoryObj } from '@storybook/react';
|
|
3
|
+
declare const meta: Meta<typeof Checklist>;
|
|
4
|
+
type Story = StoryObj<typeof meta>;
|
|
5
|
+
export declare const Default: Story;
|
|
6
|
+
export declare const WithMakeLastTaskPrimaryAction: Story;
|
|
7
|
+
export default meta;
|
|
8
|
+
//# sourceMappingURL=index.stories.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.stories.d.ts","sourceRoot":"","sources":["../../../src/checklist/index.stories.tsx"],"names":[],"mappings":"AACA,OAAO,SAAS,MAAM,IAAI,CAAC;AAC3B,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAEvD,QAAA,MAAM,IAAI,EAAE,IAAI,CAAE,OAAO,SAAS,CA6BjC,CAAC;AAEF,KAAK,KAAK,GAAG,QAAQ,CAAE,OAAO,IAAI,CAAE,CAAC;AACrC,eAAO,MAAM,OAAO,EAAE,KAAU,CAAC;AAEjC,eAAO,MAAM,6BAA6B,EAAE,KAI3C,CAAC;AAEF,eAAe,IAAI,CAAC"}
|
|
@@ -1,11 +1,14 @@
|
|
|
1
|
-
import { Task } from '../types';
|
|
1
|
+
import type { Task, Expandable } from '../types';
|
|
2
|
+
import type { FC, Key } from 'react';
|
|
2
3
|
import './style.scss';
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
}
|
|
4
|
+
interface Props {
|
|
5
|
+
key?: Key;
|
|
6
|
+
task: Task;
|
|
7
|
+
isPrimaryAction?: boolean;
|
|
8
|
+
expandable?: Expandable;
|
|
9
|
+
onClick?: () => void;
|
|
10
|
+
}
|
|
11
|
+
declare const ChecklistItem: FC<Props>;
|
|
12
|
+
export declare const Placeholder: FC;
|
|
10
13
|
export default ChecklistItem;
|
|
11
14
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/checklist-item/index.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/checklist-item/index.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AACjD,OAAO,KAAK,EAAE,EAAE,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAErC,OAAO,cAAc,CAAC;AAEtB,UAAU,KAAK;IACd,GAAG,CAAC,EAAE,GAAG,CAAC;IACV,IAAI,EAAE,IAAI,CAAC;IACX,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;CACrB;AAED,QAAA,MAAM,aAAa,EAAE,EAAE,CAAE,KAAK,CAwG7B,CAAC;AAEF,eAAO,MAAM,WAAW,EAAE,EAQzB,CAAC;AAEF,eAAe,aAAa,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import ChecklistItem from './';
|
|
2
|
+
import type { Meta, StoryObj } from '@storybook/react';
|
|
3
|
+
declare const meta: Meta<typeof ChecklistItem>;
|
|
4
|
+
type Story = StoryObj<typeof meta>;
|
|
5
|
+
export declare const Default: Story;
|
|
6
|
+
export declare const Completed: Story;
|
|
7
|
+
export declare const Disabled: Story;
|
|
8
|
+
export declare const WithBadgetText: Story;
|
|
9
|
+
export declare const WithTaskCounter: Story;
|
|
10
|
+
export declare const WithSubtitle: Story;
|
|
11
|
+
export declare const Expanded: Story;
|
|
12
|
+
export declare const ExpandedWithAction: Story;
|
|
13
|
+
export default meta;
|
|
14
|
+
//# sourceMappingURL=index.stories.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.stories.d.ts","sourceRoot":"","sources":["../../../src/checklist-item/index.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,aAAa,MAAM,IAAI,CAAC;AAC/B,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAEvD,QAAA,MAAM,IAAI,EAAE,IAAI,CAAE,OAAO,aAAa,CAYrC,CAAC;AAEF,KAAK,KAAK,GAAG,QAAQ,CAAE,OAAO,IAAI,CAAE,CAAC;AAQrC,eAAO,MAAM,OAAO,EAAE,KAKrB,CAAC;AAEF,eAAO,MAAM,SAAS,EAAE,KAKvB,CAAC;AAEF,eAAO,MAAM,QAAQ,EAAE,KAKtB,CAAC;AAEF,eAAO,MAAM,cAAc,EAAE,KAK5B,CAAC;AAEF,eAAO,MAAM,eAAe,EAAE,KAK7B,CAAC;AAEF,eAAO,MAAM,YAAY,EAAE,KAK1B,CAAC;AAEF,eAAO,MAAM,QAAQ,EAAE,KAQtB,CAAC;AAEF,eAAO,MAAM,kBAAkB,EAAE,KAYhC,CAAC;AAEF,eAAe,IAAI,CAAC"}
|
package/dist/types/index.d.ts
CHANGED
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
export { default as Checklist } from './checklist';
|
|
2
2
|
export { default as ChecklistItem } from './checklist-item';
|
|
3
|
+
export { default as LaunchpadInternal } from './launchpad-internal';
|
|
4
|
+
export { default as LaunchpadContainer } from './launchpad-container';
|
|
3
5
|
export { default as Launchpad } from './launchpad';
|
|
4
6
|
export { setUpActionsForTasks } from './setup-actions';
|
|
7
|
+
export * from './action-components';
|
|
5
8
|
export * from './types';
|
|
6
9
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAC5D,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AACvD,cAAc,SAAS,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAC5D,OAAO,EAAE,OAAO,IAAI,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACpE,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AACtE,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AACvD,cAAc,qBAAqB,CAAC;AACpC,cAAc,SAAS,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import './style.scss';
|
|
3
|
+
export interface ContainerProps {
|
|
4
|
+
className?: string;
|
|
5
|
+
headerClassName?: string;
|
|
6
|
+
contentClassName?: string;
|
|
7
|
+
sidebarClassName?: string;
|
|
8
|
+
mainContentClassName?: string;
|
|
9
|
+
header?: React.ReactNode;
|
|
10
|
+
sidebar: React.ReactNode;
|
|
11
|
+
children: React.ReactNode;
|
|
12
|
+
}
|
|
13
|
+
declare const LaunchpadContainer: React.FunctionComponent<ContainerProps>;
|
|
14
|
+
export default LaunchpadContainer;
|
|
15
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/launchpad-container/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,cAAc,CAAC;AAEtB,MAAM,WAAW,cAAc;IAC9B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,MAAM,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACzB,OAAO,EAAE,KAAK,CAAC,SAAS,CAAC;IACzB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC1B;AAED,QAAA,MAAM,kBAAkB,EAAE,KAAK,CAAC,iBAAiB,CAAE,cAAc,CA0BhE,CAAC;AAEF,eAAe,kBAAkB,CAAC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { type FC } from 'react';
|
|
2
|
+
import type { Task } from './types';
|
|
3
|
+
import type { SiteDetails, UseLaunchpadOptions } from '@automattic/data-stores';
|
|
4
|
+
interface Props {
|
|
5
|
+
site?: SiteDetails | null;
|
|
6
|
+
siteSlug: string | null;
|
|
7
|
+
checklistSlug: string | null;
|
|
8
|
+
makeLastTaskPrimaryAction?: boolean;
|
|
9
|
+
taskFilter?: (tasks: Task[]) => Task[];
|
|
10
|
+
useLaunchpadOptions?: UseLaunchpadOptions;
|
|
11
|
+
launchpadContext: string;
|
|
12
|
+
flow?: string;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Low-level launchpad component that should only be used in exceptional cases.
|
|
16
|
+
* Please use the main Launchpad component whenever possible.
|
|
17
|
+
*/
|
|
18
|
+
declare const LaunchpadInternal: FC<Props>;
|
|
19
|
+
export default LaunchpadInternal;
|
|
20
|
+
//# sourceMappingURL=launchpad-internal.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"launchpad-internal.d.ts","sourceRoot":"","sources":["../../src/launchpad-internal.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,EAAW,MAAM,OAAO,CAAC;AAIzC,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AACpC,OAAO,KAAK,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAEhF,UAAU,KAAK;IACd,IAAI,CAAC,EAAE,WAAW,GAAG,IAAI,CAAC;IAC1B,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,yBAAyB,CAAC,EAAE,OAAO,CAAC;IACpC,UAAU,CAAC,EAAE,CAAE,KAAK,EAAE,IAAI,EAAE,KAAM,IAAI,EAAE,CAAC;IACzC,mBAAmB,CAAC,EAAE,mBAAmB,CAAC;IAC1C,gBAAgB,EAAE,MAAM,CAAC;IACzB,IAAI,CAAC,EAAE,MAAM,CAAC;CACd;AAED;;;GAGG;AACH,QAAA,MAAM,iBAAiB,EAAE,EAAE,CAAE,KAAK,CA2DjC,CAAC;AAEF,eAAe,iBAAiB,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import LaunchpadInternal from './launchpad-internal';
|
|
2
|
+
import type { Meta, StoryObj } from '@storybook/react';
|
|
3
|
+
declare const meta: Meta<typeof LaunchpadInternal>;
|
|
4
|
+
type Story = StoryObj<typeof meta>;
|
|
5
|
+
export declare const Default: Story;
|
|
6
|
+
export declare const Loading: Story;
|
|
7
|
+
export default meta;
|
|
8
|
+
//# sourceMappingURL=launchpad-internal.stories.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"launchpad-internal.stories.d.ts","sourceRoot":"","sources":["../../src/launchpad-internal.stories.tsx"],"names":[],"mappings":"AAEA,OAAO,iBAAiB,MAAM,sBAAsB,CAAC;AAErD,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAIvD,QAAA,MAAM,IAAI,EAAE,IAAI,CAAE,OAAO,iBAAiB,CA4BzC,CAAC;AAEF,KAAK,KAAK,GAAG,QAAQ,CAAE,OAAO,IAAI,CAAE,CAAC;AACrC,eAAO,MAAM,OAAO,EAAE,KAAU,CAAC;AACjC,eAAO,MAAM,OAAO,EAAE,KAMrB,CAAC;AAEF,eAAe,IAAI,CAAC"}
|
|
@@ -1,12 +1,13 @@
|
|
|
1
|
-
import type { Task } from './types';
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
import type { EventHandlers, Task } from './types';
|
|
2
|
+
export declare const SITE_STORE: "automattic/site";
|
|
3
|
+
type LaunchpadProps = {
|
|
4
4
|
siteSlug: string | null;
|
|
5
|
-
checklistSlug
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
5
|
+
checklistSlug: string;
|
|
6
|
+
launchpadContext: string;
|
|
7
|
+
onSiteLaunched?: () => void;
|
|
8
|
+
onTaskClick?: EventHandlers['onTaskClick'];
|
|
9
|
+
onPostFilterTasks?: (tasks: Task[]) => Task[];
|
|
10
|
+
};
|
|
11
|
+
declare const Launchpad: ({ siteSlug, checklistSlug, launchpadContext, onSiteLaunched, onTaskClick, onPostFilterTasks, }: LaunchpadProps) => import("react/jsx-runtime").JSX.Element;
|
|
11
12
|
export default Launchpad;
|
|
12
13
|
//# sourceMappingURL=launchpad.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"launchpad.d.ts","sourceRoot":"","sources":["../../src/launchpad.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"launchpad.d.ts","sourceRoot":"","sources":["../../src/launchpad.tsx"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,aAAa,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAEnD,eAAO,MAAM,UAAU,mBAAwD,CAAC;AAEhF,KAAK,cAAc,GAAG;IACrB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,aAAa,EAAE,MAAM,CAAC;IACtB,gBAAgB,EAAE,MAAM,CAAC;IACzB,cAAc,CAAC,EAAE,MAAM,IAAI,CAAC;IAC5B,WAAW,CAAC,EAAE,aAAa,CAAE,aAAa,CAAE,CAAC;IAC7C,iBAAiB,CAAC,EAAE,CAAE,KAAK,EAAE,IAAI,EAAE,KAAM,IAAI,EAAE,CAAC;CAChD,CAAC;AAEF,QAAA,MAAM,SAAS,mGAOZ,cAAc,4CA2DhB,CAAC;AAEF,eAAe,SAAS,CAAC"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
declare const _default: {
|
|
2
|
+
site_intent: string;
|
|
3
|
+
launchpad_screen: string;
|
|
4
|
+
checklist_statuses: {
|
|
5
|
+
setup_free: boolean;
|
|
6
|
+
setup_general: boolean;
|
|
7
|
+
design_completed: boolean;
|
|
8
|
+
site_theme_selected: boolean;
|
|
9
|
+
};
|
|
10
|
+
checklist: ({
|
|
11
|
+
id: string;
|
|
12
|
+
title: string;
|
|
13
|
+
completed: boolean;
|
|
14
|
+
disabled: boolean;
|
|
15
|
+
subtitle: string;
|
|
16
|
+
badge_text: string;
|
|
17
|
+
isLaunchTask: boolean;
|
|
18
|
+
calypso_path: string;
|
|
19
|
+
} | {
|
|
20
|
+
id: string;
|
|
21
|
+
title: string;
|
|
22
|
+
completed: boolean;
|
|
23
|
+
disabled: boolean;
|
|
24
|
+
subtitle: string;
|
|
25
|
+
badge_text: string;
|
|
26
|
+
isLaunchTask: boolean;
|
|
27
|
+
calypso_path?: undefined;
|
|
28
|
+
})[];
|
|
29
|
+
is_enabled: boolean;
|
|
30
|
+
is_dismissed: boolean;
|
|
31
|
+
is_dismissible: boolean;
|
|
32
|
+
title: string;
|
|
33
|
+
};
|
|
34
|
+
export default _default;
|
|
35
|
+
//# sourceMappingURL=link-in-bio.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"link-in-bio.d.ts","sourceRoot":"","sources":["../../../src/msw/link-in-bio.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,wBAiEE"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolver.d.ts","sourceRoot":"","sources":["../../../src/msw/resolver.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,oBAAoB,EAAS,MAAM,KAAK,CAAC;AAIhE,eAAO,MAAM,iBAAiB,EAAE,oBAa/B,CAAC"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
declare const _default: {
|
|
2
|
+
site_intent: string;
|
|
3
|
+
launchpad_screen: string;
|
|
4
|
+
checklist_statuses: {
|
|
5
|
+
setup_free: boolean;
|
|
6
|
+
setup_general: boolean;
|
|
7
|
+
design_completed: boolean;
|
|
8
|
+
site_theme_selected: boolean;
|
|
9
|
+
};
|
|
10
|
+
checklist: ({
|
|
11
|
+
id: string;
|
|
12
|
+
title: string;
|
|
13
|
+
completed: boolean;
|
|
14
|
+
disabled: boolean;
|
|
15
|
+
subtitle: string;
|
|
16
|
+
badge_text: string;
|
|
17
|
+
isLaunchTask: boolean;
|
|
18
|
+
calypso_path: string;
|
|
19
|
+
} | {
|
|
20
|
+
id: string;
|
|
21
|
+
title: string;
|
|
22
|
+
completed: boolean;
|
|
23
|
+
disabled: boolean;
|
|
24
|
+
subtitle: string;
|
|
25
|
+
badge_text: string;
|
|
26
|
+
isLaunchTask: boolean;
|
|
27
|
+
calypso_path?: undefined;
|
|
28
|
+
})[];
|
|
29
|
+
is_enabled: boolean;
|
|
30
|
+
is_dismissed: boolean;
|
|
31
|
+
is_dismissible: boolean;
|
|
32
|
+
title: string;
|
|
33
|
+
};
|
|
34
|
+
export default _default;
|
|
35
|
+
//# sourceMappingURL=setup-free.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"setup-free.d.ts","sourceRoot":"","sources":["../../../src/msw/setup-free.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,wBAoFE"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import type { LaunchpadTaskActionsProps, Task } from './types';
|
|
2
|
-
export declare const setUpActionsForTasks: ({ siteSlug, tasks, tracksData, extraActions, uiContext, }: LaunchpadTaskActionsProps) => Task[];
|
|
2
|
+
export declare const setUpActionsForTasks: ({ siteSlug, tasks, tracksData, extraActions, eventHandlers, uiContext, }: LaunchpadTaskActionsProps) => Task[];
|
|
3
3
|
//# sourceMappingURL=setup-actions.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"setup-actions.d.ts","sourceRoot":"","sources":["../../src/setup-actions.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"setup-actions.d.ts","sourceRoot":"","sources":["../../src/setup-actions.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,yBAAyB,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAe/D,eAAO,MAAM,oBAAoB,6EAO9B,yBAAyB,KAAI,IAAI,EAwJnC,CAAC"}
|
package/dist/types/types.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
|
|
1
|
+
import { ReactNode } from 'react';
|
|
2
2
|
export interface TaskExtraData {
|
|
3
3
|
about_page_id?: number;
|
|
4
4
|
}
|
|
@@ -6,9 +6,9 @@ export interface Task {
|
|
|
6
6
|
id: string;
|
|
7
7
|
completed: boolean;
|
|
8
8
|
disabled: boolean;
|
|
9
|
-
title?: string;
|
|
9
|
+
title?: ReactNode | string;
|
|
10
10
|
subtitle?: string | React.ReactNode | null;
|
|
11
|
-
badge_text?: string;
|
|
11
|
+
badge_text?: ReactNode | string;
|
|
12
12
|
actionDispatch?: () => void;
|
|
13
13
|
isLaunchTask?: boolean;
|
|
14
14
|
extra_data?: TaskExtraData;
|
|
@@ -16,6 +16,17 @@ export interface Task {
|
|
|
16
16
|
target_repetitions?: number;
|
|
17
17
|
repetition_count?: number;
|
|
18
18
|
order?: number;
|
|
19
|
+
useCalypsoPath?: boolean;
|
|
20
|
+
actionUrl?: string;
|
|
21
|
+
}
|
|
22
|
+
export interface ExpandableAction {
|
|
23
|
+
label: string;
|
|
24
|
+
onClick: () => void;
|
|
25
|
+
}
|
|
26
|
+
export interface Expandable {
|
|
27
|
+
isOpen: boolean;
|
|
28
|
+
content: JSX.Element;
|
|
29
|
+
action?: ExpandableAction;
|
|
19
30
|
}
|
|
20
31
|
export type LaunchpadChecklist = Task[];
|
|
21
32
|
export type LaunchpadTracksData = {
|
|
@@ -44,21 +55,20 @@ export interface LaunchpadStatuses {
|
|
|
44
55
|
plan_completed?: boolean;
|
|
45
56
|
domain_upsell_deferred?: boolean;
|
|
46
57
|
}
|
|
47
|
-
export interface LaunchpadResponse {
|
|
48
|
-
site_intent: string;
|
|
49
|
-
launchpad_screen: boolean | string;
|
|
50
|
-
checklist_statuses: LaunchpadStatuses[];
|
|
51
|
-
}
|
|
52
58
|
export interface PermittedActions {
|
|
53
59
|
setShareSiteModalIsOpen?: (isOpen: boolean) => void;
|
|
54
|
-
siteLaunched?: () => void;
|
|
55
60
|
setActiveChecklist: (siteSlug: string, activeChecklistSlug: string) => void;
|
|
56
61
|
}
|
|
62
|
+
export type EventHandlers = {
|
|
63
|
+
onSiteLaunched?: () => void;
|
|
64
|
+
onTaskClick?: (task: Task) => void;
|
|
65
|
+
};
|
|
57
66
|
export interface LaunchpadTaskActionsProps {
|
|
58
67
|
siteSlug: string | null;
|
|
59
68
|
tasks: Task[];
|
|
60
69
|
tracksData: LaunchpadTracksData;
|
|
61
70
|
extraActions: PermittedActions;
|
|
62
71
|
uiContext?: 'calypso';
|
|
72
|
+
eventHandlers?: EventHandlers;
|
|
63
73
|
}
|
|
64
74
|
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAElC,MAAM,WAAW,aAAa;IAC7B,aAAa,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,IAAI;IACpB,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,OAAO,CAAC;IACnB,QAAQ,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,SAAS,GAAG,MAAM,CAAC;IAC3B,QAAQ,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC;IAC3C,UAAU,CAAC,EAAE,SAAS,GAAG,MAAM,CAAC;IAChC,cAAc,CAAC,EAAE,MAAM,IAAI,CAAC;IAC5B,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,UAAU,CAAC,EAAE,aAAa,CAAC;IAC3B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,gBAAgB;IAChC,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,IAAI,CAAC;CACpB;AAED,MAAM,WAAW,UAAU;IAC1B,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,EAAE,GAAG,CAAC,OAAO,CAAC;IACrB,MAAM,CAAC,EAAE,gBAAgB,CAAC;CAC1B;AAED,MAAM,MAAM,kBAAkB,GAAG,IAAI,EAAE,CAAC;AAExC,MAAM,MAAM,mBAAmB,GAAG;IACjC,aAAa,EAAE,MAAM,CAAC;IACtB,gBAAgB,EAAE,MAAM,CAAC;IACzB,iBAAiB,EAAE,CAAE,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,CAAE,MAAM,EAAE,OAAO,CAAE,KAAM,IAAI,CAAC;IACpF,iBAAiB,EAAE,OAAO,CAAC;CAC3B,CAAC;AAEF,MAAM,WAAW,qBAAqB;IACrC,CAAE,MAAM,EAAE,MAAM,GAAI,MAAM,EAAE,CAAC;CAC7B;AAED,MAAM,WAAW,0BAA0B;IAC1C,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,iBAAiB;IACjC,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,sBAAsB,CAAC,EAAE,OAAO,CAAC;CACjC;AAED,MAAM,WAAW,gBAAgB;IAChC,uBAAuB,CAAC,EAAE,CAAE,MAAM,EAAE,OAAO,KAAM,IAAI,CAAC;IACtD,kBAAkB,EAAE,CAAE,QAAQ,EAAE,MAAM,EAAE,mBAAmB,EAAE,MAAM,KAAM,IAAI,CAAC;CAC9E;AAED,MAAM,MAAM,aAAa,GAAG;IAC3B,cAAc,CAAC,EAAE,MAAM,IAAI,CAAC;IAC5B,WAAW,CAAC,EAAE,CAAE,IAAI,EAAE,IAAI,KAAM,IAAI,CAAC;CACrC,CAAC;AAEF,MAAM,WAAW,yBAAyB;IACzC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,KAAK,EAAE,IAAI,EAAE,CAAC;IACd,UAAU,EAAE,mBAAmB,CAAC;IAChC,YAAY,EAAE,gBAAgB,CAAC;IAC/B,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,aAAa,CAAC,EAAE,aAAa,CAAC;CAC9B"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { Task } from '../types';
|
|
2
|
+
import type { SiteDetails } from '@automattic/data-stores';
|
|
3
|
+
interface Params {
|
|
4
|
+
tasks: Task[];
|
|
5
|
+
checklistSlug: string | null;
|
|
6
|
+
context: string;
|
|
7
|
+
site: SiteDetails | null | undefined;
|
|
8
|
+
flow?: string;
|
|
9
|
+
}
|
|
10
|
+
export declare const useTracking: (params: Params) => {
|
|
11
|
+
trackTaskClick: (task: Task) => void;
|
|
12
|
+
};
|
|
13
|
+
export {};
|
|
14
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/use-tracking/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AACrC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAE3D,UAAU,MAAM;IACf,KAAK,EAAE,IAAI,EAAE,CAAC;IACd,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,WAAW,GAAG,IAAI,GAAG,SAAS,CAAC;IACrC,IAAI,CAAC,EAAE,MAAM,CAAC;CACd;AAWD,eAAO,MAAM,WAAW,WAAa,MAAM;2BAiDX,IAAI;CAenC,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@automattic/launchpad",
|
|
3
|
-
"version": "1.0.
|
|
4
|
-
"description": "Launchpad components",
|
|
3
|
+
"version": "1.0.1",
|
|
4
|
+
"description": "Launchpad components.",
|
|
5
5
|
"homepage": "https://github.com/Automattic/wp-calypso",
|
|
6
6
|
"license": "GPL-2.0-or-later",
|
|
7
7
|
"author": "Automattic Inc.",
|
|
@@ -26,34 +26,42 @@
|
|
|
26
26
|
"clean": "tsc --build ./tsconfig.json ./tsconfig-cjs.json --clean && rm -rf dist",
|
|
27
27
|
"build": "tsc --build ./tsconfig.json ./tsconfig-cjs.json && copy-assets",
|
|
28
28
|
"prepack": "yarn run clean && yarn run build",
|
|
29
|
-
"watch": "tsc --build ./tsconfig.json --watch"
|
|
29
|
+
"watch": "tsc --build ./tsconfig.json --watch",
|
|
30
|
+
"storybook": "sb dev"
|
|
30
31
|
},
|
|
31
32
|
"dependencies": {
|
|
32
|
-
"@automattic/components": "^2.
|
|
33
|
+
"@automattic/components": "^2.1.1",
|
|
33
34
|
"@automattic/data-stores": "^3.0.1",
|
|
34
|
-
"@automattic/i18n-utils": "^1.2.
|
|
35
|
-
"
|
|
35
|
+
"@automattic/i18n-utils": "^1.2.3",
|
|
36
|
+
"@wordpress/components": "^28.8.0",
|
|
37
|
+
"clsx": "^2.1.1",
|
|
36
38
|
"tslib": "^2.3.0",
|
|
37
39
|
"utility-types": "^3.10.0",
|
|
38
|
-
"wpcom-proxy-request": "^7.0.
|
|
40
|
+
"wpcom-proxy-request": "^7.0.5"
|
|
39
41
|
},
|
|
40
42
|
"devDependencies": {
|
|
41
43
|
"@automattic/calypso-build": "^10.0.0",
|
|
44
|
+
"@automattic/calypso-storybook": "^1.0.0",
|
|
42
45
|
"@automattic/calypso-typescript-config": "^1.0.0",
|
|
46
|
+
"@storybook/addon-a11y": "^7.6.19",
|
|
47
|
+
"@storybook/cli": "^7.6.19",
|
|
48
|
+
"@storybook/react": "^7.6.19",
|
|
49
|
+
"msw": "^2.1.7",
|
|
50
|
+
"msw-storybook-addon": "2.0.2",
|
|
43
51
|
"postcss": "^8.4.5",
|
|
44
|
-
"react": "^18.
|
|
45
|
-
"react-dom": "^18.
|
|
52
|
+
"react": "^18.3.1",
|
|
53
|
+
"react-dom": "^18.3.1",
|
|
46
54
|
"redux": "^4.2.1",
|
|
47
|
-
"typescript": "^5.
|
|
48
|
-
"webpack": "^5.
|
|
55
|
+
"typescript": "^5.3.3",
|
|
56
|
+
"webpack": "^5.94.0"
|
|
49
57
|
},
|
|
50
58
|
"peerDependencies": {
|
|
51
|
-
"@wordpress/data": "^
|
|
52
|
-
"@wordpress/element": "^
|
|
53
|
-
"@wordpress/i18n": "^
|
|
59
|
+
"@wordpress/data": "^10.8.0",
|
|
60
|
+
"@wordpress/element": "^6.8.0",
|
|
61
|
+
"@wordpress/i18n": "^5.8.0",
|
|
54
62
|
"debug": "^4.3.3",
|
|
55
|
-
"react": "^18.
|
|
56
|
-
"react-dom": "^18.
|
|
63
|
+
"react": "^18.3.1",
|
|
64
|
+
"react-dom": "^18.3.1",
|
|
57
65
|
"redux": "^4.2.1"
|
|
58
66
|
}
|
|
59
67
|
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default as ShareSiteModal } from './share-site-modal';
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
import { Popover } from '@automattic/components';
|
|
2
|
+
import { updateLaunchpadSettings } from '@automattic/data-stores';
|
|
3
|
+
import { useQueryClient } from '@tanstack/react-query';
|
|
4
|
+
import { Button, Modal } from '@wordpress/components';
|
|
5
|
+
import { Icon, link } from '@wordpress/icons';
|
|
6
|
+
import { useTranslate } from 'i18n-calypso';
|
|
7
|
+
import { useState, useRef } from 'react';
|
|
8
|
+
import type { SiteDetails } from '@automattic/data-stores';
|
|
9
|
+
|
|
10
|
+
import './style.scss';
|
|
11
|
+
|
|
12
|
+
interface ShareSiteModalProps {
|
|
13
|
+
setModalIsOpen: ( isOpen: boolean ) => void;
|
|
14
|
+
site: SiteDetails | null;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
const ShareSiteModal = ( { setModalIsOpen, site }: ShareSiteModalProps ) => {
|
|
18
|
+
const translate = useTranslate();
|
|
19
|
+
const queryClient = useQueryClient();
|
|
20
|
+
const getSiteSlug = ( site: SiteDetails | null ): string | null => {
|
|
21
|
+
if ( ! site ) {
|
|
22
|
+
return null;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
if ( site.slug ) {
|
|
26
|
+
return site.slug;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
if ( site.URL ) {
|
|
30
|
+
return new URL( site.URL ).host;
|
|
31
|
+
}
|
|
32
|
+
return null;
|
|
33
|
+
};
|
|
34
|
+
const siteSlug = getSiteSlug( site );
|
|
35
|
+
|
|
36
|
+
const [ clipboardCopied, setClipboardCopied ] = useState( false );
|
|
37
|
+
const clipboardTextEl = useRef( null );
|
|
38
|
+
|
|
39
|
+
const copyHandler = async () => {
|
|
40
|
+
navigator.clipboard.writeText( `https://${ siteSlug }` );
|
|
41
|
+
if ( siteSlug ) {
|
|
42
|
+
await updateLaunchpadSettings( siteSlug, {
|
|
43
|
+
checklist_statuses: { share_site: true },
|
|
44
|
+
} );
|
|
45
|
+
}
|
|
46
|
+
queryClient.invalidateQueries( { queryKey: [ 'launchpad' ] } );
|
|
47
|
+
setClipboardCopied( true );
|
|
48
|
+
setTimeout( () => setClipboardCopied( false ), 3000 );
|
|
49
|
+
};
|
|
50
|
+
|
|
51
|
+
return (
|
|
52
|
+
<>
|
|
53
|
+
<Modal
|
|
54
|
+
onRequestClose={ () => setModalIsOpen( false ) }
|
|
55
|
+
className="share-site-modal__modal"
|
|
56
|
+
title=""
|
|
57
|
+
>
|
|
58
|
+
<div className="share-site-modal__modal-content">
|
|
59
|
+
<div className="share-site-modal__modal-text">
|
|
60
|
+
<h1 className="share-site-modal__modal-heading">{ translate( 'Share your site' ) }</h1>
|
|
61
|
+
<p className="share-site-modal__modal-body">
|
|
62
|
+
{ translate( 'Now you can head over to your site and share it with the world.' ) }
|
|
63
|
+
</p>
|
|
64
|
+
</div>
|
|
65
|
+
<div className="share-site-modal__modal-actions">
|
|
66
|
+
<div className="share-site-modal__modal-site">
|
|
67
|
+
<div className="share-site-modal__modal-domain">
|
|
68
|
+
<p className="share-site-modal__modal-domain-text" ref={ clipboardTextEl }>
|
|
69
|
+
{ siteSlug }
|
|
70
|
+
</p>
|
|
71
|
+
|
|
72
|
+
<Popover
|
|
73
|
+
className="share-site-modal__popover"
|
|
74
|
+
isVisible={ clipboardCopied }
|
|
75
|
+
context={ clipboardTextEl.current }
|
|
76
|
+
position="top"
|
|
77
|
+
>
|
|
78
|
+
{ translate( 'Copied to clipboard!' ) }
|
|
79
|
+
</Popover>
|
|
80
|
+
</div>
|
|
81
|
+
|
|
82
|
+
<Button
|
|
83
|
+
onClick={ copyHandler }
|
|
84
|
+
className="share-site-modal__modal-view-site"
|
|
85
|
+
disabled={ ! siteSlug }
|
|
86
|
+
>
|
|
87
|
+
<Icon icon={ link } size={ 22 } />
|
|
88
|
+
<span className="share-site-modal__modal-view-site-text">
|
|
89
|
+
{ translate( 'Copy' ) }
|
|
90
|
+
</span>
|
|
91
|
+
</Button>
|
|
92
|
+
</div>
|
|
93
|
+
</div>
|
|
94
|
+
</div>
|
|
95
|
+
</Modal>
|
|
96
|
+
</>
|
|
97
|
+
);
|
|
98
|
+
};
|
|
99
|
+
|
|
100
|
+
export default ShareSiteModal;
|