-
Notifications
You must be signed in to change notification settings - Fork 44
/
Copy pathmulti-static-select-menu.tsx
102 lines (90 loc) · 2.53 KB
/
multi-static-select-menu.tsx
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
import React from "react";
import {
Actions,
Button,
Divider,
Input,
Message,
Modal,
Option,
OptionGroup,
PheliaMessageProps,
Section,
Text,
MultiSelectMenu
} from "../../core";
export function MultiStaticSelectMenuModal() {
return (
<Modal title="Static multi select menu" submit="Submit">
<Input label="Select menu">
<MultiSelectMenu action="selection" placeholder="A placeholder">
<OptionGroup label="an option group">
<Option value="option-a">option a</Option>
<Option value="option-b">option b</Option>
<Option value="option-c">option c</Option>
</OptionGroup>
<OptionGroup label="another option group">
<Option value="option-d">option d</Option>
<Option value="option-e" selected>
option e
</Option>
<Option value="option-f">option f</Option>
</OptionGroup>
</MultiSelectMenu>
</Input>
</Modal>
);
}
export function MultiStaticSelectMenuExample({
useModal,
useState
}: PheliaMessageProps) {
const [form, setForm] = useState("form");
const [selected, setSelected] = useState("selected");
const openModal = useModal("modal", MultiStaticSelectMenuModal, form => {
setForm(JSON.stringify(form, null, 2));
});
return (
<Message text="A multi static select menu example">
{selected && (
<Section>
<Text type="mrkdwn">*Selected:* {selected}</Text>
</Section>
)}
{!selected && (
<Section
text="A Multi-Select Menu in a Section component"
accessory={
<MultiSelectMenu
action="select"
placeholder="A placeholder"
onSelect={event => setSelected(event.selected.join(", "))}
>
<Option value="option-a">option a</Option>
<Option value="option-b" selected>
option b
</Option>
<Option value="option-c" selected>
option c
</Option>
</MultiSelectMenu>
}
/>
)}
<Divider />
<Section
text="You can also have a multi static select menu in a modal"
accessory={
<Button action="open-modal" onClick={() => openModal()}>
Open modal
</Button>
}
/>
{form && (
<Section text="Modal submission:">
<Text type="mrkdwn">{"```\n" + form + "\n```"}</Text>
</Section>
)}
</Message>
);
}