@addev-be/ui 2.7.5 → 2.7.7

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 (256) hide show
  1. package/assets/icons/arrow-down-1-9.svg +1 -1
  2. package/assets/icons/arrow-down-a-z.svg +1 -1
  3. package/assets/icons/arrow-up-z-a.svg +1 -1
  4. package/assets/icons/check.svg +1 -1
  5. package/assets/icons/circle-check.svg +1 -1
  6. package/assets/icons/down.svg +1 -1
  7. package/assets/icons/filter-full.svg +1 -1
  8. package/assets/icons/filter.svg +1 -1
  9. package/assets/icons/hashtag.svg +1 -1
  10. package/assets/icons/image-slash.svg +1 -1
  11. package/assets/icons/left.svg +1 -1
  12. package/assets/icons/magnifier.svg +1 -1
  13. package/assets/icons/phone.svg +1 -1
  14. package/assets/icons/right.svg +1 -1
  15. package/assets/icons/sort-calendar-ascending.svg +5 -5
  16. package/assets/icons/spinner-third.svg +1 -1
  17. package/assets/icons/table-columns.svg +1 -1
  18. package/assets/icons/table-footer-slash.svg +4 -4
  19. package/assets/icons/table-footer.svg +3 -3
  20. package/assets/icons/up.svg +1 -1
  21. package/assets/icons/user-tie.svg +1 -1
  22. package/assets/icons/x-bar.svg +3 -3
  23. package/dist/components/data/AdvancedRequestDataGrid/helpers/advancedRequests.js +9 -8
  24. package/dist/components/data/AdvancedRequestDataGrid/helpers/columns.js +21 -72
  25. package/dist/components/data/AdvancedRequestDataGrid/index.js +2 -2
  26. package/dist/components/data/AdvancedRequestDataGrid/types.d.ts +1 -1
  27. package/dist/components/data/DataGrid/AdvancedRequestDataGrid.d.ts +10 -0
  28. package/dist/components/data/DataGrid/AdvancedRequestDataGrid.js +173 -0
  29. package/dist/components/data/DataGrid/DataGridFooter.js +1 -1
  30. package/dist/components/data/DataGrid/FilterValuesScroller.d.ts +13 -0
  31. package/dist/components/data/DataGrid/FilterValuesScroller.js +73 -0
  32. package/dist/components/data/DataGrid/VirtualScroller.d.ts +11 -0
  33. package/dist/components/data/DataGrid/VirtualScroller.js +41 -0
  34. package/dist/components/data/DataGrid/helpers/advancedRequests.d.ts +12 -0
  35. package/dist/components/data/DataGrid/helpers/advancedRequests.js +53 -0
  36. package/dist/components/data/DataGrid/helpers/columns.js +3 -3
  37. package/dist/components/data/DataGrid/helpers.d.ts +28 -0
  38. package/dist/components/data/DataGrid/helpers.js +436 -0
  39. package/dist/components/data/DataGrid/styles.d.ts +1 -0
  40. package/dist/components/data/DataGrid/styles.js +14 -3
  41. package/dist/components/data/SmartQueryDataGrid/helpers/columns.d.ts +20 -0
  42. package/dist/components/data/SmartQueryDataGrid/helpers/columns.js +160 -0
  43. package/dist/components/data/SmartQueryDataGrid/helpers/hooks.d.ts +5 -0
  44. package/dist/components/data/SmartQueryDataGrid/helpers/hooks.js +41 -0
  45. package/dist/components/data/SmartQueryDataGrid/helpers/index.d.ts +2 -0
  46. package/dist/components/data/SmartQueryDataGrid/helpers/index.js +18 -0
  47. package/dist/components/data/SmartQueryDataGrid/helpers/smartQueries.d.ts +3 -0
  48. package/dist/components/data/SmartQueryDataGrid/helpers/smartQueries.js +15 -0
  49. package/dist/components/data/SmartQueryDataGrid/hooks.d.ts +9 -0
  50. package/dist/components/data/SmartQueryDataGrid/hooks.js +63 -0
  51. package/dist/components/data/SmartQueryDataGrid/index.d.ts +12 -0
  52. package/dist/components/data/SmartQueryDataGrid/index.js +242 -0
  53. package/dist/components/data/SmartQueryDataGrid/types.d.ts +22 -0
  54. package/dist/components/data/SmartQueryDataGrid/types.js +2 -0
  55. package/dist/components/data/SqlRequestDataGrid/SqlRequestForeignListEditableCell.d.ts +2 -1
  56. package/dist/components/data/SqlRequestDataGrid/SqlRequestForeignListEditableCell.js +2 -3
  57. package/dist/components/forms/Form/InputWithLabel.d.ts +2 -0
  58. package/dist/components/forms/Form/InputWithLabel.js +10 -0
  59. package/dist/components/forms/Form/types.d.ts +7 -0
  60. package/dist/components/forms/Form/types.js +2 -0
  61. package/dist/components/ui/Card/index.d.ts +2 -1
  62. package/dist/components/ui/Card/styles.d.ts +4 -4
  63. package/dist/components/ui/Card/styles.js +4 -9
  64. package/dist/components/ui/TabsView/styles.js +2 -2
  65. package/dist/config/types.d.ts +11 -0
  66. package/dist/config/types.js +2 -0
  67. package/dist/helpers/react.d.ts +2 -0
  68. package/dist/helpers/react.js +8 -0
  69. package/dist/helpers/styled/size.d.ts +10 -0
  70. package/dist/helpers/styled/size.js +28 -0
  71. package/dist/helpers/styled/space.d.ts +14 -14
  72. package/dist/index.d.ts +2 -0
  73. package/dist/index.js +2 -0
  74. package/dist/providers/ThemeProvider/helpers.d.ts +2 -1
  75. package/dist/providers/ThemeProvider/helpers.js +5 -1
  76. package/dist/providers/ThemeProvider/types.d.ts +3 -1
  77. package/dist/services/index.js +17 -7
  78. package/dist/services/requests/userPermissions.d.ts +4 -0
  79. package/dist/services/requests/userPermissions.js +20 -0
  80. package/eslint.config.js +3 -3
  81. package/package.json +2 -2
  82. package/src/Icons.tsx +138 -138
  83. package/src/components/auth/LoginForm.tsx +86 -86
  84. package/src/components/auth/LoginPage.tsx +32 -32
  85. package/src/components/auth/PasswordRecoveryForm.tsx +53 -53
  86. package/src/components/auth/PasswordResetForm.tsx +112 -112
  87. package/src/components/auth/styles.ts +14 -14
  88. package/src/components/data/DataGrid/DataGridCell.tsx +81 -81
  89. package/src/components/data/DataGrid/DataGridColumnsModal/helpers.ts +9 -9
  90. package/src/components/data/DataGrid/DataGridColumnsModal/hooks.tsx +59 -59
  91. package/src/components/data/DataGrid/DataGridColumnsModal/index.tsx +182 -182
  92. package/src/components/data/DataGrid/DataGridColumnsModal/styles.ts +104 -104
  93. package/src/components/data/DataGrid/DataGridEditableCell/CheckboxEditableCell.tsx +37 -37
  94. package/src/components/data/DataGrid/DataGridEditableCell/DateEditableCell.tsx +38 -38
  95. package/src/components/data/DataGrid/DataGridEditableCell/NumberEditableCell.tsx +71 -71
  96. package/src/components/data/DataGrid/DataGridEditableCell/TextEditableCell.tsx +37 -37
  97. package/src/components/data/DataGrid/DataGridEditableCell/index.tsx +106 -106
  98. package/src/components/data/DataGrid/DataGridEditableCell/styles.ts +35 -35
  99. package/src/components/data/DataGrid/DataGridEditableCell/types.ts +18 -18
  100. package/src/components/data/DataGrid/DataGridFilterMenu/FilterValuesScroller.tsx +129 -129
  101. package/src/components/data/DataGrid/DataGridFilterMenu/hooks.tsx +81 -81
  102. package/src/components/data/DataGrid/DataGridFilterMenu/index.tsx +370 -370
  103. package/src/components/data/DataGrid/DataGridFilterMenu/styles.ts +97 -97
  104. package/src/components/data/DataGrid/DataGridFooter.tsx +48 -47
  105. package/src/components/data/DataGrid/DataGridHeader.tsx +74 -74
  106. package/src/components/data/DataGrid/DataGridHeaderCell.tsx +112 -112
  107. package/src/components/data/DataGrid/DataGridRowTemplate.tsx +83 -83
  108. package/src/components/data/DataGrid/DataGridToolbar.tsx +134 -134
  109. package/src/components/data/DataGrid/FilterModalContent/index.tsx +137 -137
  110. package/src/components/data/DataGrid/FilterModalContent/styles.ts +22 -22
  111. package/src/components/data/DataGrid/constants.ts +6 -6
  112. package/src/components/data/DataGrid/helpers/columns.tsx +452 -449
  113. package/src/components/data/DataGrid/helpers/filters.ts +287 -287
  114. package/src/components/data/DataGrid/helpers/index.ts +2 -2
  115. package/src/components/data/DataGrid/hooks/index.ts +29 -29
  116. package/src/components/data/DataGrid/hooks/useDataGrid.tsx +383 -383
  117. package/src/components/data/DataGrid/hooks/useDataGridChangedRows.ts +97 -97
  118. package/src/components/data/DataGrid/hooks/useDataGridCopy.ts +174 -174
  119. package/src/components/data/DataGrid/hooks/useDataGridSettings.ts +48 -48
  120. package/src/components/data/DataGrid/hooks/useRefreshModal.tsx +48 -48
  121. package/src/components/data/DataGrid/index.tsx +111 -111
  122. package/src/components/data/DataGrid/styles.ts +446 -434
  123. package/src/components/data/DataGrid/types.ts +380 -380
  124. package/src/components/data/SqlRequestDataGrid/helpers/columns.tsx +526 -526
  125. package/src/components/data/SqlRequestDataGrid/helpers/index.ts +2 -2
  126. package/src/components/data/SqlRequestDataGrid/helpers/rows.ts +24 -24
  127. package/src/components/data/SqlRequestDataGrid/helpers/sqlRequests.ts +17 -17
  128. package/src/components/data/SqlRequestDataGrid/index.tsx +417 -417
  129. package/src/components/data/SqlRequestDataGrid/styles.ts +15 -15
  130. package/src/components/data/SqlRequestDataGrid/types.ts +74 -74
  131. package/src/components/data/SqlRequestForeignList/index.tsx +254 -254
  132. package/src/components/data/SqlRequestForeignList/styles.ts +43 -43
  133. package/src/components/data/SqlRequestForeignList/types.ts +32 -32
  134. package/src/components/data/SqlRequestGrid/filters/FiltersSidebar.tsx +108 -108
  135. package/src/components/data/SqlRequestGrid/filters/styles.ts +88 -88
  136. package/src/components/data/SqlRequestGrid/helpers/index.ts +1 -1
  137. package/src/components/data/SqlRequestGrid/helpers/sqlRequests.ts +16 -16
  138. package/src/components/data/SqlRequestGrid/index.tsx +304 -304
  139. package/src/components/data/SqlRequestGrid/styles.ts +20 -20
  140. package/src/components/data/SqlRequestGrid/types.ts +73 -73
  141. package/src/components/data/VirtualScroller/hooks.ts +71 -71
  142. package/src/components/data/VirtualScroller/index.tsx +89 -89
  143. package/src/components/data/VirtualScroller/styles.ts +57 -57
  144. package/src/components/data/VirtualScroller/types.ts +10 -10
  145. package/src/components/forms/AutoTextArea.tsx +48 -48
  146. package/src/components/forms/BillitIdentifier/index.tsx +78 -78
  147. package/src/components/forms/BillitIdentifier/styles.tsx +43 -43
  148. package/src/components/forms/Button.tsx +132 -132
  149. package/src/components/forms/Form/Checkbox.tsx +12 -12
  150. package/src/components/forms/Form/CustomSelect.tsx +86 -86
  151. package/src/components/forms/Form/FormGroup.tsx +33 -33
  152. package/src/components/forms/Form/Input.tsx +16 -16
  153. package/src/components/forms/Form/Row.tsx +28 -28
  154. package/src/components/forms/Form/Select.tsx +99 -99
  155. package/src/components/forms/Form/TextArea.tsx +17 -17
  156. package/src/components/forms/Form/index.tsx +48 -48
  157. package/src/components/forms/Form/styles.ts +148 -148
  158. package/src/components/forms/IconButton.tsx +61 -61
  159. package/src/components/forms/IndeterminateCheckbox.tsx +46 -46
  160. package/src/components/forms/NumberInput.tsx +53 -53
  161. package/src/components/forms/Select.tsx +34 -34
  162. package/src/components/forms/VerticalLabel.tsx +20 -20
  163. package/src/components/forms/styles.ts +42 -42
  164. package/src/components/layout/Columns.ts +28 -28
  165. package/src/components/layout/Dropdown/index.tsx +113 -113
  166. package/src/components/layout/Dropdown/styles.ts +53 -53
  167. package/src/components/layout/Flexbox.ts +21 -21
  168. package/src/components/layout/Grid/index.tsx +8 -8
  169. package/src/components/layout/Grid/styles.ts +34 -34
  170. package/src/components/layout/Loading/index.tsx +29 -29
  171. package/src/components/layout/Loading/styles.ts +29 -29
  172. package/src/components/layout/Masonry/index.tsx +29 -29
  173. package/src/components/layout/Masonry/styles.ts +20 -20
  174. package/src/components/layout/Modal/index.tsx +51 -51
  175. package/src/components/layout/Modal/styles.ts +125 -125
  176. package/src/components/search/HighlightedText.tsx +41 -41
  177. package/src/components/search/QuickSearchBar.tsx +102 -102
  178. package/src/components/search/QuickSearchResults.tsx +86 -86
  179. package/src/components/search/styles.ts +96 -96
  180. package/src/components/search/types.ts +29 -29
  181. package/src/components/ui/Avatar/index.tsx +54 -54
  182. package/src/components/ui/Card/index.tsx +17 -16
  183. package/src/components/ui/Card/styles.ts +38 -41
  184. package/src/components/ui/ContextMenu/index.tsx +79 -79
  185. package/src/components/ui/ContextMenu/styles.ts +119 -119
  186. package/src/components/ui/Ellipsis.tsx +33 -33
  187. package/src/components/ui/Label.tsx +93 -93
  188. package/src/components/ui/Message/index.tsx +57 -57
  189. package/src/components/ui/Message/styles.ts +44 -44
  190. package/src/components/ui/TabsView/TabsList.tsx +49 -49
  191. package/src/components/ui/TabsView/TabsView.tsx +42 -42
  192. package/src/components/ui/TabsView/styles.ts +85 -84
  193. package/src/components/ui/TabsView/types.ts +15 -15
  194. package/src/config/index.ts +10 -10
  195. package/src/helpers/components.ts +9 -9
  196. package/src/helpers/dates.ts +17 -17
  197. package/src/helpers/getScrollbarSize.ts +14 -14
  198. package/src/helpers/numbers.ts +63 -63
  199. package/src/helpers/responsive.ts +83 -83
  200. package/src/helpers/styled/size.ts +25 -0
  201. package/src/helpers/styled/space.ts +114 -114
  202. package/src/helpers/styled/typography.ts +25 -25
  203. package/src/helpers/text.ts +13 -13
  204. package/src/helpers/types.ts +9 -9
  205. package/src/hooks/useContainerMediaQuery.ts +7 -7
  206. package/src/hooks/useElementSize.ts +24 -24
  207. package/src/hooks/useMediaQuery.ts +9 -9
  208. package/src/hooks/useMediaQueryForWidth.ts +35 -35
  209. package/src/hooks/useMutableState.test.ts +410 -410
  210. package/src/hooks/useMutableState.ts +39 -39
  211. package/src/hooks/useShowArchived.ts +28 -28
  212. package/src/hooks/useWindowSize.ts +20 -20
  213. package/src/index.ts +105 -103
  214. package/src/providers/AuthenticationProvider/helpers.ts +3 -3
  215. package/src/providers/AuthenticationProvider/index.tsx +303 -303
  216. package/src/providers/LoadingProvider/index.tsx +47 -47
  217. package/src/providers/PortalsProvider/index.tsx +54 -54
  218. package/src/providers/PortalsProvider/styles.ts +31 -31
  219. package/src/providers/SettingsProvider/index.tsx +70 -70
  220. package/src/providers/ThemeProvider/defaultTheme.ts +471 -471
  221. package/src/providers/ThemeProvider/helpers.ts +89 -84
  222. package/src/providers/ThemeProvider/index.ts +73 -73
  223. package/src/providers/ThemeProvider/types.ts +139 -134
  224. package/src/providers/ToastProvider/index.tsx +93 -93
  225. package/src/providers/TrackingProvider/index.tsx +71 -71
  226. package/src/providers/UiProviders/index.tsx +76 -76
  227. package/src/providers/UiProviders/styles.ts +10 -10
  228. package/src/providers/hooks.ts +14 -14
  229. package/src/services/HttpService.ts +92 -92
  230. package/src/services/WebSocketService.ts +155 -155
  231. package/src/services/advancedRequests.ts +102 -102
  232. package/src/services/base.ts +23 -23
  233. package/src/services/globalSearch.ts +32 -32
  234. package/src/services/hooks.ts +92 -92
  235. package/src/services/requests/auth.ts +44 -44
  236. package/src/services/requests/generic.ts +62 -62
  237. package/src/services/requests/printing.ts +12 -12
  238. package/src/services/requests/tracking.ts +12 -12
  239. package/src/services/requests/userProfiles.ts +35 -35
  240. package/src/services/requests/users.ts +28 -28
  241. package/src/services/smartQueries.ts +122 -122
  242. package/src/services/sqlRequests.ts +119 -119
  243. package/src/services/types/auth.ts +98 -98
  244. package/src/services/types/base.ts +10 -10
  245. package/src/services/types/generic.ts +82 -82
  246. package/src/services/types/printing.ts +10 -10
  247. package/src/services/types/tracking.ts +29 -29
  248. package/src/services/types/userProfiles.ts +79 -79
  249. package/src/services/types/users.ts +74 -74
  250. package/src/services/updateSqlRequests.ts +32 -32
  251. package/src/styles/animations.scss +30 -30
  252. package/src/styles/index.scss +42 -42
  253. package/src/types.ts +8 -8
  254. package/src/typings.d.ts +2 -2
  255. package/tsconfig.json +18 -18
  256. package/tsconfig.tsbuildinfo +1 -1
@@ -1,83 +1,83 @@
1
- import * as styles from './styles';
2
-
3
- import { DataGridCell } from './DataGridCell';
4
- import { DataGridRowTemplateProps } from './types';
5
- import { VirtualScrollerTemplateProps } from '../VirtualScroller/types';
6
- import { useContext } from 'react';
7
-
8
- export const DataGridRowTemplate = <R,>({
9
- item,
10
- index: rowIndex,
11
- context,
12
- }: VirtualScrollerTemplateProps<R, DataGridRowTemplateProps<R>>) => {
13
- const {
14
- visibleColumns,
15
- rowKeyGetter,
16
- toggleSelection,
17
- updatedRows,
18
- addedRows,
19
- ...props
20
- } = useContext(context);
21
-
22
- if (!item) {
23
- return (
24
- <styles.DataGridRow key={`loading-row-${rowIndex}`}>
25
- {!!props.selectable && (
26
- <styles.LoadingCell className="animate-pulse">
27
- <div />
28
- </styles.LoadingCell>
29
- )}
30
- {visibleColumns.map((_, colIndex) => (
31
- <styles.LoadingCell
32
- className="animate-pulse"
33
- key={`loading-${rowIndex}-${colIndex}`}
34
- >
35
- <div />
36
- </styles.LoadingCell>
37
- ))}
38
- </styles.DataGridRow>
39
- );
40
- }
41
- const rowKey = rowKeyGetter(item);
42
- const selected = props.selectedKeys.includes(rowKey);
43
- const { className, style } = props.rowClassNameGetter?.(item) ?? {
44
- className: '',
45
- style: undefined,
46
- };
47
- const isAdded = addedRows.some((row) => rowKeyGetter(row as R) === rowKey);
48
- const isUpdated = updatedRows.some(
49
- (row) => rowKeyGetter(row as R) === rowKey
50
- );
51
-
52
- return (
53
- <styles.DataGridRow key={rowKey} $edited={isAdded || isUpdated}>
54
- {!!props.selectable && (
55
- <styles.SelectionCell
56
- key="__select_checkbox__"
57
- onClick={() => toggleSelection(rowKey)}
58
- >
59
- <input
60
- type="checkbox"
61
- value={rowKey as string}
62
- checked={selected}
63
- readOnly
64
- />
65
- </styles.SelectionCell>
66
- )}
67
- {visibleColumns.map((col, colIndex) => (
68
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
69
- <DataGridCell<R, any>
70
- key={`loading-${colIndex}-${colIndex}`}
71
- {...(colIndex === 0 ? { className, style } : {})}
72
- row={item}
73
- rowIndex={rowIndex}
74
- column={col}
75
- columnIndex={colIndex}
76
- context={context}
77
- columnKey={col.key}
78
- color={col.color}
79
- />
80
- ))}
81
- </styles.DataGridRow>
82
- );
83
- };
1
+ import * as styles from './styles';
2
+
3
+ import { DataGridCell } from './DataGridCell';
4
+ import { DataGridRowTemplateProps } from './types';
5
+ import { VirtualScrollerTemplateProps } from '../VirtualScroller/types';
6
+ import { useContext } from 'react';
7
+
8
+ export const DataGridRowTemplate = <R,>({
9
+ item,
10
+ index: rowIndex,
11
+ context,
12
+ }: VirtualScrollerTemplateProps<R, DataGridRowTemplateProps<R>>) => {
13
+ const {
14
+ visibleColumns,
15
+ rowKeyGetter,
16
+ toggleSelection,
17
+ updatedRows,
18
+ addedRows,
19
+ ...props
20
+ } = useContext(context);
21
+
22
+ if (!item) {
23
+ return (
24
+ <styles.DataGridRow key={`loading-row-${rowIndex}`}>
25
+ {!!props.selectable && (
26
+ <styles.LoadingCell className="animate-pulse">
27
+ <div />
28
+ </styles.LoadingCell>
29
+ )}
30
+ {visibleColumns.map((_, colIndex) => (
31
+ <styles.LoadingCell
32
+ className="animate-pulse"
33
+ key={`loading-${rowIndex}-${colIndex}`}
34
+ >
35
+ <div />
36
+ </styles.LoadingCell>
37
+ ))}
38
+ </styles.DataGridRow>
39
+ );
40
+ }
41
+ const rowKey = rowKeyGetter(item);
42
+ const selected = props.selectedKeys.includes(rowKey);
43
+ const { className, style } = props.rowClassNameGetter?.(item) ?? {
44
+ className: '',
45
+ style: undefined,
46
+ };
47
+ const isAdded = addedRows.some((row) => rowKeyGetter(row as R) === rowKey);
48
+ const isUpdated = updatedRows.some(
49
+ (row) => rowKeyGetter(row as R) === rowKey
50
+ );
51
+
52
+ return (
53
+ <styles.DataGridRow key={rowKey} $edited={isAdded || isUpdated}>
54
+ {!!props.selectable && (
55
+ <styles.SelectionCell
56
+ key="__select_checkbox__"
57
+ onClick={() => toggleSelection(rowKey)}
58
+ >
59
+ <input
60
+ type="checkbox"
61
+ value={rowKey as string}
62
+ checked={selected}
63
+ readOnly
64
+ />
65
+ </styles.SelectionCell>
66
+ )}
67
+ {visibleColumns.map((col, colIndex) => (
68
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
69
+ <DataGridCell<R, any>
70
+ key={`loading-${colIndex}-${colIndex}`}
71
+ {...(colIndex === 0 ? { className, style } : {})}
72
+ row={item}
73
+ rowIndex={rowIndex}
74
+ column={col}
75
+ columnIndex={colIndex}
76
+ context={context}
77
+ columnKey={col.key}
78
+ color={col.color}
79
+ />
80
+ ))}
81
+ </styles.DataGridRow>
82
+ );
83
+ };
@@ -1,134 +1,134 @@
1
- import * as styles from './styles';
2
-
3
- import {
4
- ArrowsRotateIcon,
5
- CopyIcon,
6
- FilterSlashIcon,
7
- FloppyDiskIcon,
8
- PlusIcon,
9
- TableColumnsIcon,
10
- } from '../../../Icons';
11
- import { useCallback, useState } from 'react';
12
-
13
- import { Button } from '../../forms/Button';
14
- import { DataGridContext } from './types';
15
- import { Loading } from '../../layout/Loading';
16
- import { useDataGridColumnsModal } from './DataGridColumnsModal/hooks';
17
- import { useDataGridContext } from './hooks';
18
- import { useRefreshModal } from './hooks/useRefreshModal';
19
-
20
- export const DataGridToolbar = <R,>({
21
- context,
22
- }: {
23
- context: DataGridContext<R>;
24
- }) => {
25
- const {
26
- name,
27
- setSelectedKeys,
28
- copyTable,
29
- setFilters,
30
- refresh,
31
- editable,
32
- onSaveClicked,
33
- onAddClicked,
34
- addedRows,
35
- updatedRows,
36
- addRow,
37
- clearChangedRows,
38
- headerContent,
39
- } = useDataGridContext(context);
40
-
41
- const { openModal, modal } = useDataGridColumnsModal<R>(context);
42
-
43
- const [isLoadingVisible, setIsLoadingVisible] = useState(false);
44
- const runCopyTable = useCallback(() => {
45
- setIsLoadingVisible(true);
46
- copyTable().then(() => setIsLoadingVisible(false));
47
- }, [copyTable]);
48
-
49
- const save = useCallback(async () => {
50
- if (
51
- Object.keys(addedRows).length + Object.keys(updatedRows).length > 0 &&
52
- onSaveClicked
53
- ) {
54
- const savedIds = await onSaveClicked(addedRows, updatedRows);
55
- clearChangedRows(savedIds);
56
- }
57
- }, [addedRows, clearChangedRows, onSaveClicked, updatedRows]);
58
-
59
- const add = useCallback(async () => {
60
- if (onAddClicked) {
61
- const row = await onAddClicked();
62
- addRow(row);
63
- }
64
- }, [addRow, onAddClicked]);
65
-
66
- const doRefresh = useCallback(() => {
67
- refresh?.();
68
- clearChangedRows();
69
- setSelectedKeys([]);
70
- }, [clearChangedRows, refresh, setSelectedKeys]);
71
-
72
- const { openModal: openRefreshModal, modal: refreshModal } =
73
- useRefreshModal(doRefresh);
74
-
75
- const onRefreshClicked = useCallback(async () => {
76
- if (addedRows.length + updatedRows.length > 0) {
77
- openRefreshModal();
78
- } else {
79
- doRefresh();
80
- }
81
- }, [addedRows.length, doRefresh, openRefreshModal, updatedRows.length]);
82
-
83
- return (
84
- <>
85
- {modal}
86
- {refreshModal}
87
- <styles.DataGridToolsRow>
88
- <styles.DataGridToolsRowHeaderContent>
89
- {headerContent}
90
- </styles.DataGridToolsRowHeaderContent>
91
- <styles.DataGridToolsRowButtonsContainer>
92
- <Loading visible={isLoadingVisible} />
93
- {editable && onSaveClicked && (
94
- <Button size="small" $color="primary" onClick={save} bordered>
95
- <FloppyDiskIcon />
96
- Enregistrer
97
- </Button>
98
- )}
99
- {editable && onAddClicked && (
100
- <Button size="small" $color="success" onClick={add} bordered>
101
- <PlusIcon />
102
- Ajouter
103
- </Button>
104
- )}
105
- {
106
- <Button size="small" onClick={onRefreshClicked} bordered>
107
- <ArrowsRotateIcon />
108
- Rafraîchir
109
- </Button>
110
- }
111
- <Button $color="emerald" size="small" onClick={runCopyTable} bordered>
112
- <CopyIcon />
113
- Copier la table
114
- </Button>
115
- <Button
116
- size="small"
117
- $color="danger"
118
- onClick={() => setFilters({})}
119
- bordered
120
- >
121
- <FilterSlashIcon />
122
- Supprimer les filtres
123
- </Button>
124
- {name && (
125
- <Button $color="info" size="small" onClick={openModal} bordered>
126
- <TableColumnsIcon />
127
- Paramètres des colonnes
128
- </Button>
129
- )}
130
- </styles.DataGridToolsRowButtonsContainer>
131
- </styles.DataGridToolsRow>
132
- </>
133
- );
134
- };
1
+ import * as styles from './styles';
2
+
3
+ import {
4
+ ArrowsRotateIcon,
5
+ CopyIcon,
6
+ FilterSlashIcon,
7
+ FloppyDiskIcon,
8
+ PlusIcon,
9
+ TableColumnsIcon,
10
+ } from '../../../Icons';
11
+ import { useCallback, useState } from 'react';
12
+
13
+ import { Button } from '../../forms/Button';
14
+ import { DataGridContext } from './types';
15
+ import { Loading } from '../../layout/Loading';
16
+ import { useDataGridColumnsModal } from './DataGridColumnsModal/hooks';
17
+ import { useDataGridContext } from './hooks';
18
+ import { useRefreshModal } from './hooks/useRefreshModal';
19
+
20
+ export const DataGridToolbar = <R,>({
21
+ context,
22
+ }: {
23
+ context: DataGridContext<R>;
24
+ }) => {
25
+ const {
26
+ name,
27
+ setSelectedKeys,
28
+ copyTable,
29
+ setFilters,
30
+ refresh,
31
+ editable,
32
+ onSaveClicked,
33
+ onAddClicked,
34
+ addedRows,
35
+ updatedRows,
36
+ addRow,
37
+ clearChangedRows,
38
+ headerContent,
39
+ } = useDataGridContext(context);
40
+
41
+ const { openModal, modal } = useDataGridColumnsModal<R>(context);
42
+
43
+ const [isLoadingVisible, setIsLoadingVisible] = useState(false);
44
+ const runCopyTable = useCallback(() => {
45
+ setIsLoadingVisible(true);
46
+ copyTable().then(() => setIsLoadingVisible(false));
47
+ }, [copyTable]);
48
+
49
+ const save = useCallback(async () => {
50
+ if (
51
+ Object.keys(addedRows).length + Object.keys(updatedRows).length > 0 &&
52
+ onSaveClicked
53
+ ) {
54
+ const savedIds = await onSaveClicked(addedRows, updatedRows);
55
+ clearChangedRows(savedIds);
56
+ }
57
+ }, [addedRows, clearChangedRows, onSaveClicked, updatedRows]);
58
+
59
+ const add = useCallback(async () => {
60
+ if (onAddClicked) {
61
+ const row = await onAddClicked();
62
+ addRow(row);
63
+ }
64
+ }, [addRow, onAddClicked]);
65
+
66
+ const doRefresh = useCallback(() => {
67
+ refresh?.();
68
+ clearChangedRows();
69
+ setSelectedKeys([]);
70
+ }, [clearChangedRows, refresh, setSelectedKeys]);
71
+
72
+ const { openModal: openRefreshModal, modal: refreshModal } =
73
+ useRefreshModal(doRefresh);
74
+
75
+ const onRefreshClicked = useCallback(async () => {
76
+ if (addedRows.length + updatedRows.length > 0) {
77
+ openRefreshModal();
78
+ } else {
79
+ doRefresh();
80
+ }
81
+ }, [addedRows.length, doRefresh, openRefreshModal, updatedRows.length]);
82
+
83
+ return (
84
+ <>
85
+ {modal}
86
+ {refreshModal}
87
+ <styles.DataGridToolsRow>
88
+ <styles.DataGridToolsRowHeaderContent>
89
+ {headerContent}
90
+ </styles.DataGridToolsRowHeaderContent>
91
+ <styles.DataGridToolsRowButtonsContainer>
92
+ <Loading visible={isLoadingVisible} />
93
+ {editable && onSaveClicked && (
94
+ <Button size="small" $color="primary" onClick={save} bordered>
95
+ <FloppyDiskIcon />
96
+ Enregistrer
97
+ </Button>
98
+ )}
99
+ {editable && onAddClicked && (
100
+ <Button size="small" $color="success" onClick={add} bordered>
101
+ <PlusIcon />
102
+ Ajouter
103
+ </Button>
104
+ )}
105
+ {
106
+ <Button size="small" onClick={onRefreshClicked} bordered>
107
+ <ArrowsRotateIcon />
108
+ Rafraîchir
109
+ </Button>
110
+ }
111
+ <Button $color="emerald" size="small" onClick={runCopyTable} bordered>
112
+ <CopyIcon />
113
+ Copier la table
114
+ </Button>
115
+ <Button
116
+ size="small"
117
+ $color="danger"
118
+ onClick={() => setFilters({})}
119
+ bordered
120
+ >
121
+ <FilterSlashIcon />
122
+ Supprimer les filtres
123
+ </Button>
124
+ {name && (
125
+ <Button $color="info" size="small" onClick={openModal} bordered>
126
+ <TableColumnsIcon />
127
+ Paramètres des colonnes
128
+ </Button>
129
+ )}
130
+ </styles.DataGridToolsRowButtonsContainer>
131
+ </styles.DataGridToolsRow>
132
+ </>
133
+ );
134
+ };