@onehat/ui 0.4.69 → 0.4.71

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.
Files changed (97) hide show
  1. package/package.json +2 -1
  2. package/src/Components/Accordion/Accordion.js +1 -0
  3. package/src/Components/Blank.js +1 -0
  4. package/src/Components/Buttons/BackButton.js +1 -0
  5. package/src/Components/Buttons/Button.js +5 -4
  6. package/src/Components/Buttons/CartButtonWithBadge.js +1 -0
  7. package/src/Components/Buttons/IconButton.js +9 -8
  8. package/src/Components/Buttons/PlusMinusButton.js +5 -4
  9. package/src/Components/Buttons/SquareButton.js +19 -18
  10. package/src/Components/Container/Container.js +1 -0
  11. package/src/Components/Container/ContainerColumn.js +4 -3
  12. package/src/Components/Container/ScreenContainer.js +13 -13
  13. package/src/Components/Container/Splitter.js +33 -28
  14. package/src/Components/Editor/InlineEditor.js +32 -30
  15. package/src/Components/Fab/DynamicFab.js +14 -13
  16. package/src/Components/Fab/FabWithTooltip.js +1 -0
  17. package/src/Components/Filter/DateRange.js +8 -7
  18. package/src/Components/Filter/NumberRange.js +8 -7
  19. package/src/Components/Form/Field/CKEditor/CKEditor.js +1 -0
  20. package/src/Components/Form/Field/Checkbox/CheckboxGroup.js +1 -0
  21. package/src/Components/Form/Field/Color.js +41 -40
  22. package/src/Components/Form/Field/Combo/Combo.js +173 -172
  23. package/src/Components/Form/Field/Combo/PageSizeCombo.js +1 -0
  24. package/src/Components/Form/Field/Date.js +117 -116
  25. package/src/Components/Form/Field/DisplayField.js +6 -5
  26. package/src/Components/Form/Field/File.js +1 -0
  27. package/src/Components/Form/Field/FormikForm.js +1 -0
  28. package/src/Components/Form/Field/Input.js +15 -14
  29. package/src/Components/Form/Field/Json.js +8 -6
  30. package/src/Components/Form/Field/Number.js +31 -30
  31. package/src/Components/Form/Field/RadioGroup/RadioGroup.js +1 -0
  32. package/src/Components/Form/Field/Select/PageSizeSelect.js +1 -0
  33. package/src/Components/Form/Field/Select/Select.js +9 -8
  34. package/src/Components/Form/Field/Slider.js +15 -14
  35. package/src/Components/Form/Field/Tag/Tag.js +25 -24
  36. package/src/Components/Form/Field/Tag/ValueBox.js +32 -31
  37. package/src/Components/Form/Field/Text.js +9 -8
  38. package/src/Components/Form/Field/TextArea.js +9 -8
  39. package/src/Components/Form/Field/Toggle.js +16 -15
  40. package/src/Components/Form/FieldSet.js +27 -26
  41. package/src/Components/Form/Form.js +105 -104
  42. package/src/Components/Form/Label.js +15 -14
  43. package/src/Components/Grid/Grid.js +48 -46
  44. package/src/Components/Grid/GridHeaderRow.js +42 -40
  45. package/src/Components/Grid/GridRow.js +119 -80
  46. package/src/Components/Grid/HeaderColumnSelectorHandle.js +9 -8
  47. package/src/Components/Grid/HeaderReorderHandle.js +9 -8
  48. package/src/Components/Grid/HeaderResizeHandle.js +9 -8
  49. package/src/Components/Grid/NoRecordsFound.js +4 -3
  50. package/src/Components/Grid/RowDragHandle.js +1 -0
  51. package/src/Components/Grid/RowSelectHandle.js +1 -0
  52. package/src/Components/Hoc/Secondary/withSecondaryEditor.js +1 -1
  53. package/src/Components/Hoc/Secondary/withSecondaryWindowedEditor.js +6 -5
  54. package/src/Components/Hoc/withAlert.js +35 -34
  55. package/src/Components/Hoc/withContextMenu.js +27 -26
  56. package/src/Components/Hoc/withDnd.js +1 -0
  57. package/src/Components/Hoc/withEditor.js +1 -1
  58. package/src/Components/Hoc/withFilters.js +19 -18
  59. package/src/Components/Hoc/withModal.js +7 -6
  60. package/src/Components/Hoc/withToast.js +1 -0
  61. package/src/Components/Hoc/withWindowedEditor.js +6 -5
  62. package/src/Components/Layout/AsyncOperation.js +1 -0
  63. package/src/Components/Layout/CenterBox.js +9 -8
  64. package/src/Components/Layout/Footer.js +11 -10
  65. package/src/Components/Layout/ScreenHeader.js +5 -4
  66. package/src/Components/Layout/TextWithTooltip.js +1 -0
  67. package/src/Components/Messages/ConfirmationMessage.js +6 -5
  68. package/src/Components/Messages/ErrorMessage.js +40 -39
  69. package/src/Components/Messages/Loading.js +1 -0
  70. package/src/Components/Messages/OkMessage.js +11 -10
  71. package/src/Components/Messages/Unauthorized.js +1 -0
  72. package/src/Components/Messages/WaitMessage.js +16 -15
  73. package/src/Components/Panel/AccordionGridPanel.js +1 -0
  74. package/src/Components/Panel/FormPanel.js +1 -0
  75. package/src/Components/Panel/Header.js +59 -58
  76. package/src/Components/Panel/Mask.js +1 -0
  77. package/src/Components/Panel/Panel.js +7 -6
  78. package/src/Components/Picker/Picker.js +1 -0
  79. package/src/Components/Report/Report.js +35 -34
  80. package/src/Components/Screens/Manager.js +1 -0
  81. package/src/Components/Screens/ReportsManager.js +1 -0
  82. package/src/Components/Tab/Tab.js +1 -0
  83. package/src/Components/Tab/TabBar.js +67 -66
  84. package/src/Components/Toolbar/FilterToolbar.js +14 -11
  85. package/src/Components/Toolbar/Pagination.js +26 -25
  86. package/src/Components/Toolbar/PaginationToolbar.js +13 -12
  87. package/src/Components/Toolbar/Toolbar.js +13 -12
  88. package/src/Components/Tooltip/Tooltip.js +1 -0
  89. package/src/Components/Tree/Tree.js +12 -11
  90. package/src/Components/Tree/TreeNode.js +20 -19
  91. package/src/Components/Tree/TreeNodeDragHandle.js +11 -10
  92. package/src/Components/Viewer/MeterTypeText.js +8 -7
  93. package/src/Components/Viewer/TextWithLinks.js +16 -15
  94. package/src/Components/Viewer/Viewer.js +23 -22
  95. package/src/Components/Window/UploadsDownloadsWindow.js +6 -5
  96. package/src/Components/index.js +1 -0
  97. package/src/Hooks/useAsyncRenderers.js +53 -0
@@ -2,6 +2,7 @@ import {
2
2
  Icon,
3
3
  VStack,
4
4
  } from '@project-components/Gluestack';
5
+ import clsx from 'clsx';
5
6
  import styles from '../../Styles/StyleSheets.js';
6
7
  import withDraggable from '../Hoc/withDraggable.js';
7
8
  import GripVertical from '../Icons/GripVertical.js';
@@ -13,14 +14,14 @@ function HeaderReorderHandle(props) {
13
14
 
14
15
  return <VStack
15
16
  style={styles.ewResize}
16
- className={`
17
- HeaderReorderHandle
18
- h-full
19
- w-3
20
- items-center
21
- justify-center
22
- ${isDragging ? 'bg-grey-300' : 'bg-grey-100'}
23
- `}
17
+ className={clsx(
18
+ 'HeaderReorderHandle',
19
+ 'h-full',
20
+ 'w-3',
21
+ 'items-center',
22
+ 'justify-center',
23
+ isDragging ? 'bg-grey-300' : 'bg-grey-100',
24
+ )}
24
25
  >
25
26
  <Icon
26
27
  as={GripVertical}
@@ -2,6 +2,7 @@ import {
2
2
  Icon,
3
3
  VStack,
4
4
  } from '@project-components/Gluestack';
5
+ import clsx from 'clsx';
5
6
  import styles from '../../Styles/StyleSheets.js';
6
7
  import withDraggable from '../Hoc/withDraggable.js';
7
8
  import GripLinesVertical from '../Icons/GripLinesVertical.js';
@@ -13,14 +14,14 @@ function HeaderResizeHandle(props) {
13
14
 
14
15
  return <VStack
15
16
  style={styles.ewResize}
16
- className={`
17
- HeaderResizeHandle
18
- h-full
19
- w-3
20
- items-center
21
- justify-center
22
- ${isDragging ? 'bg-grey-300' : 'bg-grey-100'}
23
- `}
17
+ className={clsx(
18
+ 'HeaderResizeHandle',
19
+ 'h-full',
20
+ 'w-3',
21
+ 'items-center',
22
+ 'justify-center',
23
+ isDragging ? 'bg-grey-300' : 'bg-grey-100',
24
+ )}
24
25
  >
25
26
  <Icon
26
27
  as={GripLinesVertical}
@@ -3,6 +3,7 @@ import {
3
3
  Text,
4
4
  VStack,
5
5
  } from '@project-components/Gluestack';
6
+ import clsx from 'clsx';
6
7
  import IconButton from '../Buttons/IconButton.js';
7
8
  import Rotate from '../Icons/Rotate.js';
8
9
 
@@ -23,9 +24,9 @@ export default function NoRecordsFound(props) {
23
24
  icon={Rotate}
24
25
  _icon={{
25
26
  size: 'md',
26
- className: `
27
- text-grey-400
28
- `,
27
+ className: clsx(
28
+ 'text-grey-400',
29
+ ),
29
30
  }}
30
31
  onPress={onRefresh}
31
32
  variant="outline"
@@ -2,6 +2,7 @@ import {
2
2
  Icon,
3
3
  VStack,
4
4
  } from '@project-components/Gluestack';
5
+ import clsx from 'clsx';
5
6
  import styles from '../../Styles/StyleSheets.js';
6
7
  import GripVertical from '../Icons/GripVertical.js';
7
8
 
@@ -2,6 +2,7 @@ import {
2
2
  Icon,
3
3
  VStack,
4
4
  } from '@project-components/Gluestack';
5
+ import clsx from 'clsx';
5
6
  import Arcs from '../Icons/Arcs.js';
6
7
 
7
8
  function RowSelectHandle(props) {
@@ -169,7 +169,7 @@ export default function withSecondaryEditor(WrappedComponent, isTree = false) {
169
169
  if (secondaryDefaultValues) {
170
170
  _.merge(defaultValuesToUse, secondaryDefaultValues);
171
171
  }
172
- addValues = [...defaultValuesToUse];
172
+ addValues = {...defaultValuesToUse};
173
173
  }
174
174
 
175
175
  if (secondarySelectorId && !_.isEmpty(secondarySelectorSelected)) {
@@ -2,6 +2,7 @@ import { forwardRef } from 'react';
2
2
  import {
3
3
  Modal, ModalBackdrop, ModalHeader, ModalContent, ModalCloseButton, ModalBody, ModalFooter,
4
4
  } from '@project-components/Gluestack';
5
+ import clsx from 'clsx';
5
6
  import {
6
7
  EDITOR_TYPE__WINDOWED,
7
8
  } from '../../../Constants/Editor.js';
@@ -82,11 +83,11 @@ export default function withSecondaryWindowedEditor(WrappedComponent, isTree = f
82
83
  {...secondaryEditorProps}
83
84
  parent={self}
84
85
  reference="secondaryEditor"
85
- className={`
86
- bg-white
87
- shadow-lg
88
- rounded-lg
89
- `}
86
+ className={clsx(
87
+ 'bg-white',
88
+ 'shadow-lg',
89
+ 'rounded-lg',
90
+ )}
90
91
  />
91
92
  </Modal>}
92
93
  </>;
@@ -5,6 +5,7 @@ import {
5
5
  Icon,
6
6
  Text,
7
7
  } from '@project-components/Gluestack';
8
+ import clsx from 'clsx';
8
9
  import withModal from './withModal.js';
9
10
  import CircleInfo from '../Icons/CircleInfo.js';
10
11
  import CircleQuestion from '../Icons/CircleQuestion.js';
@@ -33,41 +34,41 @@ function withAlert(WrappedComponent) {
33
34
  color = 'black',
34
35
  } = args;
35
36
  return <HStack className="withAlert-HStack flex-1 w-full">
36
- <Box className={`
37
- withAlert-Box1
38
- h-full
39
- w-[100px]
40
- flex
41
- items-end
42
- justify-center
43
- pr-3
44
- `}>
45
- <Icon as={icon} className={`
46
- withAlert-Icon
47
- h-[40px]
48
- w-[40px]
49
- text-${color}
50
- `} />
37
+ <Box className={clsx(
38
+ 'withAlert-Box1',
39
+ 'h-full',
40
+ 'w-[100px]',
41
+ 'flex',
42
+ 'items-end',
43
+ 'justify-center',
44
+ 'pr-3',
45
+ )}>
46
+ <Icon as={icon} className={clsx(
47
+ 'withAlert-Icon',
48
+ 'h-[40px]',
49
+ 'w-[40px]',
50
+ `text-${color}`,
51
+ )} />
51
52
  </Box>
52
- <Box className={`
53
- withAlert-Box2
54
- h-full
55
- flex
56
- flex-1
57
- items-start
58
- justify-center
59
- `}>
60
- <Text className={`
61
- withAlert-Text
62
- text-${color}
63
- text-[18px]
64
- flex-none
65
- mr-2
66
- w-full
67
- break-words
68
- whitespace-normal
69
- overflow-wrap-anywhere
70
- `}>{message}</Text>
53
+ <Box className={clsx(
54
+ 'withAlert-Box2',
55
+ 'h-full',
56
+ 'flex',
57
+ 'flex-1',
58
+ 'items-start',
59
+ 'justify-center',
60
+ )}>
61
+ <Text className={clsx(
62
+ 'withAlert-Text',
63
+ `text-${color}`,
64
+ 'text-[18px]',
65
+ 'flex-none',
66
+ 'mr-2',
67
+ 'w-full',
68
+ 'break-words',
69
+ 'whitespace-normal',
70
+ 'overflow-wrap-anywhere',
71
+ )}>{message}</Text>
71
72
  </Box>
72
73
  </HStack>;
73
74
  },
@@ -3,6 +3,7 @@ import {
3
3
  Text,
4
4
  VStack,
5
5
  } from '@project-components/Gluestack';
6
+ import clsx from 'clsx';
6
7
  import UiGlobals from '../../UiGlobals.js';
7
8
  import Button from '../Buttons/Button.js';
8
9
  import testProps from '../../Functions/testProps.js';
@@ -63,28 +64,28 @@ export default function withContextMenu(WrappedComponent) {
63
64
  isDisabled={isDisabled}
64
65
  icon={icon}
65
66
  _icon={{
66
- className: `
67
- ml-2
68
- self-center
69
- `,
67
+ className: clsx(
68
+ 'ml-2',
69
+ 'self-center',
70
+ ),
70
71
  }}
71
72
  text={text}
72
73
  _text={{
73
- className: `
74
- flex-1
75
- select-none
76
- text-black
77
- `,
74
+ className: clsx(
75
+ 'flex-1',
76
+ 'select-none',
77
+ 'text-black',
78
+ ),
78
79
  }}
79
- className={`
80
- flex-row
81
- border-b-2
82
- border-b-grey-200
83
- py-2
84
- px-4
85
- select-none
86
- rounded-none
87
- `}
80
+ className={clsx(
81
+ 'flex-row',
82
+ 'border-b-2',
83
+ 'border-b-grey-200',
84
+ 'py-2',
85
+ 'px-4',
86
+ 'select-none',
87
+ 'rounded-none',
88
+ )}
88
89
  variant="outline"
89
90
  action="secondary"
90
91
  />;
@@ -119,14 +120,14 @@ export default function withContextMenu(WrappedComponent) {
119
120
  // show context menu
120
121
  const
121
122
  contextMenuItemComponents = createContextMenuItemComponents(),
122
- className = `
123
- context-menu-container
124
- absolute
125
- border
126
- border-grey-400
127
- shadow-lg
128
- bg-white
129
- `,
123
+ className = clsx(
124
+ 'context-menu-container',
125
+ 'absolute',
126
+ 'border',
127
+ 'border-grey-400',
128
+ 'shadow-lg',
129
+ 'bg-white',
130
+ ),
130
131
  screenWidth = window.innerWidth,
131
132
  screenHeight = window.innerHeight;
132
133
  let l = left,
@@ -3,6 +3,7 @@ import { useDrag, useDrop, useDragLayer } from 'react-dnd'; // https://react-dnd
3
3
  import {
4
4
  Box,
5
5
  } from '@project-components/Gluestack';
6
+ import clsx from 'clsx';
6
7
  import {
7
8
  UI_MODE_WEB,
8
9
  UI_MODE_NATIVE,
@@ -179,7 +179,7 @@ export default function withEditor(WrappedComponent, isTree = false) {
179
179
  if (defaultValues) {
180
180
  _.merge(defaultValuesToUse, defaultValues);
181
181
  }
182
- addValues = [...defaultValuesToUse];
182
+ addValues = {...defaultValuesToUse};
183
183
  }
184
184
 
185
185
  if (selectorId && !_.isEmpty(selectorSelected)) {
@@ -4,6 +4,7 @@ import {
4
4
  // ScrollView,
5
5
  Text,
6
6
  } from '@project-components/Gluestack';
7
+ import clsx from 'clsx';
7
8
  import {
8
9
  ScrollView,
9
10
  Platform,
@@ -327,17 +328,17 @@ export default function withFilters(WrappedComponent) {
327
328
  // add a container for each filter
328
329
  filterElement = <HStack
329
330
  key={'filter-' + ix}
330
- className={`
331
- Filter-container-HStack
332
- h-full
333
- px-1
334
- mx-1
335
- bg-grey-100
336
- rounded-[6px]
337
- border
338
- border-l-white
339
- items-center
340
- `}
331
+ className={clsx(
332
+ 'Filter-container-HStack',
333
+ 'h-full',
334
+ 'px-1',
335
+ 'mx-1',
336
+ 'bg-grey-100',
337
+ 'rounded-[6px]',
338
+ 'border',
339
+ 'border-l-white',
340
+ 'items-center',
341
+ )}
341
342
  >
342
343
  {filterElement}
343
344
  </HStack>;
@@ -660,13 +661,13 @@ export default function withFilters(WrappedComponent) {
660
661
  onContentSizeChange={onContentSizeChange}
661
662
  >
662
663
  <Text
663
- className={`
664
- withFilters-filtersLabel
665
- italic-italic
666
- pr-2
667
- select-none
668
- ${hasFilters ? 'flex-1' : 'italic'}
669
- `}>{hasFilters ? 'Filters:' : 'No Filters'}</Text>
664
+ className={clsx(
665
+ 'withFilters-filtersLabel',
666
+ 'italic-italic',
667
+ 'pr-2',
668
+ 'select-none',
669
+ hasFilters ? 'flex-1' : 'italic',
670
+ )}>{hasFilters ? 'Filters:' : 'No Filters'}</Text>
670
671
  {renderedFilters}
671
672
  </ScrollView>
672
673
  </HStack>
@@ -5,6 +5,7 @@ import {
5
5
  Modal, ModalBackdrop, ModalHeader, ModalContent, ModalCloseButton, ModalBody, ModalFooter,
6
6
  Text,
7
7
  } from '@project-components/Gluestack';
8
+ import clsx from 'clsx';
8
9
  import Button from '../Buttons/Button.js';
9
10
  import Panel from '../Panel/Panel.js';
10
11
  import Footer from '../Layout/Footer.js';
@@ -151,12 +152,12 @@ export default function withModal(WrappedComponent) {
151
152
  let footer = null;
152
153
  if (buttons && buttons.length > 0) {
153
154
  footer = <Footer
154
- className={`
155
- justify-end
156
- py-2
157
- pr-4
158
- bg-grey-100
159
- `}
155
+ className={clsx(
156
+ 'justify-end',
157
+ 'py-2',
158
+ 'pr-4',
159
+ 'bg-grey-100',
160
+ )}
160
161
  >{buttons}</Footer>;
161
162
  }
162
163
  modalBody =
@@ -5,6 +5,7 @@ import {
5
5
  ToastDescription,
6
6
  useToast,
7
7
  } from '@project-components/Gluestack';
8
+ import clsx from 'clsx';
8
9
  import _ from 'lodash';
9
10
 
10
11
  // This HOC enables showing a toast in the wrapped component.
@@ -2,6 +2,7 @@ import { forwardRef } from 'react';
2
2
  import {
3
3
  Modal, ModalBackdrop, ModalHeader, ModalContent, ModalCloseButton, ModalBody, ModalFooter,
4
4
  } from '@project-components/Gluestack';
5
+ import clsx from 'clsx';
5
6
  import {
6
7
  EDITOR_TYPE__WINDOWED,
7
8
  } from '../../Constants/Editor.js';
@@ -83,11 +84,11 @@ export default function withWindowedEditor(WrappedComponent, isTree = false) {
83
84
  {..._editor}
84
85
  parent={self}
85
86
  reference="editor"
86
- className={`
87
- bg-white
88
- shadow-lg
89
- rounded-lg
90
- `}
87
+ className={clsx(
88
+ 'bg-white',
89
+ 'shadow-lg',
90
+ 'rounded-lg',
91
+ )}
91
92
  />
92
93
  </Modal>}
93
94
  </>;
@@ -5,6 +5,7 @@ import {
5
5
  Text,
6
6
  VStack,
7
7
  } from '@project-components/Gluestack';
8
+ import clsx from 'clsx';
8
9
  import { useSelector, useDispatch, } from 'react-redux';
9
10
  import { PROGRESS_COMPLETED } from '../../Constants/Progress.js';
10
11
  import useForceUpdate from '../../Hooks/useForceUpdate.js';
@@ -1,16 +1,17 @@
1
1
  import {
2
2
  Box
3
3
  } from '@project-components/Gluestack';
4
+ import clsx from 'clsx';
4
5
 
5
6
  export default function CenterBox(props) {
6
- let className = `
7
- CenterBox
8
- w-full
9
- flex-1
10
- items-center
11
- justify-center
12
- p-2
13
- `;
7
+ let className = clsx(
8
+ 'CenterBox',
9
+ 'w-full',
10
+ 'flex-1',
11
+ 'items-center',
12
+ 'justify-center',
13
+ 'p-2',
14
+ );
14
15
  if (props.className) {
15
16
  className += props.className;
16
17
  }
@@ -1,20 +1,21 @@
1
1
  import {
2
2
  HStack,
3
3
  } from '@project-components/Gluestack';
4
+ import clsx from 'clsx';
4
5
  import UiGlobals from '../../UiGlobals.js';
5
6
 
6
7
  export default function Footer(props) {
7
8
  const styles = UiGlobals.styles;
8
- let className = `
9
- Footer
10
- w-full
11
- items-center
12
- justify-center
13
- self-end
14
- p-2
15
- border-t-2
16
- ${styles.PANEL_FOOTER_CLASSNAME}
17
- `;
9
+ let className = clsx(
10
+ 'Footer',
11
+ 'w-full',
12
+ 'items-center',
13
+ 'justify-center',
14
+ 'self-end',
15
+ 'p-2',
16
+ 'border-t-2',
17
+ styles.PANEL_FOOTER_CLASSNAME,
18
+ );
18
19
  if (props.className) {
19
20
  className += ' ' + props.className
20
21
  }
@@ -4,6 +4,7 @@ import {
4
4
  Text,
5
5
  VStack,
6
6
  } from '@project-components/Gluestack';
7
+ import clsx from 'clsx';
7
8
  import {
8
9
  SCREEN_MODES__FULL,
9
10
  SCREEN_MODES__SIDE,
@@ -36,10 +37,10 @@ export default function ScreenHeader(props) {
36
37
  {icon &&
37
38
  <Icon
38
39
  as={icon}
39
- className={`
40
- ml-5
41
- text-black
42
- `}
40
+ className={clsx(
41
+ 'ml-5',
42
+ 'text-black',
43
+ )}
43
44
  size="xl"
44
45
  />}
45
46
  <Text {...textProps} className="ScreenHeader-Text pl-4 text-[26px] font-[700]">{title}</Text>
@@ -2,6 +2,7 @@ import {
2
2
  TextNative,
3
3
  Tooltip, TooltipContent, TooltipText,
4
4
  } from '@project-components/Gluestack';
5
+ import clsx from 'clsx';
5
6
 
6
7
  export default function TextWithTooltip(props) {
7
8
  const {
@@ -2,6 +2,7 @@ import {
2
2
  Modal, ModalBackdrop, ModalHeader, ModalContent, ModalCloseButton, ModalBody, ModalFooter,
3
3
  Text,
4
4
  } from '@project-components/Gluestack';
5
+ import clsx from 'clsx';
5
6
  import Button from '../Buttons/Button';
6
7
  import emptyFn from '../../Functions/emptyFn.js';
7
8
 
@@ -17,11 +18,11 @@ export default function ConfirmationMessage(props) {
17
18
  <ModalContent maxWidth="400px">
18
19
  <ModalHeader>Confirm</ModalHeader>
19
20
  <ModalBody
20
- className={`
21
- p-5
22
- pb-0
23
- border-t-0
24
- `}
21
+ className={clsx(
22
+ 'p-5',
23
+ 'pb-0',
24
+ 'border-t-0',
25
+ )}
25
26
  >
26
27
  <Text className="text-black">{textMessage}</Text>
27
28
  </ModalBody>
@@ -5,6 +5,7 @@ import {
5
5
  Modal, ModalBackdrop, ModalHeader, ModalContent, ModalCloseButton, ModalBody, ModalFooter,
6
6
  Text,
7
7
  } from '@project-components/Gluestack';
8
+ import clsx from 'clsx';
8
9
  import useAdjustedWindowSize from '../../Hooks/useAdjustedWindowSize.js';
9
10
  import Button from '../Buttons/Button.js';
10
11
  import Panel from '../Panel/Panel.js';
@@ -33,12 +34,12 @@ export default function ErrorMessage(props) {
33
34
  disableAutoFlex={true}
34
35
  onClose={onOk}
35
36
  footer={<Footer
36
- className={`
37
- justify-end
38
- py-2
39
- px-4
40
- bg-grey-100
41
- `}
37
+ className={clsx(
38
+ 'justify-end',
39
+ 'py-2',
40
+ 'px-4',
41
+ 'bg-grey-100',
42
+ )}
42
43
  >
43
44
  <Button
44
45
  {...testProps('okBtn')}
@@ -50,40 +51,40 @@ export default function ErrorMessage(props) {
50
51
  </Footer>}
51
52
  >
52
53
  <HStack className="ErrorMessage-HStack flex-1 w-full p-4">
53
- <Box className={`
54
- ErrorMessage-Box1
55
- h-full
56
- w-[100px]
57
- flex
58
- items-center
59
- justify-center
60
- pr-3
61
- `}>
62
- <Icon as={TriangleExclamation} className={`
63
- ErrorMessage-Icon
64
- h-[40px]
65
- w-[40px]
66
- text-${color}
67
- `} />
54
+ <Box className={clsx(
55
+ 'ErrorMessage-Box1',
56
+ 'h-full',
57
+ 'w-[100px]',
58
+ 'flex',
59
+ 'items-center',
60
+ 'justify-center',
61
+ 'pr-3',
62
+ )}>
63
+ <Icon as={TriangleExclamation} className={clsx(
64
+ 'ErrorMessage-Icon',
65
+ 'h-[40px]',
66
+ 'w-[40px]',
67
+ `text-${color}`,
68
+ )} />
68
69
  </Box>
69
- <Box className={`
70
- ErrorMessage-Box2
71
- h-full
72
- flex
73
- flex-1
74
- items-start
75
- justify-center
76
- overflow-hidden
77
- `}>
78
- <Text className={`
79
- ErrorMessage-Text
80
- text-${color}
81
- text-[18px]
82
- break-words
83
- whitespace-normal
84
- w-full
85
- overflow-auto
86
- `}>{text}</Text>
70
+ <Box className={clsx(
71
+ 'ErrorMessage-Box2',
72
+ 'h-full',
73
+ 'flex',
74
+ 'flex-1',
75
+ 'items-start',
76
+ 'justify-center',
77
+ 'overflow-hidden',
78
+ )}>
79
+ <Text className={clsx(
80
+ 'ErrorMessage-Text',
81
+ `text-${color}`,
82
+ 'text-[18px]',
83
+ 'break-words',
84
+ 'whitespace-normal',
85
+ 'w-full',
86
+ 'overflow-auto',
87
+ )}>{text}</Text>
87
88
  </Box>
88
89
  </HStack>
89
90
  </Panel>