@weavy/uikit-react 14.0.4 → 15.0.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 (360) hide show
  1. package/.vscode/settings.json +2 -0
  2. package/changelog.md +10 -0
  3. package/dist/cjs/client/WeavyClient.d.ts +1 -0
  4. package/dist/cjs/components/Attachment.d.ts +5 -5
  5. package/dist/cjs/components/Blob.d.ts +9 -0
  6. package/dist/cjs/components/Comment.d.ts +18 -0
  7. package/dist/cjs/components/CommentCount.d.ts +7 -0
  8. package/dist/cjs/components/CommentEdit.d.ts +16 -0
  9. package/dist/cjs/components/CommentPlaceholder.d.ts +8 -0
  10. package/dist/cjs/components/CommentTrashed.d.ts +15 -0
  11. package/dist/cjs/components/CommentView.d.ts +18 -0
  12. package/dist/cjs/components/Comments.d.ts +8 -0
  13. package/dist/cjs/components/ConversationListItem.d.ts +1 -1
  14. package/dist/cjs/components/Dropzone.d.ts +10 -0
  15. package/dist/cjs/components/Editor.d.ts +25 -0
  16. package/dist/cjs/components/Embed.d.ts +8 -0
  17. package/dist/cjs/components/FileItem.d.ts +41 -0
  18. package/dist/cjs/components/FileList.d.ts +11 -0
  19. package/dist/cjs/components/FileVersions.d.ts +9 -0
  20. package/dist/cjs/components/Files.d.ts +4 -0
  21. package/dist/cjs/components/Image.d.ts +3 -3
  22. package/dist/cjs/components/MeetingCard.d.ts +1 -1
  23. package/dist/cjs/components/Meetings.d.ts +2 -1
  24. package/dist/cjs/components/Poll.d.ts +8 -0
  25. package/dist/cjs/components/PollOption.d.ts +10 -0
  26. package/dist/cjs/components/Post.d.ts +21 -0
  27. package/dist/cjs/components/PostEdit.d.ts +17 -0
  28. package/dist/cjs/components/PostList.d.ts +6 -0
  29. package/dist/cjs/components/PostPlaceholder.d.ts +8 -0
  30. package/dist/cjs/components/PostTrashed.d.ts +14 -0
  31. package/dist/cjs/components/PostView.d.ts +21 -0
  32. package/dist/cjs/components/Posts.d.ts +4 -0
  33. package/dist/cjs/components/Preview.d.ts +1 -3
  34. package/dist/cjs/components/PreviewFiles.d.ts +10 -0
  35. package/dist/cjs/components/Reactions.d.ts +6 -2
  36. package/dist/cjs/components/SearchUsers.d.ts +2 -1
  37. package/dist/cjs/contexts/CloudFilesContext.d.ts +9 -0
  38. package/dist/cjs/hooks/useApps.d.ts +1 -0
  39. package/dist/cjs/hooks/useCloudFiles.d.ts +3 -0
  40. package/dist/cjs/hooks/useCommentList.d.ts +1 -0
  41. package/dist/cjs/hooks/useEmbeds.d.ts +5 -0
  42. package/dist/cjs/hooks/useFileList.d.ts +1 -0
  43. package/dist/cjs/hooks/useFileUploader.d.ts +8 -0
  44. package/dist/cjs/hooks/useFileVersions.d.ts +2 -0
  45. package/dist/cjs/hooks/useInfiniteScroll.d.ts +4 -0
  46. package/dist/cjs/hooks/useIsFirstRender.d.ts +2 -0
  47. package/dist/cjs/hooks/useMutateApps.d.ts +5 -0
  48. package/dist/cjs/hooks/useMutateComment.d.ts +10 -0
  49. package/dist/cjs/hooks/useMutateConversationName.d.ts +1 -1
  50. package/dist/cjs/hooks/useMutateDeleteReaction.d.ts +3 -1
  51. package/dist/cjs/hooks/useMutateEditComment.d.ts +10 -0
  52. package/dist/cjs/hooks/useMutateEditPost.d.ts +10 -0
  53. package/dist/cjs/hooks/useMutateExternalBlobs.d.ts +2 -2
  54. package/dist/cjs/hooks/useMutateFile.d.ts +26 -0
  55. package/dist/cjs/hooks/useMutateFileRename.d.ts +5 -0
  56. package/dist/cjs/hooks/useMutateFileSubscribe.d.ts +7 -0
  57. package/dist/cjs/hooks/useMutateFileTrash.d.ts +10 -0
  58. package/dist/cjs/hooks/useMutateFileVersion.d.ts +7 -0
  59. package/dist/cjs/hooks/useMutateFiles.d.ts +2 -0
  60. package/dist/cjs/hooks/useMutateLeaveConversation.d.ts +4 -0
  61. package/dist/cjs/hooks/useMutateMessage.d.ts +2 -2
  62. package/dist/cjs/hooks/useMutatePost.d.ts +10 -0
  63. package/dist/cjs/hooks/useMutateReaction.d.ts +3 -1
  64. package/dist/cjs/hooks/useMutateRead.d.ts +1 -1
  65. package/dist/cjs/hooks/useMutateReplaceReaction.d.ts +6 -0
  66. package/dist/cjs/hooks/useMutateRestoreComment.d.ts +5 -0
  67. package/dist/cjs/hooks/useMutateRestorePost.d.ts +4 -0
  68. package/dist/cjs/hooks/useMutateStarred.d.ts +4 -0
  69. package/dist/cjs/hooks/useMutateSubscribe.d.ts +4 -0
  70. package/dist/cjs/hooks/useMutateTrashComment.d.ts +5 -0
  71. package/dist/cjs/hooks/useMutateTrashPost.d.ts +4 -0
  72. package/dist/cjs/hooks/useMutateTyping.d.ts +2 -0
  73. package/dist/cjs/hooks/useMutateUnsubscribe.d.ts +4 -0
  74. package/dist/cjs/hooks/useMutateVote.d.ts +5 -0
  75. package/dist/cjs/hooks/usePost.d.ts +1 -0
  76. package/dist/cjs/hooks/usePosts.d.ts +1 -0
  77. package/dist/cjs/hooks/usePostsList.d.ts +1 -0
  78. package/dist/cjs/hooks/useReactionList.d.ts +1 -0
  79. package/dist/cjs/hooks/useSessionState.d.ts +2 -0
  80. package/dist/cjs/hooks/useUnload.d.ts +2 -0
  81. package/dist/cjs/hooks/useUpdateEffect.d.ts +3 -0
  82. package/dist/cjs/hooks/useVotes.d.ts +1 -0
  83. package/dist/cjs/index.d.ts +3 -1
  84. package/dist/cjs/index.js +28 -6
  85. package/dist/cjs/index.js.map +1 -1
  86. package/dist/cjs/types/ConversationListItem.d.ts +1 -0
  87. package/dist/cjs/types/Files.d.ts +7 -0
  88. package/dist/cjs/types/Message.d.ts +2 -2
  89. package/dist/cjs/types/Posts.d.ts +4 -0
  90. package/dist/cjs/types/interfaces.d.ts +9 -0
  91. package/dist/cjs/types/types.d.ts +138 -22
  92. package/dist/cjs/ui/Dropdown.d.ts +18 -2
  93. package/dist/cjs/ui/Icon.d.ts +10 -2
  94. package/dist/cjs/ui/Overlay.d.ts +3 -1
  95. package/dist/cjs/ui/Sheet.d.ts +14 -0
  96. package/dist/cjs/ui/Spinner.d.ts +2 -1
  97. package/dist/cjs/utils/cacheUtils.d.ts +14 -0
  98. package/dist/cjs/utils/fileUtilities.d.ts +10 -1
  99. package/dist/cjs/utils/mentions.d.ts +6 -0
  100. package/dist/cjs/utils/openUrl.d.ts +1 -0
  101. package/dist/css/weavy-chat.css +637 -218
  102. package/dist/css/weavy-files.css +3046 -0
  103. package/dist/css/weavy-messenger.css +643 -213
  104. package/dist/css/weavy-posts.css +2773 -0
  105. package/dist/css/weavy.css +1749 -308
  106. package/dist/esm/client/WeavyClient.d.ts +1 -0
  107. package/dist/esm/components/Attachment.d.ts +5 -5
  108. package/dist/esm/components/Blob.d.ts +9 -0
  109. package/dist/esm/components/Comment.d.ts +18 -0
  110. package/dist/esm/components/CommentCount.d.ts +7 -0
  111. package/dist/esm/components/CommentEdit.d.ts +16 -0
  112. package/dist/esm/components/CommentPlaceholder.d.ts +8 -0
  113. package/dist/esm/components/CommentTrashed.d.ts +15 -0
  114. package/dist/esm/components/CommentView.d.ts +18 -0
  115. package/dist/esm/components/Comments.d.ts +8 -0
  116. package/dist/esm/components/ConversationListItem.d.ts +1 -1
  117. package/dist/esm/components/Dropzone.d.ts +10 -0
  118. package/dist/esm/components/Editor.d.ts +25 -0
  119. package/dist/esm/components/Embed.d.ts +8 -0
  120. package/dist/esm/components/FileItem.d.ts +41 -0
  121. package/dist/esm/components/FileList.d.ts +11 -0
  122. package/dist/esm/components/FileVersions.d.ts +9 -0
  123. package/dist/esm/components/Files.d.ts +4 -0
  124. package/dist/esm/components/Image.d.ts +3 -3
  125. package/dist/esm/components/MeetingCard.d.ts +1 -1
  126. package/dist/esm/components/Meetings.d.ts +2 -1
  127. package/dist/esm/components/Poll.d.ts +8 -0
  128. package/dist/esm/components/PollOption.d.ts +10 -0
  129. package/dist/esm/components/Post.d.ts +21 -0
  130. package/dist/esm/components/PostEdit.d.ts +17 -0
  131. package/dist/esm/components/PostList.d.ts +6 -0
  132. package/dist/esm/components/PostPlaceholder.d.ts +8 -0
  133. package/dist/esm/components/PostTrashed.d.ts +14 -0
  134. package/dist/esm/components/PostView.d.ts +21 -0
  135. package/dist/esm/components/Posts.d.ts +4 -0
  136. package/dist/esm/components/Preview.d.ts +1 -3
  137. package/dist/esm/components/PreviewFiles.d.ts +10 -0
  138. package/dist/esm/components/Reactions.d.ts +6 -2
  139. package/dist/esm/components/SearchUsers.d.ts +2 -1
  140. package/dist/esm/contexts/CloudFilesContext.d.ts +9 -0
  141. package/dist/esm/hooks/useApps.d.ts +1 -0
  142. package/dist/esm/hooks/useCloudFiles.d.ts +3 -0
  143. package/dist/esm/hooks/useCommentList.d.ts +1 -0
  144. package/dist/esm/hooks/useEmbeds.d.ts +5 -0
  145. package/dist/esm/hooks/useFileList.d.ts +1 -0
  146. package/dist/esm/hooks/useFileUploader.d.ts +8 -0
  147. package/dist/esm/hooks/useFileVersions.d.ts +2 -0
  148. package/dist/esm/hooks/useInfiniteScroll.d.ts +4 -0
  149. package/dist/esm/hooks/useIsFirstRender.d.ts +2 -0
  150. package/dist/esm/hooks/useMutateApps.d.ts +5 -0
  151. package/dist/esm/hooks/useMutateComment.d.ts +10 -0
  152. package/dist/esm/hooks/useMutateConversationName.d.ts +1 -1
  153. package/dist/esm/hooks/useMutateDeleteReaction.d.ts +3 -1
  154. package/dist/esm/hooks/useMutateEditComment.d.ts +10 -0
  155. package/dist/esm/hooks/useMutateEditPost.d.ts +10 -0
  156. package/dist/esm/hooks/useMutateExternalBlobs.d.ts +2 -2
  157. package/dist/esm/hooks/useMutateFile.d.ts +26 -0
  158. package/dist/esm/hooks/useMutateFileRename.d.ts +5 -0
  159. package/dist/esm/hooks/useMutateFileSubscribe.d.ts +7 -0
  160. package/dist/esm/hooks/useMutateFileTrash.d.ts +10 -0
  161. package/dist/esm/hooks/useMutateFileVersion.d.ts +7 -0
  162. package/dist/esm/hooks/useMutateFiles.d.ts +2 -0
  163. package/dist/esm/hooks/useMutateLeaveConversation.d.ts +4 -0
  164. package/dist/esm/hooks/useMutateMessage.d.ts +2 -2
  165. package/dist/esm/hooks/useMutatePost.d.ts +10 -0
  166. package/dist/esm/hooks/useMutateReaction.d.ts +3 -1
  167. package/dist/esm/hooks/useMutateRead.d.ts +1 -1
  168. package/dist/esm/hooks/useMutateReplaceReaction.d.ts +6 -0
  169. package/dist/esm/hooks/useMutateRestoreComment.d.ts +5 -0
  170. package/dist/esm/hooks/useMutateRestorePost.d.ts +4 -0
  171. package/dist/esm/hooks/useMutateStarred.d.ts +4 -0
  172. package/dist/esm/hooks/useMutateSubscribe.d.ts +4 -0
  173. package/dist/esm/hooks/useMutateTrashComment.d.ts +5 -0
  174. package/dist/esm/hooks/useMutateTrashPost.d.ts +4 -0
  175. package/dist/esm/hooks/useMutateTyping.d.ts +2 -0
  176. package/dist/esm/hooks/useMutateUnsubscribe.d.ts +4 -0
  177. package/dist/esm/hooks/useMutateVote.d.ts +5 -0
  178. package/dist/esm/hooks/usePost.d.ts +1 -0
  179. package/dist/esm/hooks/usePosts.d.ts +1 -0
  180. package/dist/esm/hooks/usePostsList.d.ts +1 -0
  181. package/dist/esm/hooks/useReactionList.d.ts +1 -0
  182. package/dist/esm/hooks/useSessionState.d.ts +2 -0
  183. package/dist/esm/hooks/useUnload.d.ts +2 -0
  184. package/dist/esm/hooks/useUpdateEffect.d.ts +3 -0
  185. package/dist/esm/hooks/useVotes.d.ts +1 -0
  186. package/dist/esm/index.d.ts +3 -1
  187. package/dist/esm/index.js +28 -6
  188. package/dist/esm/index.js.map +1 -1
  189. package/dist/esm/types/ConversationListItem.d.ts +1 -0
  190. package/dist/esm/types/Files.d.ts +7 -0
  191. package/dist/esm/types/Message.d.ts +2 -2
  192. package/dist/esm/types/Posts.d.ts +4 -0
  193. package/dist/esm/types/interfaces.d.ts +9 -0
  194. package/dist/esm/types/types.d.ts +138 -22
  195. package/dist/esm/ui/Dropdown.d.ts +18 -2
  196. package/dist/esm/ui/Icon.d.ts +10 -2
  197. package/dist/esm/ui/Overlay.d.ts +3 -1
  198. package/dist/esm/ui/Sheet.d.ts +14 -0
  199. package/dist/esm/ui/Spinner.d.ts +2 -1
  200. package/dist/esm/utils/cacheUtils.d.ts +14 -0
  201. package/dist/esm/utils/fileUtilities.d.ts +10 -1
  202. package/dist/esm/utils/mentions.d.ts +6 -0
  203. package/dist/esm/utils/openUrl.d.ts +1 -0
  204. package/dist/index.d.ts +50 -6
  205. package/package.json +8 -2
  206. package/src/client/WeavyClient.ts +35 -1
  207. package/src/components/Attachment.tsx +20 -13
  208. package/src/components/Blob.tsx +28 -0
  209. package/src/components/Comment.tsx +43 -0
  210. package/src/components/CommentCount.tsx +15 -0
  211. package/src/components/CommentEdit.tsx +48 -0
  212. package/src/components/CommentPlaceholder.tsx +34 -0
  213. package/src/components/CommentTrashed.tsx +45 -0
  214. package/src/components/CommentView.tsx +142 -0
  215. package/src/components/Comments.tsx +78 -0
  216. package/src/components/Conversation.tsx +85 -31
  217. package/src/components/ConversationList.tsx +12 -41
  218. package/src/components/ConversationListItem.tsx +125 -74
  219. package/src/components/Dropzone.tsx +26 -0
  220. package/src/components/Editor.tsx +700 -0
  221. package/src/components/Embed.tsx +80 -0
  222. package/src/components/FileItem.tsx +391 -0
  223. package/src/components/FileList.tsx +166 -0
  224. package/src/components/FileVersions.tsx +100 -0
  225. package/src/components/Files.tsx +294 -0
  226. package/src/components/Image.tsx +11 -10
  227. package/src/components/Meeting.tsx +1 -2
  228. package/src/components/MeetingCard.tsx +1 -1
  229. package/src/components/Meetings.tsx +13 -5
  230. package/src/components/Message.tsx +14 -19
  231. package/src/components/Messages.tsx +38 -64
  232. package/src/components/NewConversation.tsx +8 -6
  233. package/src/components/PdfViewer.tsx +2 -2
  234. package/src/components/Poll.tsx +45 -0
  235. package/src/components/PollOption.tsx +65 -0
  236. package/src/components/Post.tsx +45 -0
  237. package/src/components/PostEdit.tsx +49 -0
  238. package/src/components/PostList.tsx +95 -0
  239. package/src/components/PostPlaceholder.tsx +32 -0
  240. package/src/components/PostTrashed.tsx +35 -0
  241. package/src/components/PostView.tsx +194 -0
  242. package/src/components/Posts.tsx +59 -0
  243. package/src/components/Preview.tsx +16 -23
  244. package/src/components/PreviewFiles.tsx +336 -0
  245. package/src/components/Reactions.tsx +142 -38
  246. package/src/components/SearchUsers.tsx +77 -37
  247. package/src/components/Typing.tsx +1 -1
  248. package/src/{components/FileBrowser.tsx → contexts/CloudFilesContext.tsx} +46 -30
  249. package/src/contexts/PreviewContext.tsx +102 -85
  250. package/src/contexts/WeavyContext.tsx +10 -6
  251. package/src/hooks/useApps.ts +23 -0
  252. package/src/hooks/useCloudFiles.ts +12 -0
  253. package/src/hooks/useCommentList.ts +30 -0
  254. package/src/hooks/useEmbeds.ts +126 -0
  255. package/src/hooks/useEvents.ts +3 -1
  256. package/src/hooks/useFileList.ts +84 -0
  257. package/src/hooks/useFileUploader.ts +38 -1
  258. package/src/hooks/useFileVersions.ts +20 -0
  259. package/src/hooks/useInfiniteScroll.ts +45 -0
  260. package/src/hooks/useIsFirstRender.ts +15 -0
  261. package/src/hooks/useMembers.ts +3 -3
  262. package/src/hooks/useMutateApps.ts +48 -0
  263. package/src/hooks/useMutateComment.ts +60 -0
  264. package/src/hooks/useMutateConversationName.ts +1 -1
  265. package/src/hooks/useMutateDeleteReaction.ts +17 -4
  266. package/src/hooks/useMutateEditComment.ts +63 -0
  267. package/src/hooks/useMutateEditPost.ts +64 -0
  268. package/src/hooks/useMutateExternalBlobs.ts +5 -9
  269. package/src/hooks/useMutateFile.ts +311 -0
  270. package/src/hooks/useMutateFileRename.ts +51 -0
  271. package/src/hooks/useMutateFileSubscribe.ts +80 -0
  272. package/src/hooks/useMutateFileTrash.ts +115 -0
  273. package/src/hooks/useMutateFileVersion.ts +85 -0
  274. package/src/hooks/useMutateFiles.ts +23 -0
  275. package/src/hooks/useMutateLeaveConversation.ts +38 -0
  276. package/src/hooks/useMutateMessage.ts +23 -62
  277. package/src/hooks/useMutatePost.ts +60 -0
  278. package/src/hooks/useMutateReaction.ts +21 -6
  279. package/src/hooks/useMutateRead.ts +8 -2
  280. package/src/hooks/useMutateRemoveMembers.ts +2 -9
  281. package/src/hooks/useMutateReplaceReaction.ts +59 -0
  282. package/src/hooks/useMutateRestoreComment.ts +37 -0
  283. package/src/hooks/useMutateRestorePost.ts +36 -0
  284. package/src/hooks/useMutateStarred.ts +35 -0
  285. package/src/hooks/useMutateSubscribe.ts +36 -0
  286. package/src/hooks/useMutateTrashComment.ts +37 -0
  287. package/src/hooks/useMutateTrashPost.ts +36 -0
  288. package/src/hooks/useMutateTyping.ts +5 -3
  289. package/src/hooks/useMutateUnsubscribe.ts +36 -0
  290. package/src/hooks/useMutateVote.ts +59 -0
  291. package/src/hooks/usePost.ts +20 -0
  292. package/src/hooks/usePosts.ts +21 -0
  293. package/src/hooks/usePostsList.ts +31 -0
  294. package/src/hooks/useReactionList.ts +21 -0
  295. package/src/hooks/useSearchUsers.ts +2 -2
  296. package/src/hooks/useSessionState.ts +23 -0
  297. package/src/hooks/useUnload.ts +19 -0
  298. package/src/hooks/useUpdateEffect.ts +16 -0
  299. package/src/hooks/useVotes.ts +21 -0
  300. package/src/index.ts +5 -1
  301. package/src/scss/theme/_appbar.scss +8 -4
  302. package/src/scss/theme/_card.scss +2 -0
  303. package/src/scss/theme/_comment-editor-cm.scss +5 -1
  304. package/src/scss/theme/_comments.scss +9 -8
  305. package/src/scss/theme/_conversations.scss +4 -0
  306. package/src/scss/theme/_files.scss +2 -81
  307. package/src/scss/theme/_icons.scss +21 -3
  308. package/src/scss/theme/_input.scss +13 -7
  309. package/src/scss/theme/_item.scss +23 -1
  310. package/src/scss/theme/_message-editor-cm.scss +5 -1
  311. package/src/scss/theme/_pager.scss +1 -1
  312. package/src/scss/theme/_post-editor-cm.scss +2 -2
  313. package/src/scss/theme/_post.scss +3 -10
  314. package/src/scss/theme/_preview-pdf-viewer.scss +996 -0
  315. package/src/scss/theme/_preview-pdf.scss +57 -783
  316. package/src/scss/theme/_sheet.scss +4 -1
  317. package/src/scss/theme/_spinner.scss +10 -1
  318. package/src/scss/theme/_tables.scss +2 -0
  319. package/src/scss/theme/base/_scroll.scss +3 -0
  320. package/src/scss/weavy-chat.scss +3 -1
  321. package/src/scss/weavy-files.scss +31 -0
  322. package/src/scss/weavy-messenger.scss +3 -1
  323. package/src/scss/weavy-posts.scss +35 -0
  324. package/src/scss/weavy.scss +2 -0
  325. package/src/types/ConversationListItem.ts +1 -0
  326. package/src/types/Files.ts +7 -0
  327. package/src/types/Message.ts +2 -2
  328. package/src/types/Posts.ts +4 -0
  329. package/src/types/interfaces.ts +13 -0
  330. package/src/types/types.ts +157 -28
  331. package/src/ui/Button.tsx +6 -5
  332. package/src/ui/Dropdown.tsx +67 -16
  333. package/src/ui/Icon.tsx +112 -15
  334. package/src/ui/Overlay.tsx +6 -2
  335. package/src/ui/Sheet.tsx +87 -0
  336. package/src/ui/Spinner.tsx +7 -4
  337. package/src/utils/cacheUtils.ts +246 -0
  338. package/src/utils/fileUtilities.ts +208 -24
  339. package/src/utils/infinite-scroll.js +103 -0
  340. package/src/utils/mentions.ts +50 -0
  341. package/src/utils/openUrl.ts +41 -0
  342. package/src/utils/{scrollToBottom.js → scroll-position.js} +50 -9
  343. package/src/utils/{scrollbarDetection.js → scrollbar-detection.js} +0 -0
  344. package/src/utils/utils.js +15 -1
  345. package/tsconfig.json +1 -1
  346. package/dist/cjs/components/ConversationForm.d.ts +0 -7
  347. package/dist/cjs/components/File.d.ts +0 -9
  348. package/dist/cjs/components/FileBrowser.d.ts +0 -6
  349. package/dist/cjs/hooks/usePreview.d.ts +0 -4
  350. package/dist/cjs/hooks/useReactions.d.ts +0 -3
  351. package/dist/esm/components/ConversationForm.d.ts +0 -7
  352. package/dist/esm/components/File.d.ts +0 -9
  353. package/dist/esm/components/FileBrowser.d.ts +0 -6
  354. package/dist/esm/hooks/usePreview.d.ts +0 -4
  355. package/dist/esm/hooks/useReactions.d.ts +0 -3
  356. package/src/components/ConversationForm.tsx +0 -210
  357. package/src/components/File.tsx +0 -21
  358. package/src/hooks/usePreview.ts +0 -21
  359. package/src/hooks/useReactions.ts +0 -51
  360. package/src/utils/infiniteScroll.js +0 -184
package/src/ui/Icon.tsx CHANGED
@@ -1,12 +1,32 @@
1
- import React from "react";
1
+ import React, { ReactNode } from "react";
2
2
  import {
3
+ mdiAccountMinus,
4
+ mdiAccountPlus,
5
+ mdiAlert,
6
+ mdiAlertCircle,
7
+ mdiAlertOctagon,
3
8
  mdiArrowLeft,
4
9
  mdiArrowRight,
5
10
  mdiAttachment,
11
+ mdiBackupRestore,
12
+ mdiBell,
13
+ mdiBellOff,
6
14
  mdiBox,
15
+ mdiChartBox,
16
+ mdiCheck,
17
+ mdiCheckboxBlankOutline,
18
+ mdiCheckboxMarkedOutline,
19
+ mdiCheckCircle,
20
+ mdiCircleOutline,
7
21
  mdiClose,
8
22
  mdiCloseCircle,
9
23
  mdiCloud,
24
+ mdiComment,
25
+ mdiCommentOutline,
26
+ mdiContentSave,
27
+ mdiDelete,
28
+ mdiDeleteForever,
29
+ mdiDeleteRestore,
10
30
  mdiDotsVertical,
11
31
  mdiDownload,
12
32
  mdiDropbox,
@@ -23,46 +43,95 @@ import {
23
43
  mdiFitToPage,
24
44
  mdiFitToScreen,
25
45
  mdiFolderZip,
46
+ mdiFormTextbox,
26
47
  mdiGoogleDrive,
48
+ mdiHelpCircle,
49
+ mdiInformationOutline,
27
50
  mdiMagnify,
51
+ mdiMenuDown,
52
+ mdiMenuUp,
53
+ mdiMessageBadge,
28
54
  mdiMicrosoftOnedrive,
29
55
  mdiMinus,
30
56
  mdiOpenInNew,
57
+ mdiPencil,
31
58
  mdiPin,
59
+ mdiPinOff,
32
60
  mdiPlus,
33
- mdiPlusCircleOutline,
61
+ mdiPlusCircleOutline,
62
+ mdiRestore,
34
63
  mdiSend,
35
- mdiVideo
64
+ mdiSort,
65
+ mdiStar,
66
+ mdiStarOff,
67
+ mdiSwapHorizontal,
68
+ mdiTextBox,
69
+ mdiTrashCan,
70
+ mdiVideo,
71
+ mdiViewListOutline,
72
+ mdiViewModuleOutline
36
73
  } from "@mdi/js";
37
74
  import MdiIcon from '@mdi/react/Icon';
38
-
39
- type Props = {
40
- name: string,
41
- color?: string,
42
- size?: number,
43
- }
75
+ import classNames from "classnames";
44
76
 
45
77
  // Custom mapping to MDI instead of symbols
46
78
  const iconMapping: { [index: string]: string } = {
79
+ "account-minus": mdiAccountMinus,
80
+ "account-plus": mdiAccountPlus,
81
+ "alert": mdiAlert,
82
+ "alert-circle": mdiAlertCircle,
83
+ "alert-octagon": mdiAlertOctagon,
47
84
  "attachment": mdiAttachment,
48
85
  "back": mdiArrowLeft,
86
+ "backup-restore": mdiBackupRestore,
87
+ "bell": mdiBell,
88
+ "bell-off": mdiBellOff,
89
+ "check": mdiCheck,
90
+ "checkbox-blank": mdiCheckboxBlankOutline,
91
+ "checkbox-marked": mdiCheckboxMarkedOutline,
92
+ "circle-outline": mdiCircleOutline,
93
+ "check-circle": mdiCheckCircle,
49
94
  "close": mdiClose,
50
95
  "close-circle": mdiCloseCircle,
96
+ "comment": mdiComment,
97
+ "comment-outline": mdiCommentOutline,
98
+ "content-save": mdiContentSave,
99
+ "delete": mdiDelete,
100
+ "delete-restore": mdiDeleteRestore,
101
+ "delete-forever": mdiDeleteForever,
51
102
  "dots-vertical": mdiDotsVertical,
52
103
  "download": mdiDownload,
53
104
  "emoticon-plus": "M 19 0 L 19 3 L 16 3 L 16 5 L 19 5 L 19 8 L 21 8 L 21 5 L 24 5 L 24 3 L 21 3 L 21 0 L 19 0 z M 12 2 C 6.5 2 2 6.5 2 12 C 2 17.5 6.5 22 12 22 C 17.5 22 22 17.5 22 12 L 20 12 C 20 16.4 16.4 20 12 20 C 7.6 20 4 16.4 4 12 C 4 7.6 7.6 4 12 4 L 12 2 z M 8.5 8 C 7.7 8 7 8.7 7 9.5 C 7 10.3 7.7 11 8.5 11 C 9.3 11 10 10.3 10 9.5 C 10 8.7 9.3 8 8.5 8 z M 15.5 8 C 14.7 8 14 8.7 14 9.5 C 14 10.3 14.7 11 15.5 11 C 16.3 11 17 10.3 17 9.5 C 17 8.7 16.3 8 15.5 8 z M 6.9 14 C 7.7 16 9.7 17.5 12 17.5 C 14.3 17.5 16.3 16 17.1 14 L 6.9 14 z",
54
105
  "fit-screen": mdiFitToScreen,
55
106
  "fit-width": mdiFitToPage,
107
+ "help-circle": mdiHelpCircle,
108
+ "information": mdiInformationOutline,
56
109
  "magnify": mdiMagnify,
110
+ "menu-down": mdiMenuDown,
111
+ "menu-up":mdiMenuUp,
57
112
  "minus": mdiMinus,
58
113
  "next": mdiArrowRight,
59
114
  "open-in-new": mdiOpenInNew,
115
+ "pencil": mdiPencil,
60
116
  "pin": mdiPin,
117
+ "unpin": mdiPinOff,
61
118
  "plus": mdiPlus,
62
119
  "plus-circle-outline": mdiPlusCircleOutline,
120
+ "poll": mdiChartBox,
63
121
  "previous": mdiArrowLeft,
122
+ "read": mdiMessageBadge,
123
+ "restore": mdiRestore,
124
+ "unread": mdiCheck,
64
125
  "send": mdiSend,
126
+ "sort": mdiSort,
127
+ "star": mdiStar,
128
+ "unstar": mdiStarOff,
129
+ "swap-horizontal": mdiSwapHorizontal,
130
+ "textbox": mdiFormTextbox,
131
+ "trashcan": mdiTrashCan,
65
132
  "video": mdiVideo,
133
+ "view-list-outline": mdiViewListOutline,
134
+ "view-module-outline": mdiViewModuleOutline,
66
135
  // Files
67
136
  "email": mdiEmail,
68
137
  "file": mdiFile,
@@ -79,13 +148,20 @@ const iconMapping: { [index: string]: string } = {
79
148
  "file-compressed": mdiFolderZip,
80
149
  // Providers
81
150
  "dropbox": mdiDropbox,
82
- "ondedrive": mdiMicrosoftOnedrive,
151
+ "onedrive": mdiMicrosoftOnedrive,
83
152
  "box": mdiBox,
84
153
  "google-drive": mdiGoogleDrive,
85
154
  "zoom": "m12 2c-5.6 0-10 4.5-10 10 0 5.6 4.5 10 10 10 5.5 0 9.9-4.5 9.9-10 .1-5.6-4.4-10-9.9-10zm2.6 13.1c0 .2-.1.3-.3.3h-6.9c-1.1 0-1.9-.8-1.9-1.9v-4.6c0-.2.1-.3.3-.3h6.9c1 0 1.9.8 1.9 1.9zm3.8.1c0 .4-.2.4-.5.2l-2.8-2.1v-2.6l2.8-2.1c.2-.2.5-.1.5.2z",
86
155
  "cloud": mdiCloud
87
156
  }
88
157
 
158
+ type Props = {
159
+ name: string,
160
+ color?: string,
161
+ size?: number,
162
+ title?: string,
163
+ className?: string
164
+ }
89
165
 
90
166
  function getIconMapping(name: string) {
91
167
  let [iconName] = name.split("+");
@@ -98,18 +174,39 @@ function getIconOverlay(name: string) {
98
174
  return overlay in iconMapping ? iconMapping[overlay] : "";
99
175
  }
100
176
 
101
- const Icon = ({ name, color = "", size, ...props }: Props) => {
177
+ const Icon = ({ name, color = "", size, className, title, ...props }: Props) => {
102
178
  let iconPath = getIconMapping(name);
103
179
  let overlayPath = getIconOverlay(name);
104
180
 
105
181
  return (
106
- <span className={'wy-icon' + (color ? ' wy-icon-' + color : '')} style={{width: size && (size * 1.5 + "rem"), height: size && (size * 1.5 + "rem")}} { ...props }>
107
- {iconPath ? <MdiIcon.Icon color={color} path={iconPath} size={size} /> : name }
108
- {overlayPath && <MdiIcon.Icon color={color} path={overlayPath} className="wy-icon-overlay" size={(size || 1) / 2} /> }
182
+ <span className={classNames('wy-icon', (color ? 'wy-icon-' + color : ''), className)} style={{width: size && (size * 1.5 + "rem"), height: size && (size * 1.5 + "rem")}} title={title} { ...props }>
183
+ {iconPath ? <MdiIcon.Icon color={color && ""} path={iconPath} size={size} /> : name }
184
+ {overlayPath && <MdiIcon.Icon color={color && ""} path={overlayPath} className="wy-icon-overlay" size={(size || 1) / 2} /> }
109
185
  </span>
110
186
  );
111
187
  }
112
188
 
189
+ const IconRaw = ({ name, color = "", size, className, title, ...props }: Props) => {
190
+ let iconPath = getIconMapping(name);
191
+ let overlayPath = getIconOverlay(name);
192
+
193
+ return (
194
+ <>
195
+ {iconPath ? <MdiIcon.Icon color={color && ""} path={iconPath} size={size} title={title} /> : name }
196
+ {overlayPath && <MdiIcon.Icon color={color && ""} path={overlayPath} className="wy-icon-overlay" size={(size || 1) / 2} title={title} /> }
197
+ </>
198
+ );
199
+ }
200
+
201
+ type IconActiveStackProps = {
202
+ className?: string,
203
+ children: ReactNode
204
+ }
205
+
206
+ const IconActiveStack = ({ className, children }: IconActiveStackProps) => {
207
+ return <div className={classNames("wy-icon-active-stack", className)}>{children}</div>
208
+ }
209
+
113
210
  // Export as replacable UI component
114
- const UIIcon = { UI: Icon };
211
+ const UIIcon = { UI: Icon, Raw: IconRaw, ActiveStack: IconActiveStack };
115
212
  export default UIIcon;
@@ -6,7 +6,9 @@ type OverlayProps = {
6
6
  children: React.ReactNode,
7
7
  className?: string,
8
8
  isOpen: boolean,
9
- style?: Styles
9
+ style?: Styles,
10
+ closeOnEsc?: boolean,
11
+ onClose?: () => void
10
12
  }
11
13
 
12
14
  const customStyles = {
@@ -16,7 +18,7 @@ const customStyles = {
16
18
  };
17
19
 
18
20
 
19
- const OverlayImpl = ({ children, className = "", isOpen, style }: OverlayProps) => {
21
+ const OverlayImpl = ({ children, className = "", isOpen, style, closeOnEsc, onClose }: OverlayProps) => {
20
22
  const [modalShowing, setModalShowing] = useState(false);
21
23
 
22
24
  return (
@@ -25,10 +27,12 @@ const customStyles = {
25
27
  ariaHideApp={false}
26
28
  onAfterOpen={() => { setModalShowing(true)} }
27
29
  onRequestClose={() => { setModalShowing(false)}}
30
+ onAfterClose={() => onClose && onClose()}
28
31
  className={classNames("wy-panel wy-overlay wy-transition", className, {"wy-open": modalShowing})}
29
32
  overlayClassName="wy-overlays wy-viewport"
30
33
  contentLabel="Example Modal"
31
34
  style={style}
35
+ shouldCloseOnEsc={closeOnEsc}
32
36
  >
33
37
  {children}
34
38
  </Modal>
@@ -0,0 +1,87 @@
1
+ import React, { useEffect, useState } from 'react';
2
+ import Modal, { Styles } from 'react-modal';
3
+ import classNames from 'classnames';
4
+ import Icon from "./Icon";
5
+ import Button from "./Button";
6
+ import useEvents from '../hooks/useEvents';
7
+
8
+ type SheetProps = {
9
+ children: React.ReactNode,
10
+ className?: string,
11
+ isOpen: boolean,
12
+ style?: Styles
13
+ title: string,
14
+ onClose?: (e: any) => void
15
+ }
16
+
17
+ const customStyles = {
18
+ content: {
19
+ padding: 0
20
+ },
21
+ };
22
+
23
+
24
+ const SheetImpl = ({ children, className = "", isOpen, style, title, onClose }: SheetProps) => {
25
+ const [sheetShowing, setSheetShowing] = useState(false);
26
+ const { dispatch, on, off } = useEvents();
27
+
28
+ // Register/unregister close_sheet listener
29
+ useEffect(() => {
30
+ if (onClose) {
31
+ if (sheetShowing) {
32
+ on("close_sheet", onClose);
33
+
34
+ return () => {
35
+ off("close_sheet", onClose)
36
+ }
37
+ } else {
38
+ off("close_sheet", onClose)
39
+ }
40
+ }
41
+ }, [sheetShowing])
42
+
43
+
44
+ useEffect(() => {
45
+ if (!isOpen) {
46
+ setSheetShowing(false)
47
+ } else {
48
+ // Close others on open
49
+ dispatch("close_sheet", {})
50
+ }
51
+ }, [isOpen])
52
+
53
+ return (
54
+ <Modal
55
+ isOpen={isOpen}
56
+ ariaHideApp={false}
57
+ onAfterOpen={() => { setSheetShowing(true)} }
58
+ onAfterClose={() => { setSheetShowing(false)} }
59
+ onRequestClose={onClose}
60
+ closeTimeoutMS={201}
61
+ className={classNames("wy-sheet", className, {"wy-show": sheetShowing})}
62
+ overlayClassName="wy-viewport"
63
+ contentLabel={title}
64
+ shouldCloseOnOverlayClick={false}
65
+ style={style}
66
+ >
67
+ <div className="wy-appbar">
68
+ <div></div>
69
+ <div className="wy-appbar-text">{title}</div>
70
+ <div className="wy-appbar-buttons">
71
+ {onClose &&
72
+ <Button.UI onClick={(e: any) => onClose(e)} title="Close">
73
+ <Icon.UI name="close" />
74
+ </Button.UI>
75
+ }
76
+ </div>
77
+ </div>
78
+ <div className="wy-sheet-body wy-scroll-y">
79
+ {children}
80
+ </div>
81
+ </Modal>
82
+ )
83
+ }
84
+
85
+ // Export as replacable UI component
86
+ const UISheet = { UI: SheetImpl };
87
+ export default UISheet;
@@ -4,12 +4,15 @@ import classNames from 'classnames';
4
4
  type SpinnerProps = {
5
5
  size?: number,
6
6
  spin?: boolean,
7
- overlay?: boolean
7
+ overlay?: boolean,
8
+ progress?: number
8
9
  }
9
10
 
10
- const SpinnerImpl = ({ spin = true, size = 24, overlay= false }: SpinnerProps) => {
11
-
12
- return (
11
+ const SpinnerImpl = ({ spin = true, size = 24, overlay= false, progress }: SpinnerProps) => {
12
+ var strokeDashoffset = !spin && progress && 100 - progress || undefined;
13
+ return (strokeDashoffset !== undefined ?
14
+ <svg viewBox="0 0 24 24" width={size} height={size} transform="rotate(-90)" data-icon="progress" className="wy-icon wy-icon-primary"><circle cx="12" cy="12" r="10" strokeLinecap="butt" strokeWidth="2" fill="none" stroke="#eee"></circle><circle cx="12" cy="12" r="10" strokeDasharray="100" strokeDashoffset={strokeDashoffset} strokeLinecap="butt" strokeWidth="2" fill="none" stroke="currentColor" pathLength="100"></circle></svg>
15
+ :
13
16
  <svg className={classNames("wy-spinner", {"wy-spin" : spin, "wy-spinner-overlay" : overlay })} width={size} height={size} viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><circle fill="none" cx="12" cy="12" r="11" strokeLinecap="butt" strokeWidth="2" /></svg>
14
17
  )
15
18
  }
@@ -0,0 +1,246 @@
1
+ import { InfiniteData, QueryClient, QueryKey } from "react-query";
2
+
3
+ // export const getCacheItem = <T>(queryClient: QueryClient, key: QueryKey, id: number): T | null => {
4
+
5
+ // const data = queryClient.getQueryData<any>(key);
6
+ // if (data) {
7
+ // if (data.pages) {
8
+ // const items = data.pages.map((p: any) => p.data).flat();
9
+ // return items.find((i: any) => i.id === id)
10
+ // } else {
11
+ // // not paged data...
12
+ // }
13
+ // }
14
+
15
+ // return null;
16
+ // }
17
+
18
+ export function findAnyExistingItem<TDataItem>(queryData: InfiniteData<any> | undefined, propertyName:string, value: string, copy = false) {
19
+ var existingItem: TDataItem | undefined;
20
+ // Find any existing item with same property value
21
+ if (queryData && queryData.pages) {
22
+ queryData.pages.some((page: any) => {
23
+ return page.data?.some((item: any) => {
24
+ if (item[propertyName] === value) {
25
+ existingItem = item;
26
+ return true;
27
+ }
28
+ })
29
+ })
30
+ }
31
+
32
+ return existingItem && copy ? <TDataItem>JSON.parse(JSON.stringify(existingItem)) : existingItem;
33
+ }
34
+
35
+ export function addToQueryData(queryData: any, item: any, sorting: { by?: string, descending?: boolean } = { }, tempId?: number) {
36
+ if (queryData) {
37
+ if (queryData.pages) {
38
+ var foundIndex = -1;
39
+
40
+ const newPagesArray = queryData.pages.map((page: any, i: number) => {
41
+ if (foundIndex >= 0) {
42
+ return page;
43
+ }
44
+
45
+ var pageData = page.data as any[] || [];
46
+
47
+ // remove any previous item or tempId
48
+ pageData = pageData.filter((pageItem: any) => pageItem.id !== item.id && (!tempId || pageItem.id !== tempId));
49
+
50
+ if (sorting && sorting.by) {
51
+ // Use sorting
52
+ foundIndex = pageData.findIndex((pageItem: any) => {
53
+ var pageItemValue = pageItem[sorting.by!];
54
+ var itemValue = item[sorting.by!];
55
+
56
+ // modified_at should fallback to created_at
57
+ if (sorting.by === "modified_at") {
58
+ pageItemValue ??= pageItem["created_at"];
59
+ itemValue ??= item["created_at"];
60
+ }
61
+
62
+ if (typeof pageItemValue === "string" && typeof itemValue === "string") {
63
+ let sortCompare = pageItemValue.localeCompare(itemValue, undefined, { sensitivity: "base", numeric: true });
64
+ return (sorting.descending ? sortCompare < 0 : sortCompare > 0);
65
+ }
66
+
67
+ return (sorting.descending ? pageItemValue < itemValue : pageItemValue > itemValue);
68
+ });
69
+
70
+
71
+ if (foundIndex >= 0) {
72
+ pageData.splice(foundIndex, 0, item);
73
+ page.data = [...pageData];
74
+ } else if (i == queryData.pages.length - 1 && page.end === page.count) {
75
+ // end of the list
76
+ page.data = [...pageData, item];
77
+ } else {
78
+ page.data = [...pageData];
79
+ }
80
+ } else {
81
+ // add new item to first page
82
+ if (i === 0) {
83
+ if (sorting.descending){
84
+ page.data = [
85
+ item,
86
+ ...pageData
87
+ ]
88
+ } else {
89
+ page.data = [
90
+ ...pageData,
91
+ item
92
+ ]
93
+ }
94
+ }
95
+ }
96
+
97
+ return page;
98
+
99
+ }) ?? [];
100
+
101
+ return {
102
+ pages: newPagesArray,
103
+ pageParams: queryData.pageParams,
104
+ }
105
+ } else if (queryData.length) {
106
+ // not paged data...
107
+ var foundIndex = -1;
108
+ // remove any previous item or tempId
109
+ var newData = [...queryData.filter((dataItem: any) => dataItem.id !== item.id && (!tempId || dataItem.id !== tempId))];
110
+
111
+ if (sorting && sorting.by) {
112
+ // Use sorting
113
+ foundIndex = newData.findIndex((dataItem: any) => {
114
+ var dataItemValue = dataItem[sorting.by!];
115
+ var itemValue = item[sorting.by!];
116
+
117
+ // modified_at should fallback to created_at
118
+ if (sorting.by === "modified_at") {
119
+ dataItemValue ??= dataItem["created_at"];
120
+ itemValue ??= item["created_at"];
121
+ }
122
+
123
+ if (typeof dataItemValue === "string" && typeof itemValue === "string") {
124
+ let sortCompare = dataItemValue.localeCompare(itemValue, undefined, { sensitivity: "base", numeric: true });
125
+ return (sorting.descending ? sortCompare < 0 : sortCompare > 0);
126
+ }
127
+
128
+ return (sorting.descending ? dataItemValue < itemValue : dataItemValue > itemValue);
129
+ });
130
+
131
+
132
+ if (foundIndex >= 0) {
133
+ newData.splice(foundIndex, 0, item);
134
+ } else {
135
+ // end of the list
136
+ newData.push(item);
137
+ }
138
+ } else {
139
+ // no specific sorting
140
+ if (sorting.descending){
141
+ newData.unshift(item)
142
+ } else {
143
+ newData.push(item);
144
+ }
145
+ }
146
+ return newData;
147
+ }
148
+ }
149
+ return queryData;
150
+ }
151
+
152
+ export function updateQueryData (queryData: any, select: number|((item: any) => boolean), fnUpdater: Function) {
153
+ if (select !== undefined) {
154
+ const predicate = select instanceof Function ? select : (item: any) => item.id === select;
155
+
156
+ if (queryData) {
157
+ if (queryData.pages) {
158
+
159
+ const newPagesArray = queryData.pages.map((page: any, i: number) => {
160
+ // update item
161
+ page.data = [...page.data.map((item: any) => {
162
+ if (predicate(item)) {
163
+ item = JSON.parse(JSON.stringify(item)); // Immutable copy
164
+ fnUpdater(item)
165
+ }
166
+ return item;
167
+ })]
168
+ return page;
169
+ }) ?? [];
170
+
171
+ return {
172
+ pages: newPagesArray,
173
+ pageParams: queryData.pageParams,
174
+ };
175
+ } else if(queryData.length) {
176
+ return [...queryData.map((item: any) => {
177
+ if (predicate(item)) {
178
+ item = JSON.parse(JSON.stringify(item)); // Immutable copy
179
+ fnUpdater(item)
180
+ }
181
+ return item;
182
+ })]
183
+ }
184
+ }
185
+ }
186
+ return queryData;
187
+ }
188
+
189
+ export function removeQueryData(queryData: any, select: number|((item: any) => boolean)) {
190
+ if (select !== undefined) {
191
+ const predicate = select instanceof Function ? select : (item: any) => item.id === select;
192
+
193
+ if (queryData) {
194
+ if (queryData.pages) {
195
+ const newPagesArray = queryData.pages.map((page: any, i: number) => {
196
+ // update item
197
+ page.data = [...page.data.filter((item: any) => !predicate(item))]
198
+ return page;
199
+ }) ?? [];
200
+
201
+ return {
202
+ pages: newPagesArray,
203
+ pageParams: queryData.pageParams,
204
+ };
205
+ } else if(queryData.length) {
206
+ return [...queryData.filter((item: any) => !predicate(item))];
207
+ }
208
+ }
209
+ }
210
+ return queryData;
211
+ }
212
+
213
+
214
+
215
+ export const addCacheItem = <T>(queryClient: QueryClient, key: QueryKey, item: any, tempId?: number, sorting?: { by?: string, descending?: boolean }): T | void => {
216
+ queryClient.setQueryData(key, (data: any) => addToQueryData(data, item, sorting, tempId));
217
+ }
218
+
219
+
220
+ export const updateCacheItem = <T>(queryClient: QueryClient, key: QueryKey, select: number|((item: any) => boolean), fnUpdater: Function): T | void => {
221
+ queryClient.setQueryData(key, (data: any) => updateQueryData(data, select, fnUpdater))
222
+ }
223
+
224
+ export const removeCacheItem = <T>(queryClient: QueryClient, key: QueryKey, select: number|((item: any) => boolean)): T | void => {
225
+ queryClient.setQueryData(key, (data: any) => removeQueryData(data, select));
226
+ }
227
+
228
+ // export const setCacheItem = (queryClient: QueryClient, key: QueryKey, id: number, updated: any) => {
229
+ // const data = queryClient.getQueryData<any>(key);
230
+ // if (data) {
231
+ // if (data.pages) {
232
+ // const newPagesArray = data.pages.map((page: any, i: number) => {
233
+ // // update entity
234
+ // page.data = [...page.data.map((item: any) => item.id === id ? updated : item)]
235
+ // return page;
236
+ // }) ?? [];
237
+
238
+ // queryClient.setQueryData(key, (data: any) => ({
239
+ // pages: newPagesArray,
240
+ // pageParams: data.pageParams,
241
+ // }));
242
+ // } else {
243
+ // // not paged data...
244
+ // }
245
+ // }
246
+ // }