playbook_ui 11.0.1 → 11.1.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: adf3fc7a5e3d6a96a2da5b522cceb9b11b46face1e39b20e7ac6ffd961376332
4
- data.tar.gz: c7c333e50ae58b94143647d0afcd917dac3f258899fd67d12c1f0ee7fea36ec4
3
+ metadata.gz: f3c49612b5ff10431ef8ef79803f630de5aafe8dfcdfea74dc234cfba6920af1
4
+ data.tar.gz: e1199ebbc2ec5ecd70229ddef6500a1ebb9a0a31d0e25623d63a0e46034f36c9
5
5
  SHA512:
6
- metadata.gz: 9d63ddc6a9f45fe39828e1b941e3d217da43f5f770e125cb18e8c596430626d8ab5d17833da8120994b3ed2808ce213e35d2df62a3769f4dba7deba6f19fcec1
7
- data.tar.gz: 2ae912dbacbb7070fcb25a38a0dd8561c9913a9fd363526ad37a60388684fba739621f9f1c999cbe92b05a66c940a183895f33ca33775ef7e0b1cdb40e874574
6
+ metadata.gz: 5fe817795f69f7ab21303aa4f0f0f2a72378df01785421a49984bf4058e7253b2901747607c66ad49c8dcd20153fa746d717a67cfaf572fabd96e3910f2708ab
7
+ data.tar.gz: e6598e368c84ef4c8473470bcb756ca2313fccad7d3d8fde22c5df5013773b9e4a4e449daf0f2a25f323f98107f6a46073cb6f0c9372ff644f1e77b409c0959d
@@ -18,6 +18,7 @@ type CurrencyProps = {
18
18
  className?: string,
19
19
  dark?: boolean,
20
20
  data?: object,
21
+ decimals?: 'default' | 'matching',
21
22
  emphasized?: boolean,
22
23
  id?: string,
23
24
  label?: string,
@@ -40,6 +41,7 @@ const Currency = (props: CurrencyProps) => {
40
41
  aria = {},
41
42
  amount,
42
43
  data = {},
44
+ decimals = 'default',
43
45
  emphasized = true,
44
46
  id,
45
47
  unit,
@@ -85,9 +87,12 @@ const Currency = (props: CurrencyProps) => {
85
87
  return isAmount ? num.slice(0, -1) : isUnit ? num.slice(-1) : ''
86
88
  }
87
89
 
88
- const getAmount = abbreviate ? getAbbreviatedValue('amount') : whole,
90
+ const getMatchingDecimalAmount = decimals === "matching" ? amount : whole,
91
+ getMatchingDecimalValue = decimals === "matching" ? '' : `.${decimal}`
92
+
93
+ const getAmount = abbreviate ? getAbbreviatedValue('amount') : getMatchingDecimalAmount,
89
94
  getAbbreviation = abbreviate ? getAbbreviatedValue('unit') : null,
90
- getDecimalValue = abbreviate ? '' : `.${decimal}`
95
+ getDecimalValue = abbreviate ? '' : getMatchingDecimalValue
91
96
 
92
97
  return (
93
98
  <div
@@ -36,6 +36,10 @@ module Playbook
36
36
  prop :abbreviate, type: Playbook::Props::Boolean,
37
37
  default: false
38
38
 
39
+ prop :decimals, type: Playbook::Props::Enum,
40
+ values: %w[default matching],
41
+ default: "default"
42
+
39
43
  def classname
40
44
  generate_classname("pb_currency_kit", align, size, dark_class)
41
45
  end
@@ -84,6 +88,8 @@ module Playbook
84
88
  private
85
89
 
86
90
  def whole_value
91
+ return amount if decimals == "matching"
92
+
87
93
  amount.split(".").first.to_s
88
94
  end
89
95
 
@@ -94,6 +100,8 @@ module Playbook
94
100
  end
95
101
 
96
102
  def units_element
103
+ return "" if decimals == "matching" && !abbreviate && !unit
104
+
97
105
  _, decimal_part = amount.split(".")
98
106
  if unit.nil? && abbreviate == false
99
107
  decimal_part.nil? ? ".00" : ".#{decimal_part}"
@@ -33,3 +33,31 @@ test('abbreviate prop returns proper abbreviated amount', () => {
33
33
  expect(screen.getByTestId('test-billions')).toHaveTextContent('$3.2B')
34
34
  expect(screen.getByTestId('test-trillions')).toHaveTextContent('$3.2T')
35
35
  })
36
+
37
+ test('decimals matching prop returns decimals as title text', () => {
38
+ render(
39
+ <Currency
40
+ amount="320.20"
41
+ data={{ testid: 'test-decimals-matching' }}
42
+ decimals='matching'
43
+ />
44
+ )
45
+
46
+ const currencyKit = screen.getByTestId('test-decimals-matching')
47
+ expect(currencyKit.querySelector('.pb_currency_value')).toHaveTextContent('320.20')
48
+ expect(currencyKit.querySelector('.unit')).toHaveTextContent('')
49
+ })
50
+
51
+ test('decimals default prop returns decimals as body text', () => {
52
+ render(
53
+ <Currency
54
+ amount="320.20"
55
+ data={{ testid: 'test-decimals-default' }}
56
+ decimals='default'
57
+ />
58
+ )
59
+
60
+ const currencyKit = screen.getByTestId('test-decimals-default')
61
+ expect(currencyKit.querySelector('.pb_currency_value')).toHaveTextContent('320')
62
+ expect(currencyKit.querySelector('.unit')).toHaveTextContent('.20')
63
+ })
@@ -0,0 +1,24 @@
1
+ <%= pb_rails("currency", props: {
2
+ amount: "372.12",
3
+ decimals: "matching",
4
+ label: "Small",
5
+ margin_bottom: "md",
6
+ size: "sm",
7
+ unit: "/day",
8
+ }) %>
9
+
10
+ <%= pb_rails("currency", props: {
11
+ amount: "30,327.43",
12
+ decimals: "matching",
13
+ label: "Medium",
14
+ margin_bottom: "md",
15
+ size: "md",
16
+ symbol: "€",
17
+ }) %>
18
+
19
+ <%= pb_rails("currency", props: {
20
+ amount: "621,953.99",
21
+ decimals: "matching",
22
+ label: "Large",
23
+ size: "lg",
24
+ }) %>
@@ -0,0 +1,38 @@
1
+ import React from 'react'
2
+
3
+ import Currency from '../_currency'
4
+
5
+ const CurrencyMatchingDecimals = (props) => {
6
+ return (
7
+ <>
8
+ <Currency
9
+ amount="372.12"
10
+ decimals="matching"
11
+ label="Small"
12
+ marginBottom="md"
13
+ size="sm"
14
+ unit="/day"
15
+ {...props}
16
+ />
17
+ <Currency
18
+ amount="30,327.43"
19
+ decimals="matching"
20
+ label="Medium"
21
+ marginBottom="md"
22
+ size="md"
23
+ symbol="€"
24
+ {...props}
25
+ />
26
+ <Currency
27
+ amount="621,953.99"
28
+ decimals="matching"
29
+ label="Large"
30
+ size="lg"
31
+ {...props}
32
+ />
33
+ </>
34
+ )
35
+ }
36
+
37
+ export default CurrencyMatchingDecimals
38
+
@@ -6,6 +6,7 @@ examples:
6
6
  - currency_alignment: Alignment
7
7
  - currency_no_symbol: No Symbol
8
8
  - currency_abbreviated: Abbreviate Larger Amounts
9
+ - currency_matching_decimals: Matching Decimals
9
10
 
10
11
  react:
11
12
  - currency_variants: Variants
@@ -13,3 +14,4 @@ examples:
13
14
  - currency_alignment: Alignment
14
15
  - currency_no_symbol: No Symbol
15
16
  - currency_abbreviated: Abbreviate Larger Amounts
17
+ - currency_matching_decimals: Matching Decimals
@@ -3,3 +3,4 @@ export { default as CurrencySize } from './_currency_size.jsx'
3
3
  export { default as CurrencyAlignment } from './_currency_alignment.jsx'
4
4
  export { default as CurrencyNoSymbol } from './_currency_no_symbol.jsx'
5
5
  export { default as CurrencyAbbreviated } from './_currency_abbreviated.jsx'
6
+ export { default as CurrencyMatchingDecimals } from './_currency_matching_decimals.jsx'
@@ -1,5 +1,3 @@
1
- /* eslint-disable react/jsx-handler-names */
2
- /* eslint-disable react/no-multi-comp */
3
1
  /* @flow */
4
2
 
5
3
  import React, { useState } from 'react'
@@ -9,18 +7,13 @@ import Modal from 'react-modal'
9
7
  import { buildAriaProps, buildCss, buildDataProps } from '../utilities/props'
10
8
  import { globalProps } from '../utilities/globalProps'
11
9
 
12
- import Body from '../pb_body/_body'
13
10
  import Button from '../pb_button/_button'
14
11
  import DialogHeader from './child_kits/_dialog_header'
15
12
  import DialogFooter from './child_kits/_dialog_footer'
16
13
  import DialogBody from './child_kits/_dialog_body'
17
- import Flex from '../pb_flex/_flex'
18
- import IconCircle from '../pb_icon_circle/_icon_circle'
19
- import Title from '../pb_title/_title'
20
14
  import { DialogContext } from './_dialog_context'
21
15
 
22
16
  type DialogProps = {
23
- alertStyle?: "link" | "single" | "stacked" | "default",
24
17
  aria?: object,
25
18
  cancelButton?: string,
26
19
  children: array<React.ReactNode> | React.ReactNode | string,
@@ -38,7 +31,6 @@ type DialogProps = {
38
31
  portalClassName?: string,
39
32
  shouldCloseOnOverlayClick: boolean,
40
33
  size?: "sm" | "md" | "lg" | "content",
41
- status?: "info" | "caution" | "delete" | "error" | "success",
42
34
  text?: string,
43
35
  title?: string,
44
36
  trigger?: string
@@ -46,7 +38,6 @@ type DialogProps = {
46
38
 
47
39
  const Dialog = (props: DialogProps) => {
48
40
  const {
49
- alertStyle = "default",
50
41
  aria = {},
51
42
  cancelButton,
52
43
  confirmButton,
@@ -62,7 +53,6 @@ const Dialog = (props: DialogProps) => {
62
53
  onClose = () => {},
63
54
  portalClassName,
64
55
  shouldCloseOnOverlayClick = true,
65
- status,
66
56
  text,
67
57
  title,
68
58
  trigger,
@@ -88,15 +78,15 @@ const Dialog = (props: DialogProps) => {
88
78
  className
89
79
  )
90
80
 
91
- const [triggerOpened, setTriggerOpened] = useState(false),
92
- modalIsOpened = trigger ? triggerOpened : opened
93
-
94
81
  const api = {
95
82
  onClose: trigger ? function(){
96
83
  setTriggerOpened(false)
97
84
  } : onClose,
98
85
  }
99
86
 
87
+ const [triggerOpened, setTriggerOpened] = useState(false),
88
+ modalIsOpened = trigger ? triggerOpened : opened
89
+
100
90
  if (trigger) {
101
91
  const modalTrigger = document.querySelector(trigger)
102
92
  modalTrigger.addEventListener('click', () => {
@@ -107,29 +97,6 @@ const Dialog = (props: DialogProps) => {
107
97
  }, { once: true })
108
98
  }
109
99
 
110
- const sweetAlertStatus = {
111
- info: {
112
- icon: "exclamation-circle",
113
- variant: "default",
114
- },
115
- caution: {
116
- icon: "triangle-warning",
117
- variant: "yellow",
118
- },
119
- delete: {
120
- icon: "trash",
121
- variant: "red",
122
- },
123
- error: {
124
- icon: "times-circle",
125
- variant: "red",
126
- },
127
- success: {
128
- icon: "check-circle",
129
- variant: "green",
130
- },
131
- }
132
-
133
100
  return (
134
101
  <DialogContext.Provider value={api}>
135
102
  <div
@@ -138,7 +105,6 @@ const Dialog = (props: DialogProps) => {
138
105
  className={classes}
139
106
  >
140
107
  <Modal
141
- alertStyle={alertStyle}
142
108
  ariaHideApp={false}
143
109
  className={dialogClassNames}
144
110
  closeTimeoutMS={200}
@@ -149,28 +115,14 @@ const Dialog = (props: DialogProps) => {
149
115
  overlayClassName={overlayClassNames}
150
116
  portalClassName={portalClassName}
151
117
  shouldCloseOnOverlayClick={shouldCloseOnOverlayClick}
152
- status={status}
153
118
  >
154
- <Dialog.Body>
155
- <Flex align='center'
156
- orientation='column'
157
- >
158
- <If condition = {sweetAlertStatus[status]}>
159
- <IconCircle
160
- icon={sweetAlertStatus[status].icon}
161
- variant={sweetAlertStatus[status].variant}
162
- />
163
- </If>
164
- <Title marginY='sm'
165
- size={3}
166
- >
167
- {title}
168
- </Title>
169
- <Body marginY='xs'
170
- text={text}
171
- />
172
- </Flex>
173
- </Dialog.Body>
119
+ <If condition={title}>
120
+ <Dialog.Header>{title}</Dialog.Header>
121
+ </If>
122
+ <If condition={text}>
123
+ <Dialog.Body>{text}</Dialog.Body>
124
+ </If>
125
+
174
126
  <If condition={cancelButton && confirmButton}>
175
127
  <Dialog.Footer>
176
128
  <Button
@@ -179,14 +131,16 @@ const Dialog = (props: DialogProps) => {
179
131
  >
180
132
  {confirmButton}
181
133
  </Button>
182
- <Button id='cancel-button'
134
+ <Button
135
+ id="cancel-button"
183
136
  onClick={onCancel}
184
- variant='link'
137
+ variant="link"
185
138
  >
186
139
  {cancelButton}
187
140
  </Button>
188
141
  </Dialog.Footer>
189
142
  </If>
143
+
190
144
  {children}
191
145
  </Modal>
192
146
  </div>
@@ -11,7 +11,7 @@ const DialogDefault = () => {
11
11
  <>
12
12
  <Button onClick={open}>{'Open Dialog'}</Button>
13
13
  <Dialog
14
- cancelButton="Cancel Button"
14
+ cancelButton="Cancel"
15
15
  className="wrapper"
16
16
  confirmButton="Okay"
17
17
  loading={isLoading}
@@ -8,5 +8,3 @@ examples:
8
8
  - dialog_sizes: Sizes
9
9
  - dialog_scrollable: Scrollable
10
10
  - dialog_should_close_on_overlay: Overlay Click
11
- - dialog_status: Status Alert
12
- - dialog_stacked_alert: Stacked Button Alert
@@ -4,5 +4,3 @@ export { default as DialogSizes } from './_dialog_sizes.jsx'
4
4
  export { default as DialogScrollable } from './_dialog_scrollable.jsx'
5
5
  export { default as DialogSeparators } from './_dialog_separators.jsx'
6
6
  export { default as DialogShouldCloseOnOverlay } from './_dialog_should_close_on_overlay.jsx'
7
- export { default as DialogStatus } from './_dialog_status.jsx'
8
- export { default as DialogStackedAlert } from './_dialog_stacked_alert.jsx'
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Playbook
4
- PREVIOUS_VERSION = "11.0.0"
5
- VERSION = "11.0.1"
4
+ PREVIOUS_VERSION = "11.0.1"
5
+ VERSION = "11.1.0"
6
6
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: playbook_ui
3
3
  version: !ruby/object:Gem::Version
4
- version: 11.0.1
4
+ version: 11.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Power UX
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2022-06-14 00:00:00.000000000 Z
12
+ date: 2022-07-08 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: actionpack
@@ -604,6 +604,8 @@ files:
604
604
  - app/pb_kits/playbook/pb_currency/docs/_currency_abbreviated.jsx
605
605
  - app/pb_kits/playbook/pb_currency/docs/_currency_alignment.html.erb
606
606
  - app/pb_kits/playbook/pb_currency/docs/_currency_alignment.jsx
607
+ - app/pb_kits/playbook/pb_currency/docs/_currency_matching_decimals.html.erb
608
+ - app/pb_kits/playbook/pb_currency/docs/_currency_matching_decimals.jsx
607
609
  - app/pb_kits/playbook/pb_currency/docs/_currency_no_symbol.html.erb
608
610
  - app/pb_kits/playbook/pb_currency/docs/_currency_no_symbol.jsx
609
611
  - app/pb_kits/playbook/pb_currency/docs/_currency_size.html.erb
@@ -800,10 +802,6 @@ files:
800
802
  - app/pb_kits/playbook/pb_dialog/docs/_dialog_should_close_on_overlay.jsx
801
803
  - app/pb_kits/playbook/pb_dialog/docs/_dialog_should_close_on_overlay.md
802
804
  - app/pb_kits/playbook/pb_dialog/docs/_dialog_sizes.jsx
803
- - app/pb_kits/playbook/pb_dialog/docs/_dialog_stacked_alert.jsx
804
- - app/pb_kits/playbook/pb_dialog/docs/_dialog_stacked_alert.md
805
- - app/pb_kits/playbook/pb_dialog/docs/_dialog_status.jsx
806
- - app/pb_kits/playbook/pb_dialog/docs/_dialog_status.md
807
805
  - app/pb_kits/playbook/pb_dialog/docs/example.yml
808
806
  - app/pb_kits/playbook/pb_dialog/docs/index.js
809
807
  - app/pb_kits/playbook/pb_distribution_bar/_distribution_bar.jsx
@@ -1,153 +0,0 @@
1
- /* eslint-disable react/jsx-handler-names */
2
-
3
- import React, { useState } from "react"
4
- import { Button, Dialog, Flex, FlexItem, SectionSeparator } from "../.."
5
-
6
- const useDialog = (visible = false) => {
7
- const [opened, setOpened] = useState(visible)
8
- const toggle = () => setOpened(!opened)
9
- return [opened, toggle]
10
- }
11
-
12
- const DialogStackedAlert = () => {
13
- const [singleButtonOpen, toggleSingleButtonOpen] = useDialog()
14
- const [stackedButtonOpen, toggleStackedButtonOpen] = useDialog()
15
- const [singleLinkButtonOpen, toggleSingleLinkButtonOpen] = useDialog()
16
- const [twoLinkButtonOpen, toggleTwoLinkButtonOpen] = useDialog()
17
-
18
-
19
- const dialogs = [
20
- {
21
- status: "info",
22
- text: "Text explaining why there is an alert",
23
- title: "Are you sure?",
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,
36
- },
37
- {
38
- status: "caution",
39
- text: "This is the action you will be taking",
40
- title: "Are you sure?",
41
- toggle: toggleSingleLinkButtonOpen,
42
- visible: singleLinkButtonOpen,
43
- linkConfirmedButton:"Ok, Thanks!"
44
- },
45
- {
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"
53
- }
54
- ]
55
-
56
- return (
57
- <div>
58
- <Flex>
59
- <Button
60
- marginX="md"
61
- onClick={toggleSingleButtonOpen}
62
- >
63
- {"1 Button Information Status"}
64
- </Button>
65
- <Button
66
- marginX="md"
67
- onClick={toggleStackedButtonOpen}
68
- >
69
- {"2 Button Error Status"}
70
- </Button>
71
- <Button
72
- marginX="md"
73
- onClick={toggleSingleLinkButtonOpen}
74
- >
75
- {"1 Link Button Caution"}
76
- </Button>
77
- <Button
78
- marginX="md"
79
- onClick={toggleTwoLinkButtonOpen}
80
- >
81
- {"2 Link Button Success"}
82
- </Button>
83
- </Flex>
84
- <Flex>
85
- {dialogs.map((dialog) => (
86
- <Dialog
87
- alertStyle={dialog.alertStyle}
88
- key={dialog.status}
89
- onClose={dialog.toggle}
90
- opened={dialog.visible}
91
- size="sm"
92
- status={dialog.status}
93
- text={dialog.text}
94
- title={dialog.title}
95
- >
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>
146
- </Dialog>
147
- ))}
148
- </Flex>
149
- </div>
150
- )
151
- }
152
-
153
- export default DialogStackedAlert
@@ -1 +0,0 @@
1
- This is designed to show you how the buttons can stack with different alert styles. It also has a link style for the buttons for the mobile views.
@@ -1,130 +0,0 @@
1
- /* eslint-disable react/jsx-handler-names */
2
- /* @flow */
3
-
4
- import React, { useState } from "react"
5
- import { Button, Dialog, Flex } from "../.."
6
-
7
- const useDialog = (visible = false) => {
8
- const [opened, setOpened] = useState(visible)
9
- const toggle = () => setOpened(!opened)
10
- return [opened, toggle]
11
-
12
- }
13
-
14
- const DialogStatus = () => {
15
- const [infoAlertOpened, toggleInfoAlert] = useDialog()
16
- const [cautionAlertOpened, toggleCautionAlert] = useDialog()
17
- const [successAlertOpened, toggleSuccessAlert] = useDialog()
18
- const [errorAlertOpened, toggleErrorAlert] = useDialog()
19
- const [deleteAlertOpened, toggleDeleteAlert] = useDialog()
20
-
21
- const dialogs = [
22
- {
23
- status: "info",
24
- text: "Text explaining why there is an alert",
25
- title: "Are you Sure?",
26
- toggle: toggleInfoAlert,
27
- visible: infoAlertOpened,
28
- buttonOneText:"No, Cancel",
29
- buttonTwoText: "Yes, Action"
30
- },
31
- {
32
- status: "caution",
33
- text: "This is the action you will be taking",
34
- title: "Are you Sure?",
35
- toggle: toggleCautionAlert,
36
- visible: cautionAlertOpened,
37
- buttonOneText:"No, Cancel",
38
- buttonTwoText: "Yes, Action"
39
- },
40
- {
41
- status: "delete",
42
- text: "You are about to delete ...",
43
- title: "Delete",
44
- toggle: toggleDeleteAlert,
45
- visible: deleteAlertOpened,
46
- buttonOneText:"No, Cancel",
47
- buttonTwoText: "Yes, Delete"
48
- },
49
- {
50
- status: "error",
51
- text: "Text explaining the error",
52
- title: "Error Message",
53
- toggle: toggleErrorAlert,
54
- visible: errorAlertOpened,
55
- buttonOneText:"No, Cancel",
56
- buttonTwoText: "Ok, Thanks"
57
- },
58
- {
59
- status: "success",
60
- text: "Text explaining what is successful",
61
- title: "Success!",
62
- toggle: toggleSuccessAlert,
63
- visible: successAlertOpened,
64
- buttonOneText:"No, Cancel",
65
- buttonTwoText: "Ok, Thanks"
66
- },
67
- ]
68
-
69
- return (
70
- <div>
71
- <Flex>
72
- <Button
73
- marginX="md"
74
- onClick={toggleInfoAlert}
75
- >
76
- {"Information Status"}
77
- </Button>
78
- <Button
79
- marginX="md"
80
- onClick={toggleCautionAlert}
81
- >
82
- {"Caution Status"}
83
- </Button>
84
- <Button
85
- marginX="md"
86
- onClick={toggleSuccessAlert}
87
- >
88
- {"Success Status"}
89
- </Button>
90
- <Button onClick={toggleErrorAlert}>
91
- {"Error Status"}
92
- </Button>
93
- <Button
94
- marginX="md"
95
- onClick={toggleDeleteAlert}
96
- >
97
- {"Delete Status"}
98
- </Button>
99
- </Flex>
100
- <Flex>
101
- {dialogs.map((dialog) => (
102
- <Dialog
103
- key={dialog.status}
104
- onClose={dialog.toggle}
105
- opened={dialog.visible}
106
- status={dialog.status}
107
- text={dialog.text}
108
- title={dialog.title}
109
- >
110
- <Dialog.Footer>
111
- <Button
112
- onClick={dialog.toggle}
113
- variant="secondary"
114
- >
115
- {dialog.buttonOneText}
116
- </Button>
117
- <Button
118
- onClick={dialog.toggle}
119
- >
120
- {dialog.buttonTwoText}
121
- </Button>
122
- </Dialog.Footer>
123
- </Dialog>
124
- ))}
125
- </Flex>
126
- </div>
127
- )
128
- }
129
-
130
- export default DialogStatus
@@ -1 +0,0 @@
1
- This shows the different alert statuses that can be used for dialog boxes. These all have two buttons which is a default