playbook_ui 11.0.1 → 11.1.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 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