@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
|
@@ -1,96 +0,0 @@
|
|
|
1
|
-
import { render, screen } from '@testing-library/react';
|
|
2
|
-
import React from 'react';
|
|
3
|
-
import ChecklistItem from '../checklist-item';
|
|
4
|
-
import { buildTask } from './lib/fixtures';
|
|
5
|
-
import '@testing-library/jest-dom';
|
|
6
|
-
|
|
7
|
-
describe( 'ChecklistItem', () => {
|
|
8
|
-
describe( 'when the task requires a badge', () => {
|
|
9
|
-
it( 'displays a badge', () => {
|
|
10
|
-
const badge_text = 'Badge Text';
|
|
11
|
-
render( <ChecklistItem task={ buildTask( { badge_text } ) } /> );
|
|
12
|
-
expect( screen.getByText( badge_text ) ).toBeTruthy();
|
|
13
|
-
} );
|
|
14
|
-
} );
|
|
15
|
-
|
|
16
|
-
describe( 'when the task is completed', () => {
|
|
17
|
-
it( 'shows the task completed icon', () => {
|
|
18
|
-
render( <ChecklistItem task={ buildTask( { completed: true } ) } /> );
|
|
19
|
-
const taskCompleteIcon = screen.queryByLabelText( 'Task complete' );
|
|
20
|
-
expect( taskCompleteIcon ).toBeTruthy();
|
|
21
|
-
} );
|
|
22
|
-
it( 'hides the task enabled icon', () => {
|
|
23
|
-
render( <ChecklistItem task={ buildTask( { completed: true } ) } /> );
|
|
24
|
-
const taskEnabledIcon = screen.queryByLabelText( 'Task enabled' );
|
|
25
|
-
expect( taskEnabledIcon ).toBeFalsy();
|
|
26
|
-
} );
|
|
27
|
-
it( 'disables the task', () => {
|
|
28
|
-
render( <ChecklistItem task={ buildTask( { completed: true } ) } /> );
|
|
29
|
-
const taskButton = screen.queryByRole( 'button' );
|
|
30
|
-
expect( taskButton ).toHaveAttribute( 'disabled' );
|
|
31
|
-
} );
|
|
32
|
-
|
|
33
|
-
describe( 'and the task is kept enabled', () => {
|
|
34
|
-
it( 'hides the task enabled icon', () => {
|
|
35
|
-
render( <ChecklistItem task={ buildTask( { completed: true, disabled: false } ) } /> );
|
|
36
|
-
const taskEnabledIcon = screen.queryByLabelText( 'Task enabled' );
|
|
37
|
-
expect( taskEnabledIcon ).toBeFalsy();
|
|
38
|
-
} );
|
|
39
|
-
it( 'enables the task', () => {
|
|
40
|
-
render( <ChecklistItem task={ buildTask( { completed: true, disabled: false } ) } /> );
|
|
41
|
-
const taskButton = screen.queryByRole( 'button' );
|
|
42
|
-
expect( taskButton ).not.toHaveAttribute( 'disabled' );
|
|
43
|
-
} );
|
|
44
|
-
} );
|
|
45
|
-
} );
|
|
46
|
-
|
|
47
|
-
describe( 'when a task is incomplete', () => {
|
|
48
|
-
it( 'hides the task complete icon', () => {
|
|
49
|
-
render( <ChecklistItem task={ buildTask( { completed: false } ) } /> );
|
|
50
|
-
const taskCompleteIcon = screen.queryByLabelText( 'Task complete' );
|
|
51
|
-
expect( taskCompleteIcon ).toBeFalsy();
|
|
52
|
-
} );
|
|
53
|
-
} );
|
|
54
|
-
|
|
55
|
-
describe( 'and the task depends on the completion of other tasks', () => {
|
|
56
|
-
it( 'hides the task enabled icon', () => {
|
|
57
|
-
const otherTaskCompleted = false;
|
|
58
|
-
render(
|
|
59
|
-
<ChecklistItem task={ buildTask( { completed: false, disabled: ! otherTaskCompleted } ) } />
|
|
60
|
-
);
|
|
61
|
-
const taskEnabledIcon = screen.queryByLabelText( 'Task enabled' );
|
|
62
|
-
expect( taskEnabledIcon ).toBeFalsy();
|
|
63
|
-
} );
|
|
64
|
-
it( 'disables the task', () => {
|
|
65
|
-
const otherTaskCompleted = false;
|
|
66
|
-
render(
|
|
67
|
-
<ChecklistItem task={ buildTask( { completed: false, disabled: ! otherTaskCompleted } ) } />
|
|
68
|
-
);
|
|
69
|
-
const taskButton = screen.queryByRole( 'button' );
|
|
70
|
-
expect( taskButton ).toHaveAttribute( 'disabled' );
|
|
71
|
-
} );
|
|
72
|
-
} );
|
|
73
|
-
|
|
74
|
-
describe( 'and the task does not depend on the completion of other tasks', () => {
|
|
75
|
-
it( 'shows the task enabled icon', () => {
|
|
76
|
-
render( <ChecklistItem task={ buildTask( { completed: false, disabled: false } ) } /> );
|
|
77
|
-
const taskEnabledIcon = screen.queryByLabelText( 'Task enabled' );
|
|
78
|
-
expect( taskEnabledIcon ).toBeTruthy();
|
|
79
|
-
} );
|
|
80
|
-
it( 'enables the task', () => {
|
|
81
|
-
render( <ChecklistItem task={ buildTask( { completed: false, disabled: false } ) } /> );
|
|
82
|
-
const taskButton = screen.queryByRole( 'button' );
|
|
83
|
-
expect( taskButton ).not.toHaveAttribute( 'disabled' );
|
|
84
|
-
} );
|
|
85
|
-
} );
|
|
86
|
-
|
|
87
|
-
describe( 'when a task is a primary action', () => {
|
|
88
|
-
it( 'displays a primary button', () => {
|
|
89
|
-
render(
|
|
90
|
-
<ChecklistItem task={ buildTask( { completed: false } ) } isPrimaryAction={ true } />
|
|
91
|
-
);
|
|
92
|
-
const taskButton = screen.queryByRole( 'button' );
|
|
93
|
-
expect( taskButton?.className ).toContain( 'checklist-item__checklist-primary-button' );
|
|
94
|
-
} );
|
|
95
|
-
} );
|
|
96
|
-
} );
|
package/src/test/checklist.tsx
DELETED
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
import { render, screen } from '@testing-library/react';
|
|
2
|
-
import React from 'react';
|
|
3
|
-
import Checklist from '../checklist';
|
|
4
|
-
import { buildTask } from './lib/fixtures';
|
|
5
|
-
import '@testing-library/jest-dom';
|
|
6
|
-
|
|
7
|
-
describe( 'Checklist', () => {
|
|
8
|
-
describe( 'when provided no tasks', () => {
|
|
9
|
-
it( 'then no tasks are rendered', () => {
|
|
10
|
-
render( <Checklist tasks={ [] } /> );
|
|
11
|
-
const checklistItems = screen.queryByRole( 'listitem' );
|
|
12
|
-
expect( checklistItems ).not.toBeInTheDocument();
|
|
13
|
-
} );
|
|
14
|
-
} );
|
|
15
|
-
|
|
16
|
-
describe( 'when a number of tasks are provided', () => {
|
|
17
|
-
it( 'then the same number of tasks are rendered', () => {
|
|
18
|
-
render(
|
|
19
|
-
<Checklist tasks={ [ buildTask( { id: 'task1' } ), buildTask( { id: 'task2' } ) ] } />
|
|
20
|
-
);
|
|
21
|
-
const checklistItems = screen.getAllByRole( 'listitem' );
|
|
22
|
-
expect( checklistItems.length ).toBe( 2 );
|
|
23
|
-
} );
|
|
24
|
-
} );
|
|
25
|
-
} );
|