playbook_ui 11.4.0.pre.alpha.rubytheme2 → 11.4.0
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.
- checksums.yaml +4 -4
- data/app/pb_kits/playbook/pb_date/_date.tsx +1 -1
- data/app/pb_kits/playbook/pb_date_time/{_date_time.tsx → _date_time.jsx} +5 -2
- data/app/pb_kits/playbook/pb_date_time/docs/_date_time_align.jsx +1 -1
- data/app/pb_kits/playbook/pb_date_time/docs/_date_time_default.jsx +1 -1
- data/app/pb_kits/playbook/pb_date_time/docs/_date_time_size.jsx +1 -1
- data/app/pb_kits/playbook/pb_dialog/_dialog.jsx +14 -32
- data/app/pb_kits/playbook/pb_dialog/_dialog.scss +0 -5
- data/app/pb_kits/playbook/pb_dialog/child_kits/_dialog_body.jsx +2 -2
- data/app/pb_kits/playbook/pb_dialog/child_kits/_dialog_footer.jsx +4 -22
- data/app/pb_kits/playbook/pb_dialog/child_kits/_dialog_header.jsx +3 -3
- data/app/pb_kits/playbook/pb_dialog/dialog.test.jsx +17 -79
- data/app/pb_kits/playbook/pb_dialog/docs/_dialog_stacked_alert.jsx +93 -55
- data/app/pb_kits/playbook/pb_dialog/docs/_dialog_status.jsx +42 -79
- data/app/pb_kits/playbook/pb_hashtag/_hashtag.tsx +1 -10
- data/app/pb_kits/playbook/pb_hashtag/docs/example.yml +0 -2
- data/app/pb_kits/playbook/pb_hashtag/docs/index.js +0 -1
- data/app/pb_kits/playbook/pb_hashtag/hashtag.html.erb +1 -1
- data/app/pb_kits/playbook/pb_hashtag/hashtag.rb +0 -6
- data/app/pb_kits/playbook/pb_home_address_street/_home_address_street.jsx +0 -3
- data/app/pb_kits/playbook/pb_home_address_street/city_emphasis.html.erb +1 -2
- data/app/pb_kits/playbook/pb_home_address_street/city_emphasis.rb +0 -2
- data/app/pb_kits/playbook/pb_home_address_street/docs/example.yml +0 -3
- data/app/pb_kits/playbook/pb_home_address_street/docs/index.js +0 -1
- data/app/pb_kits/playbook/pb_home_address_street/home_address_street.rb +0 -4
- data/app/pb_kits/playbook/pb_home_address_street/street_emphasis.html.erb +1 -2
- data/app/pb_kits/playbook/pb_home_address_street/street_emphasis.rb +1 -4
- data/app/pb_kits/playbook/pb_time/_time.tsx +2 -2
- data/app/pb_kits/playbook/tokens/_colors.scss +74 -74
- data/app/pb_kits/playbook/tokens/_typography.scss +8 -8
- data/lib/playbook/version.rb +2 -2
- metadata +6 -14
- data/app/pb_kits/playbook/pb_date_time/dateTime.test.js +0 -110
- data/app/pb_kits/playbook/pb_hashtag/docs/_hashtag_link.html.erb +0 -5
- data/app/pb_kits/playbook/pb_hashtag/docs/_hashtag_link.jsx +0 -26
- data/app/pb_kits/playbook/pb_hashtag/docs/_hashtag_link.md +0 -1
- data/app/pb_kits/playbook/pb_hashtag/hashtag.test.js +0 -54
- data/app/pb_kits/playbook/pb_home_address_street/docs/_home_address_street_link.html.erb +0 -12
- data/app/pb_kits/playbook/pb_home_address_street/docs/_home_address_street_link.jsx +0 -23
- data/app/pb_kits/playbook/pb_home_address_street/docs/_home_address_street_link.md +0 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 638051af443b06b03b9de8a9092d21f8ce06f3806e60bd43cec8463ce428a69a
|
4
|
+
data.tar.gz: c43d207810694a318a13280bb917b8a295cb44310e05433a262639bee6b8778e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 80aad4d2179d46bc3332b631a1f4e4e90640d61b3cbd3bfa1894cd8e5710f20ecea86f8d71cada0811e9ac434a99c70cd31a7622c33df2434d82370b5f0a9157
|
7
|
+
data.tar.gz: 8a8562a4d3efced667089ca24567758a341255de55f885d1068c7722b301886d427f07943a03ae391d47a1b1d5b4ce279d7bb80a42d7e53042ed9b22ab71d4dc
|
@@ -1,3 +1,5 @@
|
|
1
|
+
/* @flow */
|
2
|
+
|
1
3
|
import React from 'react'
|
2
4
|
import classnames from 'classnames'
|
3
5
|
|
@@ -10,9 +12,9 @@ import FormattedDate from '../pb_date/_date'
|
|
10
12
|
|
11
13
|
type DateTimeProps = {
|
12
14
|
align?: "left" | "center" | "right",
|
13
|
-
aria?:
|
15
|
+
aria?: object,
|
14
16
|
className?: string,
|
15
|
-
data?:
|
17
|
+
data?: object,
|
16
18
|
datetime: string,
|
17
19
|
id?: string,
|
18
20
|
size?: "sm" | "md",
|
@@ -57,6 +59,7 @@ const DateTime = (props: DateTimeProps) => {
|
|
57
59
|
<FormattedDate
|
58
60
|
showDayOfWeek={showDayOfWeek}
|
59
61
|
size={size}
|
62
|
+
timeZone={timeZone}
|
60
63
|
value={datetime}
|
61
64
|
/>
|
62
65
|
<Time
|
@@ -37,7 +37,7 @@ type DialogProps = {
|
|
37
37
|
opened: boolean,
|
38
38
|
portalClassName?: string,
|
39
39
|
shouldCloseOnOverlayClick: boolean,
|
40
|
-
size?: "sm" | "md" | "lg" | "
|
40
|
+
size?: "sm" | "md" | "lg" | "content",
|
41
41
|
status?: "info" | "caution" | "delete" | "error" | "success",
|
42
42
|
text?: string,
|
43
43
|
title?: string,
|
@@ -53,7 +53,7 @@ const Dialog = (props: DialogProps) => {
|
|
53
53
|
className,
|
54
54
|
data = {},
|
55
55
|
id,
|
56
|
-
size =
|
56
|
+
size = 'md',
|
57
57
|
children,
|
58
58
|
loading = false,
|
59
59
|
opened,
|
@@ -107,35 +107,25 @@ const Dialog = (props: DialogProps) => {
|
|
107
107
|
}
|
108
108
|
|
109
109
|
const sweetAlertStatus = {
|
110
|
-
default: {
|
111
|
-
icon: "exclamation-circle",
|
112
|
-
variant: "default",
|
113
|
-
size: "lg"
|
114
|
-
},
|
115
110
|
info: {
|
116
|
-
icon: "
|
111
|
+
icon: "exclamation-circle",
|
117
112
|
variant: "default",
|
118
|
-
size: "lg"
|
119
113
|
},
|
120
114
|
caution: {
|
121
|
-
icon: "
|
115
|
+
icon: "triangle-warning",
|
122
116
|
variant: "yellow",
|
123
|
-
size: "lg"
|
124
117
|
},
|
125
118
|
delete: {
|
126
|
-
icon: "trash
|
119
|
+
icon: "trash",
|
127
120
|
variant: "red",
|
128
|
-
size: "lg"
|
129
121
|
},
|
130
122
|
error: {
|
131
123
|
icon: "times-circle",
|
132
124
|
variant: "red",
|
133
|
-
size: "lg"
|
134
125
|
},
|
135
126
|
success: {
|
136
127
|
icon: "check-circle",
|
137
128
|
variant: "green",
|
138
|
-
size: "lg"
|
139
129
|
},
|
140
130
|
}
|
141
131
|
|
@@ -160,35 +150,27 @@ const Dialog = (props: DialogProps) => {
|
|
160
150
|
shouldCloseOnOverlayClick={shouldCloseOnOverlayClick}
|
161
151
|
status={status}
|
162
152
|
>
|
163
|
-
<If condition={title
|
153
|
+
<If condition={title}>
|
164
154
|
<Dialog.Header>{title}</Dialog.Header>
|
165
155
|
</If>
|
166
156
|
<If condition={!status && text}>
|
167
|
-
<Dialog.Body>
|
168
|
-
{text}
|
169
|
-
</Dialog.Body>
|
157
|
+
<Dialog.Body>{text}</Dialog.Body>
|
170
158
|
</If>
|
171
159
|
<If condition={status}>
|
172
|
-
<Dialog.Body
|
173
|
-
|
174
|
-
|
175
|
-
<Flex
|
176
|
-
align="center"
|
177
|
-
orientation="column"
|
160
|
+
<Dialog.Body>
|
161
|
+
<Flex align='center'
|
162
|
+
orientation='column'
|
178
163
|
>
|
179
164
|
<IconCircle
|
180
165
|
icon={sweetAlertStatus[status].icon}
|
181
|
-
size={sweetAlertStatus[status].size}
|
182
166
|
variant={sweetAlertStatus[status].variant}
|
183
167
|
/>
|
184
|
-
<Title
|
185
|
-
marginTop="sm"
|
168
|
+
<Title marginY='sm'
|
186
169
|
size={3}
|
187
170
|
>
|
188
171
|
{title}
|
189
172
|
</Title>
|
190
|
-
<Body
|
191
|
-
marginTop="xs"
|
173
|
+
<Body marginY='xs'
|
192
174
|
text={text}
|
193
175
|
/>
|
194
176
|
</Flex>
|
@@ -202,9 +184,9 @@ const Dialog = (props: DialogProps) => {
|
|
202
184
|
>
|
203
185
|
{confirmButton}
|
204
186
|
</Button>
|
205
|
-
<Button id=
|
187
|
+
<Button id='cancel-button'
|
206
188
|
onClick={onCancel}
|
207
|
-
variant=
|
189
|
+
variant='link'
|
208
190
|
>
|
209
191
|
{cancelButton}
|
210
192
|
</Button>
|
@@ -59,7 +59,6 @@
|
|
59
59
|
// Local Variables
|
60
60
|
$gutter: $space_lg;
|
61
61
|
$small: 300px;
|
62
|
-
$status_size: 375px;
|
63
62
|
$medium: 500px;
|
64
63
|
$large: 800px;
|
65
64
|
$animation-duration: 0.2s;
|
@@ -79,10 +78,6 @@
|
|
79
78
|
outline: none;
|
80
79
|
animation-timing-function: $easeInOutQuint;
|
81
80
|
|
82
|
-
&[class*="_status_size"] {
|
83
|
-
width: $status_size;
|
84
|
-
}
|
85
|
-
|
86
81
|
&[class*="_sm"] {
|
87
82
|
width: $small;
|
88
83
|
}
|
@@ -7,8 +7,8 @@ import { globalProps } from '../../utilities/globalProps'
|
|
7
7
|
|
8
8
|
// Body component
|
9
9
|
const DialogBody = (props: DialogBodyProps) => {
|
10
|
-
const { children, padding =
|
11
|
-
const bodyCSS = buildCss(
|
10
|
+
const { children, padding = 'sm', className } = props
|
11
|
+
const bodyCSS = buildCss('dialog_body')
|
12
12
|
const bodySpacing = globalProps(props, { padding })
|
13
13
|
|
14
14
|
return (
|
@@ -9,35 +9,17 @@ import { globalProps } from '../../utilities/globalProps'
|
|
9
9
|
import Flex from '../../pb_flex/_flex'
|
10
10
|
import SectionSeparator from '../../pb_section_separator/_section_separator'
|
11
11
|
|
12
|
-
|
13
|
-
type DialogFooterProps = {
|
14
|
-
aria?: object,
|
15
|
-
children: array<React.ReactNode> | React.ReactNode | string,
|
16
|
-
className?: string,
|
17
|
-
closeable: boolean,
|
18
|
-
data?: object,
|
19
|
-
id?: string,
|
20
|
-
padding?: string,
|
21
|
-
paddingBottom?: string,
|
22
|
-
paddingX?: string,
|
23
|
-
separator: boolean,
|
24
|
-
spacing?: string,
|
25
|
-
}
|
26
|
-
|
27
12
|
// Footer component
|
28
13
|
const DialogFooter = (props: DialogFooterProps) => {
|
29
14
|
const {
|
30
15
|
children,
|
31
|
-
padding =
|
32
|
-
paddingBottom = "sm",
|
33
|
-
paddingX = "sm",
|
16
|
+
padding = 'sm',
|
34
17
|
className,
|
35
|
-
spacing =
|
18
|
+
spacing = 'between',
|
36
19
|
separator = false,
|
37
20
|
} = props
|
38
|
-
|
39
|
-
const
|
40
|
-
const footerSpacing = globalProps(props, { padding, paddingBottom, paddingX })
|
21
|
+
const footerCSS = buildCss('dialog_footer')
|
22
|
+
const footerSpacing = globalProps(props, { padding })
|
41
23
|
|
42
24
|
return (
|
43
25
|
<>
|
@@ -30,8 +30,8 @@ const DialogHeader = (props: DialogHeaderProps) => {
|
|
30
30
|
children,
|
31
31
|
className,
|
32
32
|
data = {},
|
33
|
-
padding =
|
34
|
-
spacing =
|
33
|
+
padding = 'sm',
|
34
|
+
spacing = 'between',
|
35
35
|
closeable = true,
|
36
36
|
separator = true,
|
37
37
|
} = props
|
@@ -39,7 +39,7 @@ const DialogHeader = (props: DialogHeaderProps) => {
|
|
39
39
|
const ariaProps = buildAriaProps(aria)
|
40
40
|
const dataProps = buildDataProps(data)
|
41
41
|
const api = useContext(DialogContext)
|
42
|
-
const headerCSS = buildCss(
|
42
|
+
const headerCSS = buildCss('dialog_header')
|
43
43
|
const headerSpacing = globalProps(props, { padding })
|
44
44
|
|
45
45
|
/* eslint-disable react/jsx-handler-names */
|
@@ -1,85 +1,23 @@
|
|
1
|
-
import React
|
2
|
-
import { render,
|
3
|
-
import { Dialog
|
1
|
+
import React from 'react'
|
2
|
+
import { render, screen } from '../utilities/test-utils'
|
3
|
+
import { Dialog } from '../'
|
4
4
|
|
5
|
-
|
6
|
-
const title="Header Title is the Title Prop"
|
7
|
-
const size="sm"
|
8
|
-
const confirmButton="Okay"
|
9
|
-
const cancelButton="Cancel Button"
|
5
|
+
/* eslint-disable jsx-control-statements/jsx-jcs-no-undef */
|
10
6
|
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
const [isLoading, setIsLoading] = useState(false)
|
16
|
-
return (
|
17
|
-
<>
|
18
|
-
<Button onClick={open}>{'Open Dialog'}</Button>
|
19
|
-
<Dialog
|
20
|
-
cancelButton={cancelButton}
|
21
|
-
className="wrapper"
|
22
|
-
confirmButton={confirmButton}
|
23
|
-
loading={isLoading}
|
24
|
-
onCancel={close}
|
25
|
-
onClose={close}
|
26
|
-
onConfirm={() => setIsLoading(!isLoading)}
|
27
|
-
opened={isOpen}
|
28
|
-
portalClassName="portal"
|
29
|
-
size={size}
|
30
|
-
text={text}
|
31
|
-
title={title}
|
32
|
-
/>
|
33
|
-
</>
|
34
|
-
);
|
35
|
-
}
|
7
|
+
/* See these resources for more testing info:
|
8
|
+
- https://github.com/testing-library/jest-dom#usage for useage and examples
|
9
|
+
- https://jestjs.io/docs/en/using-matchers
|
10
|
+
*/
|
36
11
|
|
37
|
-
test('renders
|
12
|
+
test('Kit renders Dialog', () => {
|
13
|
+
const testId = 'test1'
|
38
14
|
|
39
|
-
|
15
|
+
render(
|
16
|
+
<Dialog
|
17
|
+
data={{ testid: testId }}
|
18
|
+
/>
|
19
|
+
)
|
40
20
|
|
41
|
-
|
42
|
-
|
43
|
-
await waitFor(() => expect(queryByText("Header Title is the Title Prop")).toBeInTheDocument());
|
44
|
-
|
45
|
-
cleanup()
|
21
|
+
const kit = screen.getByTestId(testId)
|
22
|
+
expect(kit).toBeInTheDocument()
|
46
23
|
})
|
47
|
-
|
48
|
-
test("renders the title and body text", async () => {
|
49
|
-
|
50
|
-
const { queryByText } = render(<DialogTest />);
|
51
|
-
|
52
|
-
fireEvent.click(queryByText('Open Dialog'));
|
53
|
-
|
54
|
-
await waitFor(() => expect(queryByText("Header Title is the Title Prop")).toHaveTextContent(title));
|
55
|
-
|
56
|
-
await waitFor(() => expect(queryByText("Hello Body Text, Nice to meet ya.")).toHaveTextContent(text));
|
57
|
-
|
58
|
-
cleanup()
|
59
|
-
});
|
60
|
-
|
61
|
-
test("renders the title and body text", async () => {
|
62
|
-
|
63
|
-
const { queryByText } = render(<DialogTest />);
|
64
|
-
|
65
|
-
fireEvent.click(queryByText('Open Dialog'));
|
66
|
-
|
67
|
-
await waitFor(() => expect(queryByText("Header Title is the Title Prop")).toHaveTextContent(title));
|
68
|
-
|
69
|
-
await waitFor(() => expect(queryByText("Hello Body Text, Nice to meet ya.")).toHaveTextContent(text));
|
70
|
-
|
71
|
-
cleanup()
|
72
|
-
});
|
73
|
-
|
74
|
-
test("renders the buttons", async () => {
|
75
|
-
|
76
|
-
const { queryByText } = render(<DialogTest />);
|
77
|
-
|
78
|
-
fireEvent.click(queryByText('Open Dialog'));
|
79
|
-
|
80
|
-
await waitFor(() => expect(queryByText("Okay")).toHaveTextContent(confirmButton));
|
81
|
-
|
82
|
-
await waitFor(() => expect(queryByText("Cancel Button")).toHaveTextContent(cancelButton));
|
83
|
-
|
84
|
-
cleanup()
|
85
|
-
});
|
@@ -1,6 +1,7 @@
|
|
1
1
|
/* eslint-disable react/jsx-handler-names */
|
2
|
+
|
2
3
|
import React, { useState } from "react"
|
3
|
-
import { Button, Dialog, Flex} from "../.."
|
4
|
+
import { Button, Dialog, Flex, FlexItem, SectionSeparator } from "../.."
|
4
5
|
|
5
6
|
const useDialog = (visible = false) => {
|
6
7
|
const [opened, setOpened] = useState(visible)
|
@@ -9,40 +10,46 @@ const useDialog = (visible = false) => {
|
|
9
10
|
}
|
10
11
|
|
11
12
|
const DialogStackedAlert = () => {
|
12
|
-
const [
|
13
|
-
const [
|
14
|
-
const [
|
13
|
+
const [singleButtonOpen, toggleSingleButtonOpen] = useDialog()
|
14
|
+
const [stackedButtonOpen, toggleStackedButtonOpen] = useDialog()
|
15
|
+
const [singleLinkButtonOpen, toggleSingleLinkButtonOpen] = useDialog()
|
16
|
+
const [twoLinkButtonOpen, toggleTwoLinkButtonOpen] = useDialog()
|
17
|
+
|
15
18
|
|
16
19
|
const dialogs = [
|
17
20
|
{
|
18
|
-
|
19
|
-
status: "default",
|
21
|
+
status: "info",
|
20
22
|
text: "Text explaining why there is an alert",
|
21
23
|
title: "Are you sure?",
|
22
|
-
toggle:
|
23
|
-
visible:
|
24
|
-
|
25
|
-
|
24
|
+
toggle: toggleSingleButtonOpen,
|
25
|
+
visible: singleButtonOpen,
|
26
|
+
confirmedButton:"Ok, Thanks",
|
27
|
+
},
|
28
|
+
{
|
29
|
+
status: "error",
|
30
|
+
text: "Text explaining the error",
|
31
|
+
title: "Error Message",
|
32
|
+
confirmedButton:"Yes, Action",
|
33
|
+
cancelledButton: "Ok, Cancel",
|
34
|
+
toggle: toggleStackedButtonOpen,
|
35
|
+
visible: stackedButtonOpen,
|
26
36
|
},
|
27
37
|
{
|
28
|
-
size: "sm",
|
29
38
|
status: "caution",
|
30
39
|
text: "This is the action you will be taking",
|
31
40
|
title: "Are you sure?",
|
32
|
-
toggle:
|
33
|
-
visible:
|
34
|
-
|
35
|
-
buttonTwoText: "No, Cancel"
|
41
|
+
toggle: toggleSingleLinkButtonOpen,
|
42
|
+
visible: singleLinkButtonOpen,
|
43
|
+
linkConfirmedButton:"Ok, Thanks!"
|
36
44
|
},
|
37
45
|
{
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
buttonTwoText: "No, Cancel"
|
46
|
+
status: "success",
|
47
|
+
text: "Text explaining what is successful",
|
48
|
+
title: "Success",
|
49
|
+
toggle: toggleTwoLinkButtonOpen,
|
50
|
+
visible: twoLinkButtonOpen,
|
51
|
+
linkConfirmedButton:"Ok",
|
52
|
+
linkCancelledButton: "Cancel"
|
46
53
|
}
|
47
54
|
]
|
48
55
|
|
@@ -51,21 +58,27 @@ const DialogStackedAlert = () => {
|
|
51
58
|
<Flex>
|
52
59
|
<Button
|
53
60
|
marginRight="md"
|
54
|
-
onClick={
|
61
|
+
onClick={toggleSingleButtonOpen}
|
62
|
+
>
|
63
|
+
{"1 Button Information Status"}
|
64
|
+
</Button>
|
65
|
+
<Button
|
66
|
+
marginRight="md"
|
67
|
+
onClick={toggleStackedButtonOpen}
|
55
68
|
>
|
56
|
-
{"
|
69
|
+
{"2 Button Error Status"}
|
57
70
|
</Button>
|
58
71
|
<Button
|
59
72
|
marginRight="md"
|
60
|
-
onClick={
|
73
|
+
onClick={toggleSingleLinkButtonOpen}
|
61
74
|
>
|
62
|
-
{"Caution
|
75
|
+
{"1 Link Button Caution"}
|
63
76
|
</Button>
|
64
77
|
<Button
|
65
78
|
marginRight="md"
|
66
|
-
onClick={
|
79
|
+
onClick={toggleTwoLinkButtonOpen}
|
67
80
|
>
|
68
|
-
{"
|
81
|
+
{"2 Link Button Success"}
|
69
82
|
</Button>
|
70
83
|
</Flex>
|
71
84
|
<Flex>
|
@@ -75,36 +88,61 @@ const DialogStackedAlert = () => {
|
|
75
88
|
key={dialog.status}
|
76
89
|
onClose={dialog.toggle}
|
77
90
|
opened={dialog.visible}
|
78
|
-
size=
|
91
|
+
size="sm"
|
79
92
|
status={dialog.status}
|
80
93
|
text={dialog.text}
|
81
94
|
title={dialog.title}
|
82
95
|
>
|
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
|
-
|
96
|
+
<If condition={dialog.cancelledButton || dialog.confirmedButton}>
|
97
|
+
<Dialog.Footer>
|
98
|
+
<Button
|
99
|
+
fullWidth
|
100
|
+
onClick={dialog.toggle}
|
101
|
+
>
|
102
|
+
{dialog.confirmedButton}
|
103
|
+
</Button>
|
104
|
+
</Dialog.Footer>
|
105
|
+
<If condition={dialog.cancelledButton}>
|
106
|
+
<Dialog.Footer paddingTop="none">
|
107
|
+
<Button
|
108
|
+
fullWidth
|
109
|
+
onClick={dialog.toggle}
|
110
|
+
variant="secondary"
|
111
|
+
>
|
112
|
+
{dialog.cancelledButton}
|
113
|
+
</Button>
|
114
|
+
</Dialog.Footer>
|
115
|
+
</If>
|
116
|
+
</If>
|
117
|
+
<If condition={dialog.linkCancelledButton || dialog.linkConfirmedButton} >
|
118
|
+
<SectionSeparator />
|
119
|
+
<Flex
|
120
|
+
inline="flex-container"
|
121
|
+
vertical="stretch"
|
122
|
+
>
|
123
|
+
<FlexItem flex={1} >
|
124
|
+
<Button
|
125
|
+
fullWidth
|
126
|
+
onClick={dialog.toggle}
|
127
|
+
variant="link"
|
128
|
+
>
|
129
|
+
{dialog.linkConfirmedButton}
|
130
|
+
</Button>
|
131
|
+
</FlexItem>
|
132
|
+
<If condition={dialog.linkCancelledButton}>
|
133
|
+
<SectionSeparator orientation="vertical"/>
|
134
|
+
<FlexItem flex={1}>
|
135
|
+
<Button
|
136
|
+
fullWidth
|
137
|
+
onClick={dialog.toggle}
|
138
|
+
variant="link"
|
139
|
+
>
|
140
|
+
{dialog.linkCancelledButton}
|
141
|
+
</Button>
|
142
|
+
</FlexItem>
|
143
|
+
</If>
|
144
|
+
</Flex>
|
145
|
+
</If>
|
108
146
|
</Dialog>
|
109
147
|
))}
|
110
148
|
</Flex>
|