@addev-be/ui 0.14.0 → 0.14.1

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 (441) 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/table.svg +1 -1
  21. package/assets/icons/up.svg +1 -1
  22. package/assets/icons/user-tie.svg +1 -1
  23. package/assets/icons/x-bar.svg +3 -3
  24. package/package.json +1 -1
  25. package/src/Icons.tsx +132 -132
  26. package/src/components/auth/LoginForm.tsx +84 -84
  27. package/src/components/auth/LoginPage.tsx +32 -32
  28. package/src/components/auth/PasswordRecoveryForm.tsx +52 -52
  29. package/src/components/auth/PasswordResetForm.tsx +112 -112
  30. package/src/components/auth/index.ts +4 -4
  31. package/src/components/auth/styles.ts +14 -14
  32. package/src/components/data/AdvancedRequestDataGrid/helpers/advancedRequests.ts +93 -93
  33. package/src/components/data/AdvancedRequestDataGrid/helpers/columns.tsx +262 -262
  34. package/src/components/data/AdvancedRequestDataGrid/helpers/index.ts +2 -2
  35. package/src/components/data/AdvancedRequestDataGrid/index.tsx +267 -267
  36. package/src/components/data/AdvancedRequestDataGrid/types.ts +47 -47
  37. package/src/components/data/DataGrid/DataGridCell.tsx +77 -77
  38. package/src/components/data/DataGrid/DataGridColumnsModal/helpers.ts +14 -14
  39. package/src/components/data/DataGrid/DataGridColumnsModal/hooks.tsx +59 -59
  40. package/src/components/data/DataGrid/DataGridColumnsModal/index.tsx +181 -181
  41. package/src/components/data/DataGrid/DataGridColumnsModal/styles.ts +104 -104
  42. package/src/components/data/DataGrid/DataGridEditableCell.tsx +43 -43
  43. package/src/components/data/DataGrid/DataGridFilterMenu/FilterValuesScroller.tsx +131 -131
  44. package/src/components/data/DataGrid/DataGridFilterMenu/hooks.tsx +78 -78
  45. package/src/components/data/DataGrid/DataGridFilterMenu/index.tsx +378 -378
  46. package/src/components/data/DataGrid/DataGridFilterMenu/styles.ts +97 -97
  47. package/src/components/data/DataGrid/DataGridFooter.tsx +45 -45
  48. package/src/components/data/DataGrid/DataGridHeader.tsx +128 -128
  49. package/src/components/data/DataGrid/DataGridHeaderCell.tsx +101 -101
  50. package/src/components/data/DataGrid/DataGridRowTemplate.tsx +71 -71
  51. package/src/components/data/DataGrid/FilterModalContent/index.tsx +136 -136
  52. package/src/components/data/DataGrid/FilterModalContent/styles.ts +22 -22
  53. package/src/components/data/DataGrid/constants.ts +6 -6
  54. package/src/components/data/DataGrid/helpers/columns.tsx +319 -319
  55. package/src/components/data/DataGrid/helpers/filters.ts +287 -287
  56. package/src/components/data/DataGrid/helpers/index.ts +2 -2
  57. package/src/components/data/DataGrid/hooks/index.ts +30 -30
  58. package/src/components/data/DataGrid/hooks/useDataGrid.tsx +338 -338
  59. package/src/components/data/DataGrid/hooks/useDataGridCopy.ts +175 -175
  60. package/src/components/data/DataGrid/hooks/useDataGridSettings.ts +48 -48
  61. package/src/components/data/DataGrid/index.tsx +110 -110
  62. package/src/components/data/DataGrid/styles.ts +335 -335
  63. package/src/components/data/DataGrid/types.ts +290 -290
  64. package/src/components/data/SmartQueryDataGrid/helpers/columns.tsx +333 -333
  65. package/src/components/data/SmartQueryDataGrid/helpers/hooks.ts +41 -41
  66. package/src/components/data/SmartQueryDataGrid/helpers/index.ts +2 -2
  67. package/src/components/data/SmartQueryDataGrid/helpers/smartQueries.ts +17 -17
  68. package/src/components/data/SmartQueryDataGrid/hooks.ts +75 -75
  69. package/src/components/data/SmartQueryDataGrid/index.tsx +338 -338
  70. package/src/components/data/SmartQueryDataGrid/types.ts +45 -45
  71. package/src/components/data/SqlRequestDataGrid/helpers/columns.tsx +342 -306
  72. package/src/components/data/SqlRequestDataGrid/helpers/index.ts +2 -2
  73. package/src/components/data/SqlRequestDataGrid/helpers/sqlRequests.ts +16 -16
  74. package/src/components/data/SqlRequestDataGrid/index.ts +1 -0
  75. package/src/components/data/SqlRequestDataGrid/index.tsx +387 -387
  76. package/src/components/data/SqlRequestDataGrid/styles.ts +15 -0
  77. package/src/components/data/SqlRequestDataGrid/types.ts +48 -48
  78. package/src/components/data/SqlRequestGrid/filters/FiltersSidebar.tsx +106 -106
  79. package/src/components/data/SqlRequestGrid/filters/styles.ts +88 -88
  80. package/src/components/data/SqlRequestGrid/helpers/index.ts +1 -1
  81. package/src/components/data/SqlRequestGrid/helpers/sqlRequests.ts +16 -16
  82. package/src/components/data/SqlRequestGrid/index.tsx +310 -310
  83. package/src/components/data/SqlRequestGrid/styles.ts +20 -20
  84. package/src/components/data/SqlRequestGrid/types.ts +53 -53
  85. package/src/components/data/VirtualScroller/hooks.ts +71 -71
  86. package/src/components/data/VirtualScroller/index.tsx +89 -89
  87. package/src/components/data/VirtualScroller/styles.ts +58 -58
  88. package/src/components/data/VirtualScroller/types.ts +12 -12
  89. package/src/components/data/index.ts +21 -21
  90. package/src/components/forms/AutoTextArea.tsx +41 -41
  91. package/src/components/forms/Button.tsx +133 -133
  92. package/src/components/forms/Form/Checkbox.tsx +13 -13
  93. package/src/components/forms/Form/FormGroup.tsx +27 -27
  94. package/src/components/forms/Form/Input.tsx +13 -13
  95. package/src/components/forms/Form/InputWithLabel.tsx +18 -18
  96. package/src/components/forms/Form/Select.tsx +49 -49
  97. package/src/components/forms/Form/TextArea.tsx +13 -13
  98. package/src/components/forms/Form/index.tsx +37 -37
  99. package/src/components/forms/Form/styles.ts +101 -101
  100. package/src/components/forms/Form/types.ts +7 -7
  101. package/src/components/forms/IconButton.tsx +57 -57
  102. package/src/components/forms/IndeterminateCheckbox.tsx +46 -46
  103. package/src/components/forms/Select.tsx +40 -40
  104. package/src/components/forms/VerticalLabel.tsx +20 -20
  105. package/src/components/forms/index.ts +8 -8
  106. package/src/components/forms/styles.ts +31 -31
  107. package/src/components/index.ts +6 -6
  108. package/src/components/layout/Columns.ts +20 -20
  109. package/src/components/layout/Dropdown/index.tsx +112 -112
  110. package/src/components/layout/Dropdown/styles.ts +45 -45
  111. package/src/components/layout/Grid/index.tsx +8 -8
  112. package/src/components/layout/Grid/styles.ts +34 -34
  113. package/src/components/layout/Loading/index.tsx +29 -29
  114. package/src/components/layout/Loading/styles.ts +29 -29
  115. package/src/components/layout/Masonry/index.tsx +29 -29
  116. package/src/components/layout/Masonry/styles.ts +20 -20
  117. package/src/components/layout/Modal/index.tsx +51 -51
  118. package/src/components/layout/Modal/styles.ts +121 -121
  119. package/src/components/layout/index.ts +6 -6
  120. package/src/components/search/HighlightedText.tsx +37 -37
  121. package/src/components/search/QuickSearchBar.tsx +86 -86
  122. package/src/components/search/QuickSearchResults.tsx +86 -86
  123. package/src/components/search/index.ts +9 -9
  124. package/src/components/search/styles.ts +96 -96
  125. package/src/components/search/types.ts +26 -26
  126. package/src/components/ui/Avatar/index.tsx +54 -54
  127. package/src/components/ui/Avatar/styles.ts +61 -61
  128. package/src/components/ui/Card/index.tsx +14 -14
  129. package/src/components/ui/Card/styles.ts +37 -37
  130. package/src/components/ui/ContextMenu/index.tsx +79 -79
  131. package/src/components/ui/ContextMenu/styles.ts +119 -119
  132. package/src/components/ui/Message/index.tsx +57 -57
  133. package/src/components/ui/Message/styles.ts +40 -40
  134. package/src/components/ui/index.ts +5 -5
  135. package/src/config/index.ts +14 -14
  136. package/src/helpers/dates.ts +17 -17
  137. package/src/helpers/getScrollbarSize.ts +14 -14
  138. package/src/helpers/index.ts +3 -3
  139. package/src/helpers/numbers.ts +26 -26
  140. package/src/helpers/text.ts +13 -13
  141. package/src/hooks/index.ts +3 -3
  142. package/src/hooks/useElementSize.ts +24 -24
  143. package/src/hooks/useShowArchived.ts +28 -28
  144. package/src/hooks/useWindowSize.ts +20 -20
  145. package/src/index.ts +9 -9
  146. package/src/providers/AuthenticationProvider/helpers.ts +3 -3
  147. package/src/providers/AuthenticationProvider/index.tsx +243 -243
  148. package/src/providers/LoadingProvider/index.tsx +47 -47
  149. package/src/providers/PortalsProvider/index.tsx +54 -54
  150. package/src/providers/PortalsProvider/styles.ts +31 -31
  151. package/src/providers/SettingsProvider/index.tsx +70 -70
  152. package/src/providers/ThemeProvider/ThemeProvider.ts +63 -63
  153. package/src/providers/ThemeProvider/defaultTheme.ts +457 -457
  154. package/src/providers/ThemeProvider/helpers.ts +11 -11
  155. package/src/providers/ThemeProvider/index.ts +4 -4
  156. package/src/providers/ThemeProvider/types.ts +131 -131
  157. package/src/providers/TrackingProvider/hooks.ts +14 -14
  158. package/src/providers/TrackingProvider/index.tsx +71 -71
  159. package/src/providers/UiProviders/index.tsx +68 -68
  160. package/src/providers/UiProviders/styles.ts +10 -10
  161. package/src/providers/hooks.ts +12 -12
  162. package/src/providers/index.ts +8 -8
  163. package/src/services/HttpService.ts +92 -92
  164. package/src/services/WebSocketService.ts +137 -137
  165. package/src/services/advancedRequests.ts +102 -102
  166. package/src/services/base.ts +23 -23
  167. package/src/services/globalSearch.ts +29 -29
  168. package/src/services/hooks.ts +44 -44
  169. package/src/services/index.ts +20 -20
  170. package/src/services/requests/auth.ts +44 -44
  171. package/src/services/requests/generic.ts +62 -62
  172. package/src/services/requests/tracking.ts +12 -12
  173. package/src/services/requests/userProfiles.ts +35 -35
  174. package/src/services/requests/users.ts +28 -28
  175. package/src/services/smartQueries.ts +122 -122
  176. package/src/services/sqlRequests.ts +111 -111
  177. package/src/services/types/auth.ts +131 -131
  178. package/src/services/types/base.ts +10 -10
  179. package/src/services/types/generic.ts +96 -96
  180. package/src/services/types/tracking.ts +39 -39
  181. package/src/services/types/userProfiles.ts +107 -107
  182. package/src/services/types/users.ts +106 -106
  183. package/src/styles/animations.scss +30 -30
  184. package/src/styles/index.scss +42 -42
  185. package/src/typings.d.ts +13 -13
  186. package/tsconfig.json +18 -18
  187. package/dist/Icons.d.ts +0 -49
  188. package/dist/Icons.js +0 -128
  189. package/dist/components/auth/LoginForm.d.ts +0 -2
  190. package/dist/components/auth/LoginForm.js +0 -47
  191. package/dist/components/auth/LoginPage.d.ts +0 -2
  192. package/dist/components/auth/LoginPage.js +0 -9
  193. package/dist/components/auth/PasswordRecoveryForm.d.ts +0 -2
  194. package/dist/components/auth/PasswordRecoveryForm.js +0 -24
  195. package/dist/components/auth/PasswordResetForm.d.ts +0 -2
  196. package/dist/components/auth/PasswordResetForm.js +0 -56
  197. package/dist/components/auth/index.d.ts +0 -4
  198. package/dist/components/auth/index.js +0 -20
  199. package/dist/components/auth/styles.d.ts +0 -3
  200. package/dist/components/auth/styles.js +0 -16
  201. package/dist/components/data/AdvancedRequestDataGrid/helpers/advancedRequests.d.ts +0 -14
  202. package/dist/components/data/AdvancedRequestDataGrid/helpers/advancedRequests.js +0 -76
  203. package/dist/components/data/AdvancedRequestDataGrid/helpers/columns.d.ts +0 -22
  204. package/dist/components/data/AdvancedRequestDataGrid/helpers/columns.js +0 -156
  205. package/dist/components/data/AdvancedRequestDataGrid/helpers/index.d.ts +0 -2
  206. package/dist/components/data/AdvancedRequestDataGrid/helpers/index.js +0 -18
  207. package/dist/components/data/AdvancedRequestDataGrid/index.d.ts +0 -2
  208. package/dist/components/data/AdvancedRequestDataGrid/index.js +0 -215
  209. package/dist/components/data/AdvancedRequestDataGrid/types.d.ts +0 -21
  210. package/dist/components/data/AdvancedRequestDataGrid/types.js +0 -2
  211. package/dist/components/data/DataGrid/AdvancedRequestDataGrid.d.ts +0 -10
  212. package/dist/components/data/DataGrid/AdvancedRequestDataGrid.js +0 -173
  213. package/dist/components/data/DataGrid/DataGridCell.d.ts +0 -2
  214. package/dist/components/data/DataGrid/DataGridCell.js +0 -59
  215. package/dist/components/data/DataGrid/DataGridColumnsModal/helpers.d.ts +0 -2
  216. package/dist/components/data/DataGrid/DataGridColumnsModal/helpers.js +0 -24
  217. package/dist/components/data/DataGrid/DataGridColumnsModal/hooks.d.ts +0 -6
  218. package/dist/components/data/DataGrid/DataGridColumnsModal/hooks.js +0 -38
  219. package/dist/components/data/DataGrid/DataGridColumnsModal/index.d.ts +0 -15
  220. package/dist/components/data/DataGrid/DataGridColumnsModal/index.js +0 -111
  221. package/dist/components/data/DataGrid/DataGridColumnsModal/styles.d.ts +0 -22
  222. package/dist/components/data/DataGrid/DataGridColumnsModal/styles.js +0 -54
  223. package/dist/components/data/DataGrid/DataGridEditableCell.d.ts +0 -2
  224. package/dist/components/data/DataGrid/DataGridEditableCell.js +0 -27
  225. package/dist/components/data/DataGrid/DataGridFilterMenu/FilterValuesScroller.d.ts +0 -13
  226. package/dist/components/data/DataGrid/DataGridFilterMenu/FilterValuesScroller.js +0 -71
  227. package/dist/components/data/DataGrid/DataGridFilterMenu/hooks.d.ts +0 -9
  228. package/dist/components/data/DataGrid/DataGridFilterMenu/hooks.js +0 -52
  229. package/dist/components/data/DataGrid/DataGridFilterMenu/index.d.ts +0 -9
  230. package/dist/components/data/DataGrid/DataGridFilterMenu/index.js +0 -221
  231. package/dist/components/data/DataGrid/DataGridFilterMenu/styles.d.ts +0 -18
  232. package/dist/components/data/DataGrid/DataGridFilterMenu/styles.js +0 -31
  233. package/dist/components/data/DataGrid/DataGridFooter.d.ts +0 -4
  234. package/dist/components/data/DataGrid/DataGridFooter.js +0 -44
  235. package/dist/components/data/DataGrid/DataGridHeader.d.ts +0 -4
  236. package/dist/components/data/DataGrid/DataGridHeader.js +0 -119
  237. package/dist/components/data/DataGrid/DataGridHeaderCell.d.ts +0 -2
  238. package/dist/components/data/DataGrid/DataGridHeaderCell.js +0 -84
  239. package/dist/components/data/DataGrid/DataGridRowTemplate.d.ts +0 -3
  240. package/dist/components/data/DataGrid/DataGridRowTemplate.js +0 -71
  241. package/dist/components/data/DataGrid/FilterModalContent/index.d.ts +0 -7
  242. package/dist/components/data/DataGrid/FilterModalContent/index.js +0 -117
  243. package/dist/components/data/DataGrid/FilterModalContent/styles.d.ts +0 -3
  244. package/dist/components/data/DataGrid/FilterModalContent/styles.js +0 -15
  245. package/dist/components/data/DataGrid/FilterValuesScroller.d.ts +0 -13
  246. package/dist/components/data/DataGrid/FilterValuesScroller.js +0 -73
  247. package/dist/components/data/DataGrid/VirtualScroller.d.ts +0 -11
  248. package/dist/components/data/DataGrid/VirtualScroller.js +0 -41
  249. package/dist/components/data/DataGrid/helpers/advancedRequests.d.ts +0 -12
  250. package/dist/components/data/DataGrid/helpers/advancedRequests.js +0 -53
  251. package/dist/components/data/DataGrid/helpers/columns.d.ts +0 -14
  252. package/dist/components/data/DataGrid/helpers/columns.js +0 -176
  253. package/dist/components/data/DataGrid/helpers/filters.d.ts +0 -18
  254. package/dist/components/data/DataGrid/helpers/filters.js +0 -334
  255. package/dist/components/data/DataGrid/helpers/index.d.ts +0 -2
  256. package/dist/components/data/DataGrid/helpers/index.js +0 -18
  257. package/dist/components/data/DataGrid/helpers.d.ts +0 -28
  258. package/dist/components/data/DataGrid/helpers.js +0 -436
  259. package/dist/components/data/DataGrid/hooks/index.d.ts +0 -7
  260. package/dist/components/data/DataGrid/hooks/index.js +0 -34
  261. package/dist/components/data/DataGrid/hooks/useDataGrid.d.ts +0 -2
  262. package/dist/components/data/DataGrid/hooks/useDataGrid.js +0 -241
  263. package/dist/components/data/DataGrid/hooks/useDataGridCopy.d.ts +0 -4
  264. package/dist/components/data/DataGrid/hooks/useDataGridCopy.js +0 -163
  265. package/dist/components/data/DataGrid/hooks/useDataGridSettings.d.ts +0 -16
  266. package/dist/components/data/DataGrid/hooks/useDataGridSettings.js +0 -43
  267. package/dist/components/data/DataGrid/index.d.ts +0 -8
  268. package/dist/components/data/DataGrid/index.js +0 -63
  269. package/dist/components/data/DataGrid/styles.d.ts +0 -47
  270. package/dist/components/data/DataGrid/styles.js +0 -111
  271. package/dist/components/data/DataGrid/types.d.ts +0 -172
  272. package/dist/components/data/DataGrid/types.js +0 -34
  273. package/dist/components/data/SqlRequestDataGrid/helpers/columns.d.ts +0 -17
  274. package/dist/components/data/SqlRequestDataGrid/helpers/columns.js +0 -136
  275. package/dist/components/data/SqlRequestDataGrid/helpers/index.d.ts +0 -2
  276. package/dist/components/data/SqlRequestDataGrid/helpers/index.js +0 -18
  277. package/dist/components/data/SqlRequestDataGrid/helpers/sqlRequests.d.ts +0 -3
  278. package/dist/components/data/SqlRequestDataGrid/helpers/sqlRequests.js +0 -18
  279. package/dist/components/data/SqlRequestDataGrid/index.d.ts +0 -13
  280. package/dist/components/data/SqlRequestDataGrid/index.js +0 -309
  281. package/dist/components/data/SqlRequestDataGrid/types.d.ts +0 -21
  282. package/dist/components/data/SqlRequestDataGrid/types.js +0 -2
  283. package/dist/components/data/SqlRequestGrid/helpers/index.d.ts +0 -1
  284. package/dist/components/data/SqlRequestGrid/helpers/index.js +0 -17
  285. package/dist/components/data/SqlRequestGrid/helpers/sqlRequests.d.ts +0 -3
  286. package/dist/components/data/SqlRequestGrid/helpers/sqlRequests.js +0 -18
  287. package/dist/components/data/SqlRequestGrid/index.d.ts +0 -4
  288. package/dist/components/data/SqlRequestGrid/index.js +0 -145
  289. package/dist/components/data/SqlRequestGrid/styles.d.ts +0 -16
  290. package/dist/components/data/SqlRequestGrid/styles.js +0 -33
  291. package/dist/components/data/SqlRequestGrid/types.d.ts +0 -30
  292. package/dist/components/data/SqlRequestGrid/types.js +0 -3
  293. package/dist/components/data/VirtualScroller/hooks.d.ts +0 -18
  294. package/dist/components/data/VirtualScroller/hooks.js +0 -50
  295. package/dist/components/data/VirtualScroller/index.d.ts +0 -14
  296. package/dist/components/data/VirtualScroller/index.js +0 -58
  297. package/dist/components/data/VirtualScroller/styles.d.ts +0 -16
  298. package/dist/components/data/VirtualScroller/styles.js +0 -39
  299. package/dist/components/data/VirtualScroller/types.d.ts +0 -6
  300. package/dist/components/data/VirtualScroller/types.js +0 -3
  301. package/dist/components/data/index.d.ts +0 -13
  302. package/dist/components/data/index.js +0 -29
  303. package/dist/components/forms/Button.d.ts +0 -10
  304. package/dist/components/forms/Button.js +0 -70
  305. package/dist/components/forms/IconButton.d.ts +0 -7
  306. package/dist/components/forms/IconButton.js +0 -64
  307. package/dist/components/forms/IndeterminateCheckbox.d.ts +0 -8
  308. package/dist/components/forms/IndeterminateCheckbox.js +0 -41
  309. package/dist/components/forms/Select.d.ts +0 -10
  310. package/dist/components/forms/Select.js +0 -49
  311. package/dist/components/forms/VerticalLabel.d.ts +0 -6
  312. package/dist/components/forms/VerticalLabel.js +0 -32
  313. package/dist/components/forms/index.d.ts +0 -5
  314. package/dist/components/forms/index.js +0 -21
  315. package/dist/components/forms/styles.d.ts +0 -7
  316. package/dist/components/forms/styles.js +0 -39
  317. package/dist/components/index.d.ts +0 -6
  318. package/dist/components/index.js +0 -22
  319. package/dist/components/layout/Dropdown/index.d.ts +0 -11
  320. package/dist/components/layout/Dropdown/index.js +0 -85
  321. package/dist/components/layout/Dropdown/styles.d.ts +0 -14
  322. package/dist/components/layout/Dropdown/styles.js +0 -48
  323. package/dist/components/layout/Loading/index.d.ts +0 -6
  324. package/dist/components/layout/Loading/index.js +0 -42
  325. package/dist/components/layout/Loading/styles.d.ts +0 -6
  326. package/dist/components/layout/Loading/styles.js +0 -18
  327. package/dist/components/layout/Modal/index.d.ts +0 -16
  328. package/dist/components/layout/Modal/index.js +0 -67
  329. package/dist/components/layout/Modal/styles.d.ts +0 -34
  330. package/dist/components/layout/Modal/styles.js +0 -56
  331. package/dist/components/layout/index.d.ts +0 -3
  332. package/dist/components/layout/index.js +0 -19
  333. package/dist/components/search/HighlightedText.d.ts +0 -5
  334. package/dist/components/search/HighlightedText.js +0 -43
  335. package/dist/components/search/QuickSearchBar.d.ts +0 -6
  336. package/dist/components/search/QuickSearchBar.js +0 -69
  337. package/dist/components/search/QuickSearchResults.d.ts +0 -8
  338. package/dist/components/search/QuickSearchResults.js +0 -70
  339. package/dist/components/search/index.d.ts +0 -5
  340. package/dist/components/search/index.js +0 -25
  341. package/dist/components/search/styles.d.ts +0 -28
  342. package/dist/components/search/styles.js +0 -40
  343. package/dist/components/search/types.d.ts +0 -21
  344. package/dist/components/search/types.js +0 -2
  345. package/dist/components/ui/Card/index.d.ts +0 -8
  346. package/dist/components/ui/Card/index.js +0 -34
  347. package/dist/components/ui/Card/styles.d.ts +0 -9
  348. package/dist/components/ui/Card/styles.js +0 -21
  349. package/dist/components/ui/ContextMenu/index.d.ts +0 -11
  350. package/dist/components/ui/ContextMenu/index.js +0 -63
  351. package/dist/components/ui/ContextMenu/styles.d.ts +0 -18
  352. package/dist/components/ui/ContextMenu/styles.js +0 -56
  353. package/dist/components/ui/Message/index.d.ts +0 -9
  354. package/dist/components/ui/Message/index.js +0 -53
  355. package/dist/components/ui/Message/styles.d.ts +0 -9
  356. package/dist/components/ui/Message/styles.js +0 -41
  357. package/dist/components/ui/index.d.ts +0 -3
  358. package/dist/components/ui/index.js +0 -19
  359. package/dist/config/index.d.ts +0 -10
  360. package/dist/config/index.js +0 -2
  361. package/dist/config/types.d.ts +0 -11
  362. package/dist/config/types.js +0 -2
  363. package/dist/helpers/dates.d.ts +0 -3
  364. package/dist/helpers/dates.js +0 -19
  365. package/dist/helpers/getScrollbarSize.d.ts +0 -1
  366. package/dist/helpers/getScrollbarSize.js +0 -17
  367. package/dist/helpers/index.d.ts +0 -3
  368. package/dist/helpers/index.js +0 -19
  369. package/dist/helpers/numbers.d.ts +0 -4
  370. package/dist/helpers/numbers.js +0 -39
  371. package/dist/helpers/text.d.ts +0 -2
  372. package/dist/helpers/text.js +0 -18
  373. package/dist/hooks/index.d.ts +0 -2
  374. package/dist/hooks/index.js +0 -18
  375. package/dist/hooks/useElementSize.d.ts +0 -4
  376. package/dist/hooks/useElementSize.js +0 -23
  377. package/dist/hooks/useWindowSize.d.ts +0 -4
  378. package/dist/hooks/useWindowSize.js +0 -19
  379. package/dist/index.d.ts +0 -6
  380. package/dist/index.js +0 -22
  381. package/dist/providers/AuthenticationProvider/helpers.d.ts +0 -1
  382. package/dist/providers/AuthenticationProvider/helpers.js +0 -6
  383. package/dist/providers/AuthenticationProvider/index.d.ts +0 -22
  384. package/dist/providers/AuthenticationProvider/index.js +0 -207
  385. package/dist/providers/LoadingProvider/index.d.ts +0 -7
  386. package/dist/providers/LoadingProvider/index.js +0 -26
  387. package/dist/providers/PortalsProvider/index.d.ts +0 -10
  388. package/dist/providers/PortalsProvider/index.js +0 -46
  389. package/dist/providers/PortalsProvider/styles.d.ts +0 -9
  390. package/dist/providers/PortalsProvider/styles.js +0 -21
  391. package/dist/providers/SettingsProvider/index.d.ts +0 -8
  392. package/dist/providers/SettingsProvider/index.js +0 -54
  393. package/dist/providers/ThemeProvider/ThemeProvider.d.ts +0 -7
  394. package/dist/providers/ThemeProvider/ThemeProvider.js +0 -51
  395. package/dist/providers/ThemeProvider/defaultTheme.d.ts +0 -2
  396. package/dist/providers/ThemeProvider/defaultTheme.js +0 -417
  397. package/dist/providers/ThemeProvider/index.d.ts +0 -3
  398. package/dist/providers/ThemeProvider/index.js +0 -22
  399. package/dist/providers/ThemeProvider/types.d.ts +0 -24
  400. package/dist/providers/ThemeProvider/types.js +0 -2
  401. package/dist/providers/UiProviders/index.d.ts +0 -12
  402. package/dist/providers/UiProviders/index.js +0 -62
  403. package/dist/providers/UiProviders/styles.d.ts +0 -3
  404. package/dist/providers/UiProviders/styles.js +0 -13
  405. package/dist/providers/hooks.d.ts +0 -5
  406. package/dist/providers/hooks.js +0 -19
  407. package/dist/providers/index.d.ts +0 -5
  408. package/dist/providers/index.js +0 -21
  409. package/dist/services/HttpService.d.ts +0 -10
  410. package/dist/services/HttpService.js +0 -125
  411. package/dist/services/WebSocketService.d.ts +0 -23
  412. package/dist/services/WebSocketService.js +0 -125
  413. package/dist/services/advancedRequests.d.ts +0 -41
  414. package/dist/services/advancedRequests.js +0 -13
  415. package/dist/services/base.d.ts +0 -14
  416. package/dist/services/base.js +0 -7
  417. package/dist/services/globalSearch.d.ts +0 -13
  418. package/dist/services/globalSearch.js +0 -8
  419. package/dist/services/hooks.d.ts +0 -3
  420. package/dist/services/hooks.js +0 -29
  421. package/dist/services/index.d.ts +0 -11
  422. package/dist/services/index.js +0 -27
  423. package/dist/services/requests/auth.d.ts +0 -63
  424. package/dist/services/requests/auth.js +0 -28
  425. package/dist/services/requests/userPermissions.d.ts +0 -4
  426. package/dist/services/requests/userPermissions.js +0 -20
  427. package/dist/services/requests/userProfiles.d.ts +0 -40
  428. package/dist/services/requests/userProfiles.js +0 -20
  429. package/dist/services/requests/users.d.ts +0 -84
  430. package/dist/services/requests/users.js +0 -20
  431. package/dist/services/sqlRequests.d.ts +0 -45
  432. package/dist/services/sqlRequests.js +0 -11
  433. package/dist/services/types/auth.d.ts +0 -87
  434. package/dist/services/types/auth.js +0 -72
  435. package/dist/services/types/base.d.ts +0 -6
  436. package/dist/services/types/base.js +0 -31
  437. package/dist/services/types/userProfiles.d.ts +0 -64
  438. package/dist/services/types/userProfiles.js +0 -68
  439. package/dist/services/types/users.d.ts +0 -118
  440. package/dist/services/types/users.js +0 -83
  441. package/tsconfig.tsbuildinfo +0 -1
@@ -1,24 +1,24 @@
1
- import { useEffect, useState } from 'react';
2
-
3
- export const useElementSize = (element: HTMLElement | null) => {
4
- const [size, setSize] = useState({ width: 0, height: 0 });
5
-
6
- useEffect(() => {
7
- if (!element) {
8
- return;
9
- }
10
-
11
- const observer = new ResizeObserver((entries) => {
12
- const entry = entries[0];
13
- const { width, height } = entry.contentRect;
14
- setSize({ width, height });
15
- });
16
-
17
- observer.observe(element);
18
- return () => {
19
- observer.disconnect();
20
- };
21
- }, [element]);
22
-
23
- return size;
24
- };
1
+ import { useEffect, useState } from 'react';
2
+
3
+ export const useElementSize = (element: HTMLElement | null) => {
4
+ const [size, setSize] = useState({ width: 0, height: 0 });
5
+
6
+ useEffect(() => {
7
+ if (!element) {
8
+ return;
9
+ }
10
+
11
+ const observer = new ResizeObserver((entries) => {
12
+ const entry = entries[0];
13
+ const { width, height } = entry.contentRect;
14
+ setSize({ width, height });
15
+ });
16
+
17
+ observer.observe(element);
18
+ return () => {
19
+ observer.disconnect();
20
+ };
21
+ }, [element]);
22
+
23
+ return size;
24
+ };
@@ -1,28 +1,28 @@
1
- import { useCallback, useMemo, useState } from 'react';
2
-
3
- import { ConditionDTO } from '../services/sqlRequests';
4
-
5
- export const useShowArchived = (initialValue?: boolean) => {
6
- const [showArchived, setShowArchived] = useState(initialValue ?? false);
7
-
8
- const toggleShowArchived = useCallback((value?: boolean) => {
9
- setShowArchived((prev) => (value === undefined ? !prev : value));
10
- }, []);
11
-
12
- const archivedConditions = useMemo<ConditionDTO[]>(
13
- () =>
14
- showArchived
15
- ? []
16
- : [{ field: 'Archived', operator: 'notEquals', value: 1 }],
17
- [showArchived]
18
- );
19
-
20
- return useMemo(
21
- () => ({
22
- archivedConditions,
23
- showArchived,
24
- toggleShowArchived,
25
- }),
26
- [archivedConditions, showArchived, toggleShowArchived]
27
- );
28
- };
1
+ import { useCallback, useMemo, useState } from 'react';
2
+
3
+ import { ConditionDTO } from '../services/sqlRequests';
4
+
5
+ export const useShowArchived = (initialValue?: boolean) => {
6
+ const [showArchived, setShowArchived] = useState(initialValue ?? false);
7
+
8
+ const toggleShowArchived = useCallback((value?: boolean) => {
9
+ setShowArchived((prev) => (value === undefined ? !prev : value));
10
+ }, []);
11
+
12
+ const archivedConditions = useMemo<ConditionDTO[]>(
13
+ () =>
14
+ showArchived
15
+ ? []
16
+ : [{ field: 'Archived', operator: 'notEquals', value: 1 }],
17
+ [showArchived]
18
+ );
19
+
20
+ return useMemo(
21
+ () => ({
22
+ archivedConditions,
23
+ showArchived,
24
+ toggleShowArchived,
25
+ }),
26
+ [archivedConditions, showArchived, toggleShowArchived]
27
+ );
28
+ };
@@ -1,20 +1,20 @@
1
- import { useEffect, useState } from 'react';
2
-
3
- export const useWindowSize = () => {
4
- const [size, setSize] = useState({ width: 0, height: 0 });
5
-
6
- useEffect(() => {
7
- const handleResize = () => {
8
- setSize({ width: window.outerWidth, height: window.outerHeight });
9
- };
10
-
11
- window.addEventListener('resize', handleResize);
12
- handleResize();
13
-
14
- return () => {
15
- window.removeEventListener('resize', handleResize);
16
- };
17
- }, []);
18
-
19
- return size;
20
- };
1
+ import { useEffect, useState } from 'react';
2
+
3
+ export const useWindowSize = () => {
4
+ const [size, setSize] = useState({ width: 0, height: 0 });
5
+
6
+ useEffect(() => {
7
+ const handleResize = () => {
8
+ setSize({ width: window.outerWidth, height: window.outerHeight });
9
+ };
10
+
11
+ window.addEventListener('resize', handleResize);
12
+ handleResize();
13
+
14
+ return () => {
15
+ window.removeEventListener('resize', handleResize);
16
+ };
17
+ }, []);
18
+
19
+ return size;
20
+ };
package/src/index.ts CHANGED
@@ -1,9 +1,9 @@
1
- export * from './components';
2
- export * from './providers';
3
-
4
- export * from './Icons';
5
-
6
- export * from './config';
7
- export * from './helpers';
8
- export * from './hooks';
9
- export * from './services';
1
+ export * from './components';
2
+ export * from './providers';
3
+
4
+ export * from './Icons';
5
+
6
+ export * from './config';
7
+ export * from './helpers';
8
+ export * from './hooks';
9
+ export * from './services';
@@ -1,3 +1,3 @@
1
- export const basePermissions: Record<string, string> = {
2
- 'users.manage': 'Gérer les utilisateurs',
3
- };
1
+ export const basePermissions: Record<string, string> = {
2
+ 'users.manage': 'Gérer les utilisateurs',
3
+ };
@@ -1,243 +1,243 @@
1
- import {
2
- FC,
3
- PropsWithChildren,
4
- createContext,
5
- useCallback,
6
- useEffect,
7
- useMemo,
8
- useState,
9
- } from 'react';
10
- import {
11
- UserDTO,
12
- WebSocketService,
13
- useAuthenticateRequestHandler,
14
- useCheckRecoveryKeyRequestHandler,
15
- useLoginRequestHandler,
16
- useLogoutRequestHandler,
17
- useResetPasswordRequestHandler,
18
- useSendRecoveryKeyRequestHandler,
19
- } from '../../services';
20
-
21
- import { basePermissions } from './helpers';
22
-
23
- export type AuthenticationContextProps = {
24
- token?: string;
25
- user?: UserDTO;
26
- isAuthenticated: boolean;
27
- authenticate: () => void;
28
- login: (username: string, password: string) => Promise<boolean>;
29
- logout: () => Promise<boolean>;
30
- sendRecoveryKey: (email: string) => Promise<number>;
31
- checkRecoveryKey: (key: string) => Promise<number>;
32
- resetPassword: (key: string, password: string) => Promise<number>;
33
- permissions: Record<string, string>;
34
- hasPermission: (permission: string) => boolean;
35
- setToken: (token?: string) => void;
36
- };
37
-
38
- export const AuthenticationContext = createContext<AuthenticationContextProps>({
39
- authenticate: () => {},
40
- isAuthenticated: false,
41
- login: async () => false,
42
- logout: async () => false,
43
- sendRecoveryKey: async () => -1,
44
- checkRecoveryKey: async () => -1,
45
- resetPassword: async () => -1,
46
- permissions: {},
47
- hasPermission: () => false,
48
- setToken: () => {},
49
- });
50
-
51
- export type AuthenticationProviderProps = PropsWithChildren<{
52
- permissions?: Record<string, string>;
53
- loginComponent?: FC;
54
- requestHandlerName?: string;
55
- }>;
56
-
57
- export const AuthenticationProvider: FC<AuthenticationProviderProps> = ({
58
- permissions,
59
- loginComponent: LoginComponent,
60
- children,
61
- requestHandlerName,
62
- }) => {
63
- const allPermissions = useMemo(
64
- () => ({ ...basePermissions, ...permissions }),
65
- [permissions]
66
- );
67
- const [, setWebSocketStatus] = useState<boolean | undefined>(false);
68
- const [token, setToken] = useState<string | undefined>(
69
- sessionStorage.getItem('authToken') || undefined
70
- );
71
- const [user, setUser] = useState<UserDTO | undefined>(undefined);
72
-
73
- const sendAuthenticateRequest =
74
- useAuthenticateRequestHandler(requestHandlerName);
75
- const sendLoginRequest = useLoginRequestHandler();
76
- const sendLogoutRequest = useLogoutRequestHandler();
77
-
78
- const sendSendRecoveryKeyRequest = useSendRecoveryKeyRequestHandler();
79
- const sendCheckRecoveryKeyRequest = useCheckRecoveryKeyRequestHandler();
80
- const sendResetPasswordRequest = useResetPasswordRequestHandler();
81
-
82
- const authenticate = useCallback(
83
- (force = false) => {
84
- if (token && (!user || force)) {
85
- sendAuthenticateRequest({ token }).then(
86
- (response) => {
87
- if (response.status === 0 && response.user) {
88
- setUser(response.user);
89
- } else if (response.status > 0) {
90
- setToken(undefined);
91
- setUser(undefined);
92
- }
93
- },
94
- () => {
95
- setToken(undefined);
96
- setUser(undefined);
97
- }
98
- );
99
- }
100
- },
101
- [sendAuthenticateRequest, token, user]
102
- );
103
-
104
- useEffect(() => {
105
- if (token) {
106
- sessionStorage.setItem('authToken', token);
107
- authenticate();
108
- } else {
109
- sessionStorage.removeItem('authToken');
110
- }
111
- }, [authenticate, token]);
112
-
113
- const login = useCallback(
114
- async (username: string, password: string) =>
115
- sendLoginRequest({ username, password })
116
- .then((response) => {
117
- if (response.status === 0 && response.user) {
118
- setToken(response.token);
119
- setUser(response.user);
120
- return true;
121
- }
122
- throw new Error(`Login failed with status ${response.status}`);
123
- })
124
- .catch(() => {
125
- setToken(undefined);
126
- setUser(undefined);
127
- return false;
128
- }),
129
- [sendLoginRequest]
130
- );
131
-
132
- const logout = useCallback(
133
- async () =>
134
- sendLogoutRequest({})
135
- .then((response) => {
136
- return response.status === 0;
137
- })
138
- .finally(() => {
139
- setToken(undefined);
140
- setUser(undefined);
141
- }),
142
- [sendLogoutRequest]
143
- );
144
-
145
- const sendRecoveryKey = useCallback(
146
- async (email: string) =>
147
- sendSendRecoveryKeyRequest({ email }).then((response) => {
148
- return response.status;
149
- }),
150
- [sendSendRecoveryKeyRequest]
151
- );
152
-
153
- const resetPassword = useCallback(
154
- async (key: string, password: string) =>
155
- sendResetPasswordRequest({ key, password }).then((response) => {
156
- return response.status;
157
- }),
158
- [sendResetPasswordRequest]
159
- );
160
-
161
- const checkRecoveryKey = useCallback(
162
- async (key: string) =>
163
- sendCheckRecoveryKeyRequest({ key }).then((response) => {
164
- return response.status;
165
- }),
166
- [sendCheckRecoveryKeyRequest]
167
- );
168
-
169
- const hasPermission = useCallback(
170
- (permission: string) =>
171
- permission in allPermissions &&
172
- !!allPermissions[permission] &&
173
- (user?.isAdmin ||
174
- user?.profile?.isAdmin ||
175
- (user?.permissions?.includes(permission) ?? false) ||
176
- (user?.profile?.permissions?.includes(permission) ?? false)),
177
- [
178
- allPermissions,
179
- user?.isAdmin,
180
- user?.permissions,
181
- user?.profile?.isAdmin,
182
- user?.profile?.permissions,
183
- ]
184
- );
185
-
186
- const contextValue = useMemo(
187
- () => ({
188
- token,
189
- user,
190
- isAuthenticated: !!user,
191
- authenticate,
192
- login,
193
- logout,
194
- sendRecoveryKey,
195
- checkRecoveryKey,
196
- resetPassword,
197
- permissions: allPermissions,
198
- hasPermission,
199
- setToken,
200
- }),
201
- [
202
- allPermissions,
203
- authenticate,
204
- checkRecoveryKey,
205
- hasPermission,
206
- login,
207
- logout,
208
- resetPassword,
209
- sendRecoveryKey,
210
- token,
211
- user,
212
- setToken,
213
- ]
214
- );
215
-
216
- useEffect(() => {
217
- const subscription = WebSocketService.getInstance()?.status$.subscribe(
218
- (newStatus) => {
219
- setWebSocketStatus((previousStatus) => {
220
- if (!previousStatus && newStatus) {
221
- authenticate(true);
222
- }
223
- return newStatus;
224
- });
225
- }
226
- );
227
- return () => subscription?.unsubscribe();
228
- }, [authenticate]);
229
-
230
- return (
231
- <AuthenticationContext.Provider value={contextValue}>
232
- {!user ? (
233
- LoginComponent ? (
234
- <LoginComponent />
235
- ) : (
236
- <div>Not authenticated</div>
237
- )
238
- ) : (
239
- children
240
- )}
241
- </AuthenticationContext.Provider>
242
- );
243
- };
1
+ import {
2
+ FC,
3
+ PropsWithChildren,
4
+ createContext,
5
+ useCallback,
6
+ useEffect,
7
+ useMemo,
8
+ useState,
9
+ } from 'react';
10
+ import {
11
+ UserDTO,
12
+ WebSocketService,
13
+ useAuthenticateRequestHandler,
14
+ useCheckRecoveryKeyRequestHandler,
15
+ useLoginRequestHandler,
16
+ useLogoutRequestHandler,
17
+ useResetPasswordRequestHandler,
18
+ useSendRecoveryKeyRequestHandler,
19
+ } from '../../services';
20
+
21
+ import { basePermissions } from './helpers';
22
+
23
+ export type AuthenticationContextProps = {
24
+ token?: string;
25
+ user?: UserDTO;
26
+ isAuthenticated: boolean;
27
+ authenticate: () => void;
28
+ login: (username: string, password: string) => Promise<boolean>;
29
+ logout: () => Promise<boolean>;
30
+ sendRecoveryKey: (email: string) => Promise<number>;
31
+ checkRecoveryKey: (key: string) => Promise<number>;
32
+ resetPassword: (key: string, password: string) => Promise<number>;
33
+ permissions: Record<string, string>;
34
+ hasPermission: (permission: string) => boolean;
35
+ setToken: (token?: string) => void;
36
+ };
37
+
38
+ export const AuthenticationContext = createContext<AuthenticationContextProps>({
39
+ authenticate: () => {},
40
+ isAuthenticated: false,
41
+ login: async () => false,
42
+ logout: async () => false,
43
+ sendRecoveryKey: async () => -1,
44
+ checkRecoveryKey: async () => -1,
45
+ resetPassword: async () => -1,
46
+ permissions: {},
47
+ hasPermission: () => false,
48
+ setToken: () => {},
49
+ });
50
+
51
+ export type AuthenticationProviderProps = PropsWithChildren<{
52
+ permissions?: Record<string, string>;
53
+ loginComponent?: FC;
54
+ requestHandlerName?: string;
55
+ }>;
56
+
57
+ export const AuthenticationProvider: FC<AuthenticationProviderProps> = ({
58
+ permissions,
59
+ loginComponent: LoginComponent,
60
+ children,
61
+ requestHandlerName,
62
+ }) => {
63
+ const allPermissions = useMemo(
64
+ () => ({ ...basePermissions, ...permissions }),
65
+ [permissions]
66
+ );
67
+ const [, setWebSocketStatus] = useState<boolean | undefined>(false);
68
+ const [token, setToken] = useState<string | undefined>(
69
+ sessionStorage.getItem('authToken') || undefined
70
+ );
71
+ const [user, setUser] = useState<UserDTO | undefined>(undefined);
72
+
73
+ const sendAuthenticateRequest =
74
+ useAuthenticateRequestHandler(requestHandlerName);
75
+ const sendLoginRequest = useLoginRequestHandler();
76
+ const sendLogoutRequest = useLogoutRequestHandler();
77
+
78
+ const sendSendRecoveryKeyRequest = useSendRecoveryKeyRequestHandler();
79
+ const sendCheckRecoveryKeyRequest = useCheckRecoveryKeyRequestHandler();
80
+ const sendResetPasswordRequest = useResetPasswordRequestHandler();
81
+
82
+ const authenticate = useCallback(
83
+ (force = false) => {
84
+ if (token && (!user || force)) {
85
+ sendAuthenticateRequest({ token }).then(
86
+ (response) => {
87
+ if (response.status === 0 && response.user) {
88
+ setUser(response.user);
89
+ } else if (response.status > 0) {
90
+ setToken(undefined);
91
+ setUser(undefined);
92
+ }
93
+ },
94
+ () => {
95
+ setToken(undefined);
96
+ setUser(undefined);
97
+ }
98
+ );
99
+ }
100
+ },
101
+ [sendAuthenticateRequest, token, user]
102
+ );
103
+
104
+ useEffect(() => {
105
+ if (token) {
106
+ sessionStorage.setItem('authToken', token);
107
+ authenticate();
108
+ } else {
109
+ sessionStorage.removeItem('authToken');
110
+ }
111
+ }, [authenticate, token]);
112
+
113
+ const login = useCallback(
114
+ async (username: string, password: string) =>
115
+ sendLoginRequest({ username, password })
116
+ .then((response) => {
117
+ if (response.status === 0 && response.user) {
118
+ setToken(response.token);
119
+ setUser(response.user);
120
+ return true;
121
+ }
122
+ throw new Error(`Login failed with status ${response.status}`);
123
+ })
124
+ .catch(() => {
125
+ setToken(undefined);
126
+ setUser(undefined);
127
+ return false;
128
+ }),
129
+ [sendLoginRequest]
130
+ );
131
+
132
+ const logout = useCallback(
133
+ async () =>
134
+ sendLogoutRequest({})
135
+ .then((response) => {
136
+ return response.status === 0;
137
+ })
138
+ .finally(() => {
139
+ setToken(undefined);
140
+ setUser(undefined);
141
+ }),
142
+ [sendLogoutRequest]
143
+ );
144
+
145
+ const sendRecoveryKey = useCallback(
146
+ async (email: string) =>
147
+ sendSendRecoveryKeyRequest({ email }).then((response) => {
148
+ return response.status;
149
+ }),
150
+ [sendSendRecoveryKeyRequest]
151
+ );
152
+
153
+ const resetPassword = useCallback(
154
+ async (key: string, password: string) =>
155
+ sendResetPasswordRequest({ key, password }).then((response) => {
156
+ return response.status;
157
+ }),
158
+ [sendResetPasswordRequest]
159
+ );
160
+
161
+ const checkRecoveryKey = useCallback(
162
+ async (key: string) =>
163
+ sendCheckRecoveryKeyRequest({ key }).then((response) => {
164
+ return response.status;
165
+ }),
166
+ [sendCheckRecoveryKeyRequest]
167
+ );
168
+
169
+ const hasPermission = useCallback(
170
+ (permission: string) =>
171
+ permission in allPermissions &&
172
+ !!allPermissions[permission] &&
173
+ (user?.isAdmin ||
174
+ user?.profile?.isAdmin ||
175
+ (user?.permissions?.includes(permission) ?? false) ||
176
+ (user?.profile?.permissions?.includes(permission) ?? false)),
177
+ [
178
+ allPermissions,
179
+ user?.isAdmin,
180
+ user?.permissions,
181
+ user?.profile?.isAdmin,
182
+ user?.profile?.permissions,
183
+ ]
184
+ );
185
+
186
+ const contextValue = useMemo(
187
+ () => ({
188
+ token,
189
+ user,
190
+ isAuthenticated: !!user,
191
+ authenticate,
192
+ login,
193
+ logout,
194
+ sendRecoveryKey,
195
+ checkRecoveryKey,
196
+ resetPassword,
197
+ permissions: allPermissions,
198
+ hasPermission,
199
+ setToken,
200
+ }),
201
+ [
202
+ allPermissions,
203
+ authenticate,
204
+ checkRecoveryKey,
205
+ hasPermission,
206
+ login,
207
+ logout,
208
+ resetPassword,
209
+ sendRecoveryKey,
210
+ token,
211
+ user,
212
+ setToken,
213
+ ]
214
+ );
215
+
216
+ useEffect(() => {
217
+ const subscription = WebSocketService.getInstance()?.status$.subscribe(
218
+ (newStatus) => {
219
+ setWebSocketStatus((previousStatus) => {
220
+ if (!previousStatus && newStatus) {
221
+ authenticate(true);
222
+ }
223
+ return newStatus;
224
+ });
225
+ }
226
+ );
227
+ return () => subscription?.unsubscribe();
228
+ }, [authenticate]);
229
+
230
+ return (
231
+ <AuthenticationContext.Provider value={contextValue}>
232
+ {!user ? (
233
+ LoginComponent ? (
234
+ <LoginComponent />
235
+ ) : (
236
+ <div>Not authenticated</div>
237
+ )
238
+ ) : (
239
+ children
240
+ )}
241
+ </AuthenticationContext.Provider>
242
+ );
243
+ };