-
Notifications
You must be signed in to change notification settings - Fork 3
Expand file tree
/
Copy pathActivityControlWidget.stories.tsx
More file actions
122 lines (108 loc) · 3.32 KB
/
Copy pathActivityControlWidget.stories.tsx
File metadata and controls
122 lines (108 loc) · 3.32 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
import React, { useMemo, useState } from "react";
import { loremIpsum } from "react-lorem-ipsum";
import { OverlaysProvider } from "@blueprintjs/core";
import { Meta, StoryFn } from "@storybook/react";
import { helpersArgTypes } from "../../../.storybook/helpers";
import {
ActivityControlWidget,
ActivityControlWidgetAction,
IconButton,
SimpleDialog,
Tag,
TagList,
} from "../../../index";
export default {
title: "Cmem/ActivityControlWidget",
component: ActivityControlWidget,
argTypes: {
progressSpinnerFinishedIcon: {
...helpersArgTypes.exampleIcon,
},
},
} as Meta<typeof ActivityControlWidget>;
const Template: StoryFn<typeof ActivityControlWidget> = (args) => <ActivityControlWidget {...args} />;
export const FullExample = Template.bind({});
const actions: ActivityControlWidgetAction[] = [
{
"data-test-id": "activity-reload-activity",
icon: "item-reload",
action: () => {},
tooltip: "Reload Activity",
disabled: false,
},
{
"data-test-id": "activity-start-activity",
icon: "item-start",
// eslint-disable-next-line no-console
action: () => console.log("start"),
tooltip: "Start Activity",
disabled: false,
},
{
"data-test-id": "activity-stop-activity",
icon: "item-stop",
// eslint-disable-next-line no-console
action: () => console.log("cancel"),
tooltip: "Stop Activity",
disabled: false,
},
{
"data-test-id": "activity-view-data",
icon: "artefact-rawdata",
action: () => {},
tooltip: "preview report",
},
];
const commonWidgetArgs = {
label: loremIpsum({ p: 1, avgSentencesPerParagraph: 1, avgWordsPerSentence: 4, random: false }).toString(),
border: true,
activityActions: actions,
statusMessage: loremIpsum({ p: 1, startWithLoremIpsum: false, random: false }).toString(),
progressSpinner: {
intent: "none",
value: 0.5,
} as const,
} as const;
FullExample.args = {
...commonWidgetArgs,
};
const TemplateWithTags: StoryFn<typeof ActivityControlWidget> = (args) => <ActivityControlWidget {...args} />;
export const WidgetWithTags = TemplateWithTags.bind({});
const widgetTags = (
<TagList>
<Tag small>Tag one</Tag>
<Tag small>Other tag</Tag>
<Tag small>Third keyword</Tag>
</TagList>
);
WidgetWithTags.args = {
...commonWidgetArgs,
tags: widgetTags,
};
export const WidgetWithAdditionalActions: StoryFn<typeof ActivityControlWidget> = (args) => {
const [isOpen, setIsOpen] = useState(false);
const params = useMemo(
() => ({
...commonWidgetArgs,
...args,
additionalActions: args.additionalActions ?? [
<IconButton name="application-explore" onClick={() => setIsOpen(true)} />,
],
}),
[]
);
return (
<OverlaysProvider>
<ActivityControlWidget {...params} />
<SimpleDialog
title="Additional actions dialog"
isOpen={isOpen}
onClose={() => setIsOpen(false)}
canOutsideClickClose
canEscapeKeyClose
>
Modal content
</SimpleDialog>
</OverlaysProvider>
);
};