@messenger-box/tailwind-ui-inbox 10.0.3-alpha.100
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.
- package/CHANGELOG.md +104 -0
- package/LICENSE +21 -0
- package/jest.config.js +9 -0
- package/lib/cdm-locales/en/translations.json +31 -0
- package/lib/cdm-locales/es/translations.json +31 -0
- package/lib/components/AIAgent/AIAgent.d.ts +21 -0
- package/lib/components/AIAgent/AIAgent.d.ts.map +1 -0
- package/lib/components/AIAgent/AIAgent.js +904 -0
- package/lib/components/AIAgent/AIAgent.js.map +1 -0
- package/lib/components/AIAgent/index.d.ts +2 -0
- package/lib/components/AIAgent/index.d.ts.map +1 -0
- package/lib/components/InboxMessage/CommonMessage.d.ts +8 -0
- package/lib/components/InboxMessage/CommonMessage.d.ts.map +1 -0
- package/lib/components/InboxMessage/CommonMessage.js +35 -0
- package/lib/components/InboxMessage/CommonMessage.js.map +1 -0
- package/lib/components/InboxMessage/ConversationItem.d.ts +14 -0
- package/lib/components/InboxMessage/ConversationItem.d.ts.map +1 -0
- package/lib/components/InboxMessage/ConversationItem.js +200 -0
- package/lib/components/InboxMessage/ConversationItem.js.map +1 -0
- package/lib/components/InboxMessage/InputComponent.d.ts +12 -0
- package/lib/components/InboxMessage/InputComponent.d.ts.map +1 -0
- package/lib/components/InboxMessage/InputComponent.js +359 -0
- package/lib/components/InboxMessage/InputComponent.js.map +1 -0
- package/lib/components/InboxMessage/LeftSidebar.d.ts +20 -0
- package/lib/components/InboxMessage/LeftSidebar.d.ts.map +1 -0
- package/lib/components/InboxMessage/LeftSidebar.js +102 -0
- package/lib/components/InboxMessage/LeftSidebar.js.map +1 -0
- package/lib/components/InboxMessage/MessageInput.d.ts +9 -0
- package/lib/components/InboxMessage/MessageInput.d.ts.map +1 -0
- package/lib/components/InboxMessage/MessageInput.js +154 -0
- package/lib/components/InboxMessage/MessageInput.js.map +1 -0
- package/lib/components/InboxMessage/MessageInputComponent.d.ts +9 -0
- package/lib/components/InboxMessage/MessageInputComponent.d.ts.map +1 -0
- package/lib/components/InboxMessage/Messages.d.ts +17 -0
- package/lib/components/InboxMessage/Messages.d.ts.map +1 -0
- package/lib/components/InboxMessage/Messages.js +99 -0
- package/lib/components/InboxMessage/Messages.js.map +1 -0
- package/lib/components/InboxMessage/MessagesBuilderUi.d.ts +17 -0
- package/lib/components/InboxMessage/MessagesBuilderUi.d.ts.map +1 -0
- package/lib/components/InboxMessage/Popover.d.ts +3 -0
- package/lib/components/InboxMessage/Popover.d.ts.map +1 -0
- package/lib/components/InboxMessage/Popover.js +31 -0
- package/lib/components/InboxMessage/Popover.js.map +1 -0
- package/lib/components/InboxMessage/RightSidebar.d.ts +9 -0
- package/lib/components/InboxMessage/RightSidebar.d.ts.map +1 -0
- package/lib/components/InboxMessage/RightSidebar.js +9 -0
- package/lib/components/InboxMessage/RightSidebar.js.map +1 -0
- package/lib/components/InboxMessage/RightSidebarAi.d.ts +23 -0
- package/lib/components/InboxMessage/RightSidebarAi.d.ts.map +1 -0
- package/lib/components/InboxMessage/RightSidebarAi.js +9 -0
- package/lib/components/InboxMessage/RightSidebarAi.js.map +1 -0
- package/lib/components/InboxMessage/ServiceConversationItem.d.ts +12 -0
- package/lib/components/InboxMessage/ServiceConversationItem.d.ts.map +1 -0
- package/lib/components/InboxMessage/ServiceConversationItem.js +185 -0
- package/lib/components/InboxMessage/ServiceConversationItem.js.map +1 -0
- package/lib/components/InboxMessage/ServiceInboxItem.d.ts +12 -0
- package/lib/components/InboxMessage/ServiceInboxItem.d.ts.map +1 -0
- package/lib/components/InboxMessage/ServiceInboxItem.js +182 -0
- package/lib/components/InboxMessage/ServiceInboxItem.js.map +1 -0
- package/lib/components/InboxMessage/SubscriptionHandler.d.ts +19 -0
- package/lib/components/InboxMessage/SubscriptionHandler.d.ts.map +1 -0
- package/lib/components/InboxMessage/SubscriptionHandler.js +41 -0
- package/lib/components/InboxMessage/SubscriptionHandler.js.map +1 -0
- package/lib/components/InboxMessage/UploadImageButton.d.ts +7 -0
- package/lib/components/InboxMessage/UploadImageButton.d.ts.map +1 -0
- package/lib/components/InboxMessage/UploadImageButton.js +34 -0
- package/lib/components/InboxMessage/UploadImageButton.js.map +1 -0
- package/lib/components/InboxMessage/UserModalContent.d.ts +3 -0
- package/lib/components/InboxMessage/UserModalContent.d.ts.map +1 -0
- package/lib/components/InboxMessage/UserModalContent.js +60 -0
- package/lib/components/InboxMessage/UserModalContent.js.map +1 -0
- package/lib/components/InboxMessage/index.d.ts +17 -0
- package/lib/components/InboxMessage/index.d.ts.map +1 -0
- package/lib/components/InboxMessage/message-widgets/CommonMessage.d.ts +11 -0
- package/lib/components/InboxMessage/message-widgets/CommonMessage.d.ts.map +1 -0
- package/lib/components/InboxMessage/message-widgets/CommonMessage.js +44 -0
- package/lib/components/InboxMessage/message-widgets/CommonMessage.js.map +1 -0
- package/lib/components/InboxMessage/message-widgets/ErrorFixCard.d.ts +11 -0
- package/lib/components/InboxMessage/message-widgets/ErrorFixCard.d.ts.map +1 -0
- package/lib/components/InboxMessage/message-widgets/ErrorFixCard.js +194 -0
- package/lib/components/InboxMessage/message-widgets/ErrorFixCard.js.map +1 -0
- package/lib/components/InboxMessage/message-widgets/MessageCard.d.ts +8 -0
- package/lib/components/InboxMessage/message-widgets/MessageCard.d.ts.map +1 -0
- package/lib/components/InboxMessage/message-widgets/MessageSliceRenderer.d.ts +12 -0
- package/lib/components/InboxMessage/message-widgets/MessageSliceRenderer.d.ts.map +1 -0
- package/lib/components/InboxMessage/message-widgets/MessageSliceRenderer.js +37 -0
- package/lib/components/InboxMessage/message-widgets/MessageSliceRenderer.js.map +1 -0
- package/lib/components/InboxMessage/message-widgets/ModernMessageGroup.d.ts +18 -0
- package/lib/components/InboxMessage/message-widgets/ModernMessageGroup.d.ts.map +1 -0
- package/lib/components/InboxMessage/message-widgets/ModernMessageGroup.js +1082 -0
- package/lib/components/InboxMessage/message-widgets/ModernMessageGroup.js.map +1 -0
- package/lib/components/InboxMessage/message-widgets/PlainMessage.d.ts +8 -0
- package/lib/components/InboxMessage/message-widgets/PlainMessage.d.ts.map +1 -0
- package/lib/components/InboxMessage/message-widgets/PlainMessage.js +14 -0
- package/lib/components/InboxMessage/message-widgets/PlainMessage.js.map +1 -0
- package/lib/components/InboxMessage/message-widgets/PropertyMessageWidget.d.ts +9 -0
- package/lib/components/InboxMessage/message-widgets/PropertyMessageWidget.d.ts.map +1 -0
- package/lib/components/InboxMessage/message-widgets/SlackLikeMessageGroup.d.ts +14 -0
- package/lib/components/InboxMessage/message-widgets/SlackLikeMessageGroup.d.ts.map +1 -0
- package/lib/components/InboxMessage/message-widgets/SlackLikeMessageGroup.js +333 -0
- package/lib/components/InboxMessage/message-widgets/SlackLikeMessageGroup.js.map +1 -0
- package/lib/components/InboxMessage/message-widgets/index.d.ts +4 -0
- package/lib/components/InboxMessage/message-widgets/index.d.ts.map +1 -0
- package/lib/components/ModelConfigPanel.d.ts +37 -0
- package/lib/components/ModelConfigPanel.d.ts.map +1 -0
- package/lib/components/ModelConfigPanel.js +317 -0
- package/lib/components/ModelConfigPanel.js.map +1 -0
- package/lib/components/filler-components/RightSiderBar.d.ts +24 -0
- package/lib/components/filler-components/RightSiderBar.d.ts.map +1 -0
- package/lib/components/filler-components/RightSiderBar.js +335 -0
- package/lib/components/filler-components/RightSiderBar.js.map +1 -0
- package/lib/components/inbox/FilesList.d.ts +20 -0
- package/lib/components/inbox/FilesList.d.ts.map +1 -0
- package/lib/components/inbox/FilesList.js +68 -0
- package/lib/components/inbox/FilesList.js.map +1 -0
- package/lib/components/inbox/MessageItem.d.ts +17 -0
- package/lib/components/inbox/MessageItem.d.ts.map +1 -0
- package/lib/components/inbox/MessageItem.js +50 -0
- package/lib/components/inbox/MessageItem.js.map +1 -0
- package/lib/components/inbox/ThreadItem.d.ts +11 -0
- package/lib/components/inbox/ThreadItem.d.ts.map +1 -0
- package/lib/components/inbox/ThreadItem.js +147 -0
- package/lib/components/inbox/ThreadItem.js.map +1 -0
- package/lib/components/inbox/index.d.ts +4 -0
- package/lib/components/inbox/index.d.ts.map +1 -0
- package/lib/components/index.d.ts +7 -0
- package/lib/components/index.d.ts.map +1 -0
- package/lib/components/live-code-editor/hybrid-live-editor.d.ts +20 -0
- package/lib/components/live-code-editor/hybrid-live-editor.d.ts.map +1 -0
- package/lib/components/live-code-editor/hybrid-live-editor.js +68 -0
- package/lib/components/live-code-editor/hybrid-live-editor.js.map +1 -0
- package/lib/components/live-code-editor/index.d.ts +4 -0
- package/lib/components/live-code-editor/index.d.ts.map +1 -0
- package/lib/components/live-code-editor/live-code-editor.d.ts +14 -0
- package/lib/components/live-code-editor/live-code-editor.d.ts.map +1 -0
- package/lib/components/live-code-editor/live-code-editor.js +207 -0
- package/lib/components/live-code-editor/live-code-editor.js.map +1 -0
- package/lib/components/slot-fill/chat-message-filler.d.ts +4 -0
- package/lib/components/slot-fill/chat-message-filler.d.ts.map +1 -0
- package/lib/components/slot-fill/chat-message-filler.js +5 -0
- package/lib/components/slot-fill/chat-message-filler.js.map +1 -0
- package/lib/components/slot-fill/chat-message-slot.d.ts +11 -0
- package/lib/components/slot-fill/chat-message-slot.d.ts.map +1 -0
- package/lib/components/slot-fill/chat-message-slot.js +6 -0
- package/lib/components/slot-fill/chat-message-slot.js.map +1 -0
- package/lib/components/slot-fill/index.d.ts +4 -0
- package/lib/components/slot-fill/index.d.ts.map +1 -0
- package/lib/components/slot-fill/right-sidebar-filler.d.ts +4 -0
- package/lib/components/slot-fill/right-sidebar-filler.d.ts.map +1 -0
- package/lib/components/slot-fill/right-sidebar-filler.js +13 -0
- package/lib/components/slot-fill/right-sidebar-filler.js.map +1 -0
- package/lib/components/ui/button.d.ts +9 -0
- package/lib/components/ui/button.d.ts.map +1 -0
- package/lib/compute.d.ts +8 -0
- package/lib/compute.d.ts.map +1 -0
- package/lib/compute.js +137 -0
- package/lib/compute.js.map +1 -0
- package/lib/config/env-config.d.ts +13 -0
- package/lib/config/env-config.d.ts.map +1 -0
- package/lib/config/env-config.js +34 -0
- package/lib/config/env-config.js.map +1 -0
- package/lib/config/index.d.ts +2 -0
- package/lib/config/index.d.ts.map +1 -0
- package/lib/constants/breakpoints.d.ts +8 -0
- package/lib/constants/breakpoints.d.ts.map +1 -0
- package/lib/constants/index.d.ts +3 -0
- package/lib/constants/index.d.ts.map +1 -0
- package/lib/container/AiInbox.d.ts +15 -0
- package/lib/container/AiInbox.d.ts.map +1 -0
- package/lib/container/AiInboxWithLoader.d.ts +36 -0
- package/lib/container/AiInboxWithLoader.d.ts.map +1 -0
- package/lib/container/AiLandingInput.d.ts +4 -0
- package/lib/container/AiLandingInput.d.ts.map +1 -0
- package/lib/container/AiLandingInput.js +101 -0
- package/lib/container/AiLandingInput.js.map +1 -0
- package/lib/container/Inbox.d.ts +15 -0
- package/lib/container/Inbox.d.ts.map +1 -0
- package/lib/container/Inbox.js +955 -0
- package/lib/container/Inbox.js.map +1 -0
- package/lib/container/InboxAiMessagesLoader.d.ts +15 -0
- package/lib/container/InboxAiMessagesLoader.d.ts.map +1 -0
- package/lib/container/InboxAiMessagesLoader.js +30 -0
- package/lib/container/InboxAiMessagesLoader.js.map +1 -0
- package/lib/container/InboxContainer.d.ts +12 -0
- package/lib/container/InboxContainer.d.ts.map +1 -0
- package/lib/container/InboxContainer.js +31 -0
- package/lib/container/InboxContainer.js.map +1 -0
- package/lib/container/InboxTemplate1.d.ts +15 -0
- package/lib/container/InboxTemplate1.d.ts.map +1 -0
- package/lib/container/InboxTemplate1WithLoader.d.ts +36 -0
- package/lib/container/InboxTemplate1WithLoader.d.ts.map +1 -0
- package/lib/container/InboxTemplate2.d.ts +15 -0
- package/lib/container/InboxTemplate2.d.ts.map +1 -0
- package/lib/container/InboxWithAiLoader.d.ts +15 -0
- package/lib/container/InboxWithAiLoader.d.ts.map +1 -0
- package/lib/container/InboxWithAiLoader.js +56 -0
- package/lib/container/InboxWithAiLoader.js.map +1 -0
- package/lib/container/InboxWithLoader.d.ts +36 -0
- package/lib/container/InboxWithLoader.d.ts.map +1 -0
- package/lib/container/InboxWithLoader.js +277 -0
- package/lib/container/InboxWithLoader.js.map +1 -0
- package/lib/container/ServiceInbox.d.ts +9 -0
- package/lib/container/ServiceInbox.d.ts.map +1 -0
- package/lib/container/ServiceInbox.js +144 -0
- package/lib/container/ServiceInbox.js.map +1 -0
- package/lib/container/ThreadMessages.d.ts +13 -0
- package/lib/container/ThreadMessages.d.ts.map +1 -0
- package/lib/container/ThreadMessages.js +314 -0
- package/lib/container/ThreadMessages.js.map +1 -0
- package/lib/container/ThreadMessagesInbox.d.ts +14 -0
- package/lib/container/ThreadMessagesInbox.d.ts.map +1 -0
- package/lib/container/ThreadMessagesInbox.js +341 -0
- package/lib/container/ThreadMessagesInbox.js.map +1 -0
- package/lib/container/Threads.d.ts +8 -0
- package/lib/container/Threads.d.ts.map +1 -0
- package/lib/container/Threads.js +231 -0
- package/lib/container/Threads.js.map +1 -0
- package/lib/container/ThreadsInbox.d.ts +21 -0
- package/lib/container/ThreadsInbox.d.ts.map +1 -0
- package/lib/container/ThreadsInbox.js +244 -0
- package/lib/container/ThreadsInbox.js.map +1 -0
- package/lib/container/apply-footer-styles.d.ts +2 -0
- package/lib/container/apply-footer-styles.d.ts.map +1 -0
- package/lib/container/apply-footer-styles.js +16 -0
- package/lib/container/apply-footer-styles.js.map +1 -0
- package/lib/container/index.d.ts +13 -0
- package/lib/container/index.d.ts.map +1 -0
- package/lib/enums/index.d.ts +2 -0
- package/lib/enums/index.d.ts.map +1 -0
- package/lib/enums/messenger-slot-fill-name-enum.d.ts +5 -0
- package/lib/enums/messenger-slot-fill-name-enum.d.ts.map +1 -0
- package/lib/enums/messenger-slot-fill-name-enum.js +5 -0
- package/lib/enums/messenger-slot-fill-name-enum.js.map +1 -0
- package/lib/hooks/index.d.ts +3 -0
- package/lib/hooks/index.d.ts.map +1 -0
- package/lib/hooks/use-file-sync.d.ts +16 -0
- package/lib/hooks/use-file-sync.d.ts.map +1 -0
- package/lib/hooks/use-file-sync.js +63 -0
- package/lib/hooks/use-file-sync.js.map +1 -0
- package/lib/hooks/usePersistentModelConfig.d.ts +15 -0
- package/lib/hooks/usePersistentModelConfig.d.ts.map +1 -0
- package/lib/hooks/usePersistentModelConfig.js +46 -0
- package/lib/hooks/usePersistentModelConfig.js.map +1 -0
- package/lib/index.d.ts +10 -0
- package/lib/index.d.ts.map +1 -0
- package/lib/index.js +1 -0
- package/lib/index.js.map +1 -0
- package/lib/interfaces/index.d.ts +2 -0
- package/lib/interfaces/index.d.ts.map +1 -0
- package/lib/interfaces/message-widgets.interface.d.ts +21 -0
- package/lib/interfaces/message-widgets.interface.d.ts.map +1 -0
- package/lib/machines/aiAgentMachine.d.ts +3 -0
- package/lib/machines/aiAgentMachine.d.ts.map +1 -0
- package/lib/machines/aiAgentMachine.js +1083 -0
- package/lib/machines/aiAgentMachine.js.map +1 -0
- package/lib/machines/aiAgentMachine.simple.d.ts +3 -0
- package/lib/machines/aiAgentMachine.simple.d.ts.map +1 -0
- package/lib/machines/aiAgentMachine.simple.js +108 -0
- package/lib/machines/aiAgentMachine.simple.js.map +1 -0
- package/lib/machines/index.d.ts +3 -0
- package/lib/machines/index.d.ts.map +1 -0
- package/lib/machines/types.d.ts +77 -0
- package/lib/machines/types.d.ts.map +1 -0
- package/lib/module.d.ts +7 -0
- package/lib/module.d.ts.map +1 -0
- package/lib/module.js +26 -0
- package/lib/module.js.map +1 -0
- package/lib/routes.json +98 -0
- package/lib/styles/responsive.css +76 -0
- package/lib/templates/InboxWithAi.d.ts +15 -0
- package/lib/templates/InboxWithAi.d.ts.map +1 -0
- package/lib/templates/InboxWithAi.js +440 -0
- package/lib/templates/InboxWithAi.js.map +1 -0
- package/lib/templates/InboxWithAi.tsx +533 -0
- package/lib/templates/index.d.ts +2 -0
- package/lib/templates/index.d.ts.map +1 -0
- package/lib/templates/index.ts +1 -0
- package/lib/utils/utils.d.ts +2 -0
- package/lib/utils/utils.d.ts.map +1 -0
- package/lib/utils/utils.js +3 -0
- package/lib/utils/utils.js.map +1 -0
- package/package.json +62 -0
- package/rollup.config.mjs +35 -0
- package/src/cdm-locales/en/translations.json +31 -0
- package/src/cdm-locales/es/translations.json +31 -0
- package/src/components/AIAgent/AIAgent.tsx +1103 -0
- package/src/components/AIAgent/AIAgent.tsx.bk +1365 -0
- package/src/components/AIAgent/README.md +82 -0
- package/src/components/AIAgent/index.ts +1 -0
- package/src/components/InboxMessage/CommonMessage.tsx +40 -0
- package/src/components/InboxMessage/ConversationItem.tsx +255 -0
- package/src/components/InboxMessage/InputComponent.tsx +462 -0
- package/src/components/InboxMessage/LeftSidebar.tsx +140 -0
- package/src/components/InboxMessage/MessageInput.tsx +209 -0
- package/src/components/InboxMessage/MessageInputComponent.tsx +245 -0
- package/src/components/InboxMessage/Messages.tsx +137 -0
- package/src/components/InboxMessage/MessagesBuilderUi.tsx +205 -0
- package/src/components/InboxMessage/Popover.tsx +42 -0
- package/src/components/InboxMessage/RightSidebar.tsx +22 -0
- package/src/components/InboxMessage/RightSidebarAi.tsx +37 -0
- package/src/components/InboxMessage/ServiceConversationItem.tsx +234 -0
- package/src/components/InboxMessage/ServiceInboxItem.tsx +223 -0
- package/src/components/InboxMessage/SubscriptionHandler.tsx +55 -0
- package/src/components/InboxMessage/UploadImageButton.tsx +46 -0
- package/src/components/InboxMessage/UserModalContent.tsx +60 -0
- package/src/components/InboxMessage/index.ts +16 -0
- package/src/components/InboxMessage/message-widgets/CommonMessage.tsx +69 -0
- package/src/components/InboxMessage/message-widgets/ErrorFixCard.tsx +240 -0
- package/src/components/InboxMessage/message-widgets/MessageCard.tsx +127 -0
- package/src/components/InboxMessage/message-widgets/MessageSliceRenderer.tsx +40 -0
- package/src/components/InboxMessage/message-widgets/ModernMessageGroup.tsx +1295 -0
- package/src/components/InboxMessage/message-widgets/PlainMessage.tsx +18 -0
- package/src/components/InboxMessage/message-widgets/PropertyMessageWidget.tsx +29 -0
- package/src/components/InboxMessage/message-widgets/SlackLikeMessageGroup.tsx +492 -0
- package/src/components/InboxMessage/message-widgets/index.ts +3 -0
- package/src/components/ModelConfigPanel.tsx +345 -0
- package/src/components/filler-components/RightSiderBar.tsx +408 -0
- package/src/components/inbox/FilesList.tsx +89 -0
- package/src/components/inbox/MessageItem.tsx +50 -0
- package/src/components/inbox/ThreadItem.tsx +295 -0
- package/src/components/inbox/index.ts +3 -0
- package/src/components/index.ts +22 -0
- package/src/components/live-code-editor/hybrid-live-editor.tsx +105 -0
- package/src/components/live-code-editor/index.ts +3 -0
- package/src/components/live-code-editor/live-code-editor.tsx +257 -0
- package/src/components/slot-fill/chat-message-filler.tsx +18 -0
- package/src/components/slot-fill/chat-message-slot.tsx +18 -0
- package/src/components/slot-fill/index.ts +3 -0
- package/src/components/slot-fill/right-sidebar-filler.tsx +39 -0
- package/src/components/ui/button.tsx +32 -0
- package/src/compute.ts +134 -0
- package/src/config/env-config.ts +17 -0
- package/src/config/index.ts +1 -0
- package/src/constants/breakpoints.ts +7 -0
- package/src/constants/index.ts +5 -0
- package/src/container/AiInbox.tsx +1819 -0
- package/src/container/AiInboxWithLoader.tsx +356 -0
- package/src/container/AiLandingInput.tsx +221 -0
- package/src/container/Inbox.tsx +1092 -0
- package/src/container/InboxAiMessagesLoader.tsx +44 -0
- package/src/container/InboxContainer.tsx +35 -0
- package/src/container/InboxTemplate1.tsx +1542 -0
- package/src/container/InboxTemplate1WithLoader.tsx +338 -0
- package/src/container/InboxTemplate2.tsx +1606 -0
- package/src/container/InboxWithAiLoader.tsx +76 -0
- package/src/container/InboxWithLoader.tsx +341 -0
- package/src/container/ServiceInbox.tsx +190 -0
- package/src/container/ThreadMessages.tsx +371 -0
- package/src/container/ThreadMessagesInbox.tsx +450 -0
- package/src/container/Threads.tsx +270 -0
- package/src/container/ThreadsInbox.tsx +354 -0
- package/src/container/apply-footer-styles.ts +17 -0
- package/src/container/index.ts +31 -0
- package/src/enums/index.ts +1 -0
- package/src/enums/messenger-slot-fill-name-enum.ts +4 -0
- package/src/hooks/index.ts +2 -0
- package/src/hooks/use-file-sync.ts +91 -0
- package/src/hooks/usePersistentModelConfig.ts +63 -0
- package/src/index.ts +37 -0
- package/src/interfaces/index.ts +1 -0
- package/src/interfaces/message-widgets.interface.ts +21 -0
- package/src/machines/aiAgentMachine.simple.ts +89 -0
- package/src/machines/aiAgentMachine.ts +1296 -0
- package/src/machines/aiAgentMachine.ts.bk +1296 -0
- package/src/machines/index.ts +2 -0
- package/src/machines/types.ts +59 -0
- package/src/module.tsx +32 -0
- package/src/styles/responsive.css +76 -0
- package/src/templates/InboxWithAi.tsx +533 -0
- package/src/templates/index.ts +1 -0
- package/src/utils/utils.ts +3 -0
- package/tsconfig.json +14 -0
- package/webpack.config.js +92 -0
|
@@ -0,0 +1,341 @@
|
|
|
1
|
+
import React__default,{useRef,useState,useCallback,useMemo}from'react';import {uniqBy,orderBy}from'lodash-es';import {useCreatePostThreadMutation,useGetPostThreadQuery,OnThreadChatMessageAddedDocument}from'common/graphql';import {useUploadFiles}from'@messenger-box/platform-client';import {useSelector}from'react-redux';import'../components/inbox/FilesList.js';import'../components/inbox/MessageItem.js';import'../components/inbox/ThreadItem.js';import'date-fns';import'@react-icons/all-files/bs/BsFlag.js';import'../components/InboxMessage/ConversationItem.js';import'../components/InboxMessage/ServiceConversationItem.js';import'../components/InboxMessage/LeftSidebar.js';import {MessageInput}from'../components/InboxMessage/MessageInput.js';import {Messages}from'../components/InboxMessage/Messages.js';import'react-i18next';import'@react-icons/all-files/bi/BiImage.js';import'@react-icons/all-files/ai/AiOutlineSecurityScan.js';import'@react-icons/all-files/fi/FiCheck.js';import'@react-icons/all-files/bs/BsFillStarFill.js';import'common';import'@common-stack/components-pro';import'react-markdown';import'remark-gfm';import'../enums/messenger-slot-fill-name-enum.js';import'../components/InboxMessage/ServiceInboxItem.js';import {config}from'../config/env-config.js';import'../components/ModelConfigPanel.js';import {objectId}from'@messenger-box/core';import'../components/live-code-editor/hybrid-live-editor.js';import'../components/AIAgent/AIAgent.js';import {userSelector}from'@adminide-stack/user-auth0-client';import {BiChevronLeftSquare}from'@react-icons/all-files/bi/BiChevronLeftSquare.js';const {
|
|
2
|
+
MESSAGES_PER_PAGE,
|
|
3
|
+
WEB_INBOX_MESSEGE_PATH
|
|
4
|
+
} = config;
|
|
5
|
+
const ThreadMessagesInbox = React__default.memo(props => {
|
|
6
|
+
const {
|
|
7
|
+
channelId,
|
|
8
|
+
postId,
|
|
9
|
+
role,
|
|
10
|
+
isPostParentIdThread,
|
|
11
|
+
goBack = false,
|
|
12
|
+
pathPrefix,
|
|
13
|
+
setPostId,
|
|
14
|
+
setChannelId,
|
|
15
|
+
onMessageClick
|
|
16
|
+
} = props;
|
|
17
|
+
const threadMessageRootRef = React__default.useRef(null);
|
|
18
|
+
const messageListRef = useRef(null);
|
|
19
|
+
const currentUser = useSelector(userSelector);
|
|
20
|
+
const [channelToTop, setChannelToTop] = useState(0);
|
|
21
|
+
const [postThread, setPostThread] = useState();
|
|
22
|
+
const [channelMessages, setChannelMessages] = React__default.useState([]);
|
|
23
|
+
const [totalCount, setTotalCount] = React__default.useState(0);
|
|
24
|
+
const [loadingOldMessages, setLoadingOldMessages] = React__default.useState(false);
|
|
25
|
+
const [loading, setLoading] = React__default.useState(true);
|
|
26
|
+
const [isScrollToBottom, setIsScrollToBottom] = useState(false);
|
|
27
|
+
const {
|
|
28
|
+
startUpload
|
|
29
|
+
} = useUploadFiles();
|
|
30
|
+
const [sendThreadMessage] = useCreatePostThreadMutation();
|
|
31
|
+
const {
|
|
32
|
+
data,
|
|
33
|
+
loading: threadLoading,
|
|
34
|
+
fetchMore: fetchMoreMessages,
|
|
35
|
+
refetch: refetchThreadMessages,
|
|
36
|
+
subscribeToMore
|
|
37
|
+
} = useGetPostThreadQuery({
|
|
38
|
+
variables: {
|
|
39
|
+
channelId: channelId?.toString(),
|
|
40
|
+
role: role?.toString(),
|
|
41
|
+
postParentId: postId?.toString(),
|
|
42
|
+
limit: MESSAGES_PER_PAGE
|
|
43
|
+
},
|
|
44
|
+
fetchPolicy: 'cache-and-network'
|
|
45
|
+
});
|
|
46
|
+
React__default.useEffect(() => {
|
|
47
|
+
if (postId) {
|
|
48
|
+
refetchThreadMessages({
|
|
49
|
+
channelId: channelId?.toString(),
|
|
50
|
+
role: role?.toString(),
|
|
51
|
+
postParentId: postId?.toString(),
|
|
52
|
+
limit: MESSAGES_PER_PAGE
|
|
53
|
+
});
|
|
54
|
+
}
|
|
55
|
+
}, [postId]);
|
|
56
|
+
// React.useEffect(() => {
|
|
57
|
+
// if (data?.threadMessages) {
|
|
58
|
+
// const threads = data?.threadMessages ?? null;
|
|
59
|
+
// const threadsData = threads?.data ?? [];
|
|
60
|
+
// const messeageTotalCount = threadsData?.reduce((accumulator, thread) => {
|
|
61
|
+
// return accumulator + thread?.replyCount;
|
|
62
|
+
// }, 0);
|
|
63
|
+
// const replies = threadsData?.map((t: any) => t?.replies)?.flat(1) ?? [];
|
|
64
|
+
// const posts = threadsData?.map((t: any) => t?.post)?.flat(1) ?? [];
|
|
65
|
+
// const messages = [...posts, ...replies];
|
|
66
|
+
// if (
|
|
67
|
+
// (messages && messages.length > 0 && messages?.length > totalCount) ||
|
|
68
|
+
// (messages && messages.length > 0 && channelMessages.length === 0)
|
|
69
|
+
// ) {
|
|
70
|
+
// setThreadMessages(messages, messages?.length);
|
|
71
|
+
// }
|
|
72
|
+
// }
|
|
73
|
+
// if (isScrollToBottom && channelMessages) scrollToBottom();
|
|
74
|
+
// }, [data, channelMessages, loadingOldMessages, totalCount, isPostParentIdThread, isScrollToBottom]);
|
|
75
|
+
React__default.useEffect(() => {
|
|
76
|
+
if (data?.getPostThread) {
|
|
77
|
+
const threads = data.getPostThread;
|
|
78
|
+
const threadPost = threads?.post ?? {};
|
|
79
|
+
const threadReplies = threads?.replies ?? [];
|
|
80
|
+
const messeageTotalCount = threads?.replyCount ?? 0;
|
|
81
|
+
const messages = [threadPost, ...threadReplies];
|
|
82
|
+
if (messages && messages.length > 0 && messeageTotalCount > totalCount || messages && messages.length > 0 && channelMessages.length === 0) {
|
|
83
|
+
setThreadMessages(messages, messeageTotalCount);
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
if (isScrollToBottom && channelMessages) scrollToBottom();
|
|
87
|
+
}, [data, channelMessages, loadingOldMessages, totalCount, isPostParentIdThread, isScrollToBottom]);
|
|
88
|
+
const lastMessage = useMemo(() => {
|
|
89
|
+
const threads = data?.getPostThread ?? null;
|
|
90
|
+
const threadPost = threads?.post ?? {};
|
|
91
|
+
const threadReplies = threads?.replies ?? [];
|
|
92
|
+
if (!threads) {
|
|
93
|
+
return null;
|
|
94
|
+
}
|
|
95
|
+
let threadMessagesData;
|
|
96
|
+
if (threadReplies?.length) {
|
|
97
|
+
threadMessagesData = [...threadReplies];
|
|
98
|
+
} else if (threadPost && Object.keys(threadPost).length) {
|
|
99
|
+
threadMessagesData = [threadPost];
|
|
100
|
+
}
|
|
101
|
+
let filteredLastMessage = threadMessagesData && threadMessagesData?.length > 1 ? threadMessagesData?.reduce((a, b) => {
|
|
102
|
+
return new Date(a?.updatedAt) > new Date(b?.updatedAt) ? a : b;
|
|
103
|
+
}, []) ?? null : threadMessagesData?.length <= 1 ? threadMessagesData?.[0] ?? [] : null;
|
|
104
|
+
return filteredLastMessage;
|
|
105
|
+
}, [data?.getPostThread]);
|
|
106
|
+
// const lastMessage = useMemo(() => {
|
|
107
|
+
// const threads = data?.threadMessages ?? null;
|
|
108
|
+
// const threadsData = threads?.data ?? [];
|
|
109
|
+
// const replies = threadsData?.map((t: any) => t?.replies)?.flat(1) ?? [];
|
|
110
|
+
// const posts = threadsData?.map((t: any) => t?.post)?.flat(1) ?? [];
|
|
111
|
+
// if (!threadsData?.length) {
|
|
112
|
+
// return null;
|
|
113
|
+
// }
|
|
114
|
+
// let threadMessagesData;
|
|
115
|
+
// if (replies?.length) {
|
|
116
|
+
// threadMessagesData = [...replies];
|
|
117
|
+
// } else if (posts?.length) {
|
|
118
|
+
// threadMessagesData = [...posts];
|
|
119
|
+
// }
|
|
120
|
+
// let filteredLastMessage =
|
|
121
|
+
// threadMessagesData && threadMessagesData?.length > 1
|
|
122
|
+
// ? threadMessagesData?.reduce((a, b) => {
|
|
123
|
+
// return new Date(a?.updatedAt) > new Date(b?.updatedAt) ? a : b;
|
|
124
|
+
// }, []) ?? null
|
|
125
|
+
// : threadMessagesData?.length <= 1
|
|
126
|
+
// ? threadMessagesData?.[0] ?? []
|
|
127
|
+
// : null;
|
|
128
|
+
// return filteredLastMessage;
|
|
129
|
+
// // //return data[data.length - 1];
|
|
130
|
+
// }, [data?.threadMessages]);
|
|
131
|
+
React__default.useEffect(() => {
|
|
132
|
+
if (lastMessage && (!postId || postId == 0)) {
|
|
133
|
+
const sParentId = lastMessage?.parentId ? lastMessage?.parentId : lastMessage?.id;
|
|
134
|
+
setPostId?.(sParentId);
|
|
135
|
+
}
|
|
136
|
+
}, [lastMessage, postId]);
|
|
137
|
+
const setThreadMessages = useCallback((messages, messagesTotalCount) => {
|
|
138
|
+
setChannelMessages(oldMessages => uniqBy([...messages, ...oldMessages], ({
|
|
139
|
+
id
|
|
140
|
+
}) => id));
|
|
141
|
+
setTotalCount(messagesTotalCount);
|
|
142
|
+
}, []);
|
|
143
|
+
const scrollToBottom = React__default.useCallback(() => {
|
|
144
|
+
if (threadMessageRootRef?.current) {
|
|
145
|
+
setIsScrollToBottom(false);
|
|
146
|
+
threadMessageRootRef.current.scrollTop = threadMessageRootRef.current.scrollHeight;
|
|
147
|
+
}
|
|
148
|
+
}, [threadMessageRootRef]);
|
|
149
|
+
const handleSend = useCallback(async (message, files) => {
|
|
150
|
+
if (!(message && channelId)) {
|
|
151
|
+
return;
|
|
152
|
+
}
|
|
153
|
+
const newPostId = objectId();
|
|
154
|
+
if (files && files?.length > 0) {
|
|
155
|
+
const uploadResponse = await startUpload({
|
|
156
|
+
file: files,
|
|
157
|
+
saveUploadedFile: {
|
|
158
|
+
variables: {
|
|
159
|
+
newPostId
|
|
160
|
+
}
|
|
161
|
+
},
|
|
162
|
+
createUploadLink: {
|
|
163
|
+
variables: {
|
|
164
|
+
newPostId
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
});
|
|
168
|
+
if (uploadResponse?.error) setLoading(false);
|
|
169
|
+
const uploadedFiles = uploadResponse.data;
|
|
170
|
+
if (uploadResponse.data) {
|
|
171
|
+
const files = uploadedFiles?.map(f => f.id) ?? null;
|
|
172
|
+
await sendThreadMessage({
|
|
173
|
+
variables: {
|
|
174
|
+
postId: newPostId,
|
|
175
|
+
channelId,
|
|
176
|
+
postThreadId: postThread && postThread?.id,
|
|
177
|
+
postParentId: !postId || postId == 0 ? null : postId,
|
|
178
|
+
threadMessageInput: {
|
|
179
|
+
content: message,
|
|
180
|
+
files,
|
|
181
|
+
role
|
|
182
|
+
}
|
|
183
|
+
},
|
|
184
|
+
update: (cache, {
|
|
185
|
+
data,
|
|
186
|
+
errors
|
|
187
|
+
}) => {
|
|
188
|
+
if (!data || errors) {
|
|
189
|
+
setLoading(false);
|
|
190
|
+
return;
|
|
191
|
+
}
|
|
192
|
+
data?.createPostThread?.lastMessage;
|
|
193
|
+
// setPostThread(data?.createPostThread?.data);
|
|
194
|
+
// if (!postId || postId == 0) {
|
|
195
|
+
// setPostId(data?.createPostThread?.lastMessage?.id);
|
|
196
|
+
// }
|
|
197
|
+
setChannelToTop(channelToTop + 1);
|
|
198
|
+
setLoading(false);
|
|
199
|
+
// scrollToBottom();
|
|
200
|
+
}
|
|
201
|
+
});
|
|
202
|
+
}
|
|
203
|
+
} else {
|
|
204
|
+
await sendThreadMessage({
|
|
205
|
+
variables: {
|
|
206
|
+
channelId,
|
|
207
|
+
postParentId: !postId || postId == 0 ? null : postId,
|
|
208
|
+
postThreadId: postThread && postThread?.id,
|
|
209
|
+
threadMessageInput: {
|
|
210
|
+
content: message,
|
|
211
|
+
role
|
|
212
|
+
}
|
|
213
|
+
},
|
|
214
|
+
update: (cache, {
|
|
215
|
+
data,
|
|
216
|
+
errors
|
|
217
|
+
}) => {
|
|
218
|
+
if (!data || errors) {
|
|
219
|
+
return;
|
|
220
|
+
}
|
|
221
|
+
// setPostThread(data?.createPostThread.data);
|
|
222
|
+
// if (!postId || postId == 0) {
|
|
223
|
+
// setPostId(data?.createPostThread?.lastMessage?.id);
|
|
224
|
+
// }
|
|
225
|
+
setChannelToTop(channelToTop + 1);
|
|
226
|
+
//scrollToBottom();
|
|
227
|
+
}
|
|
228
|
+
});
|
|
229
|
+
}
|
|
230
|
+
}, [setChannelMessages, channelId, postId, channelToTop, postThread]);
|
|
231
|
+
const onFetchOld = useCallback(async skip => {
|
|
232
|
+
if (channelId && postId) {
|
|
233
|
+
setLoadingOldMessages(true);
|
|
234
|
+
fetchMoreMessages({
|
|
235
|
+
variables: {
|
|
236
|
+
channelId: channelId?.toString(),
|
|
237
|
+
role: role?.toString(),
|
|
238
|
+
postParentId: postId?.toString(),
|
|
239
|
+
// selectedFields: 'id channel post replies replyCount lastReplyAt createdAt updatedAt',
|
|
240
|
+
limit: MESSAGES_PER_PAGE,
|
|
241
|
+
skip: skip - 1
|
|
242
|
+
}
|
|
243
|
+
}).then(res => {
|
|
244
|
+
if (res?.data?.getPostThread) {
|
|
245
|
+
const threads = res?.data?.getPostThread;
|
|
246
|
+
const threadReplies = threads?.replies ?? [];
|
|
247
|
+
const messeageTotalCount = threads?.replyCount ?? 0;
|
|
248
|
+
setThreadMessages(threadReplies, messeageTotalCount);
|
|
249
|
+
if (threadMessageRootRef?.current) {
|
|
250
|
+
threadMessageRootRef.current.scrollTop = threadMessageRootRef.current.scrollTop + threadMessageRootRef.current.clientHeight / 2;
|
|
251
|
+
}
|
|
252
|
+
}
|
|
253
|
+
})
|
|
254
|
+
// .then((res) => {
|
|
255
|
+
// if (res?.data?.threadMessages?.data) {
|
|
256
|
+
// const threads = res?.data?.threadMessages ?? null;
|
|
257
|
+
// const threadsData = threads?.data ?? [];
|
|
258
|
+
// const threadReplies = threadsData?.map((t: any) => t?.replies)?.flat(1) ?? [];
|
|
259
|
+
// const messeageTotalCount = threadsData?.reduce((accumulator, thread) => {
|
|
260
|
+
// return accumulator + thread?.replyCount;
|
|
261
|
+
// }, 0);
|
|
262
|
+
// const posts = threadsData?.map((t: any) => t?.post)?.flat(1) ?? [];
|
|
263
|
+
// const messages = [...posts, ...threadReplies];
|
|
264
|
+
// setThreadMessages(threadReplies, messages?.length);
|
|
265
|
+
// if (threadMessageRootRef?.current) {
|
|
266
|
+
// threadMessageRootRef.current.scrollTop =
|
|
267
|
+
// threadMessageRootRef.current.scrollTop +
|
|
268
|
+
// threadMessageRootRef.current.clientHeight / 2;
|
|
269
|
+
// }
|
|
270
|
+
// }
|
|
271
|
+
// })
|
|
272
|
+
.finally(() => {
|
|
273
|
+
setLoadingOldMessages(false);
|
|
274
|
+
}).catch(error => {
|
|
275
|
+
setLoadingOldMessages(false);
|
|
276
|
+
});
|
|
277
|
+
}
|
|
278
|
+
}, [postId, channelId, threadMessageRootRef, channelMessages]);
|
|
279
|
+
const onMessagesScroll = useCallback(async e => {
|
|
280
|
+
if (threadMessageRootRef.current) {
|
|
281
|
+
const {
|
|
282
|
+
clientHeight: messageContainerClientHeight,
|
|
283
|
+
scrollHeight: messageContainerScrollHeight,
|
|
284
|
+
scrollTop: messageContainerScrollTop,
|
|
285
|
+
offsetTop: messageContainerOffsetTop
|
|
286
|
+
} = threadMessageRootRef?.current;
|
|
287
|
+
if (messageContainerClientHeight - messageContainerScrollTop == messageContainerScrollHeight && !loadingOldMessages && totalCount > channelMessages.length) {
|
|
288
|
+
await onFetchOld(channelMessages?.length);
|
|
289
|
+
}
|
|
290
|
+
}
|
|
291
|
+
}, [threadMessageRootRef, loadingOldMessages, channelMessages, totalCount]);
|
|
292
|
+
const sortedMessages = useMemo(() => channelMessages && orderBy(channelMessages, ['createdAt'], ['asc']), [channelMessages]);
|
|
293
|
+
return React__default.createElement(React__default.Fragment, null, goBack && React__default.createElement("button", {
|
|
294
|
+
className: "absolute m-1.5 w-10 bg-transparent text-gray-300 z-10 text-xs hover:border-none hover:shadow-none focus:border-none focus:shadow-none focus:outline-none",
|
|
295
|
+
onClick: () => {
|
|
296
|
+
setChannelId?.(channelId);
|
|
297
|
+
setPostId?.(1);
|
|
298
|
+
}
|
|
299
|
+
}, React__default.createElement(BiChevronLeftSquare, {
|
|
300
|
+
fontSize: "32"
|
|
301
|
+
})), React__default.createElement("div", {
|
|
302
|
+
ref: threadMessageRootRef,
|
|
303
|
+
className: "flex flex-col-reverse overflow-y-auto flex-grow flex-shrink p-4 px-2.5 md:px-12 lg:px-20",
|
|
304
|
+
onScroll: onMessagesScroll
|
|
305
|
+
}, React__default.createElement(Messages, {
|
|
306
|
+
innerRef: messageListRef,
|
|
307
|
+
channelId: channelId,
|
|
308
|
+
currentUser: currentUser,
|
|
309
|
+
channelMessages: sortedMessages,
|
|
310
|
+
totalCount: totalCount,
|
|
311
|
+
onMessageClick: onMessageClick,
|
|
312
|
+
subscribeToNewMessages: () => subscribeToMore({
|
|
313
|
+
document: OnThreadChatMessageAddedDocument,
|
|
314
|
+
variables: {
|
|
315
|
+
channelId: channelId?.toString(),
|
|
316
|
+
postParentId: !postId || postId == 0 ? null : postId?.toString()
|
|
317
|
+
},
|
|
318
|
+
updateQuery: (prev, {
|
|
319
|
+
subscriptionData
|
|
320
|
+
}) => {
|
|
321
|
+
if (!subscriptionData.data) return prev;
|
|
322
|
+
const newMessage = subscriptionData?.data?.threadChatMessageAdded;
|
|
323
|
+
const prevReplyCount = prev?.getPostThread?.replyCount;
|
|
324
|
+
const newReplyCount = prevReplyCount + 1;
|
|
325
|
+
return Object.assign({}, prev, {
|
|
326
|
+
getPostThread: {
|
|
327
|
+
...prev?.getPostThread,
|
|
328
|
+
lastReplyAt: newMessage.createdAt,
|
|
329
|
+
replies: [newMessage, ...prev?.getPostThread?.replies],
|
|
330
|
+
replyCount: newReplyCount,
|
|
331
|
+
updatedAt: newMessage.createdAt
|
|
332
|
+
}
|
|
333
|
+
});
|
|
334
|
+
}
|
|
335
|
+
})
|
|
336
|
+
})), React__default.createElement(MessageInput, {
|
|
337
|
+
channelId: channelId,
|
|
338
|
+
handleSend: handleSend,
|
|
339
|
+
placeholder: "Message"
|
|
340
|
+
}));
|
|
341
|
+
});export{ThreadMessagesInbox};//# sourceMappingURL=ThreadMessagesInbox.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ThreadMessagesInbox.js","sources":["../../src/container/ThreadMessagesInbox.tsx"],"sourcesContent":[null],"names":["React"],"mappings":"okDAgBA,MAAM;AAcN,EAAA,iBAAa;;IAYT,MAAM;yBACiB,GAAOA,cAAM,CAAA,IAAA,CAAA,KAAA,IAAA;AACpC,EAAA,MAAA;IACA,SAAO;IACP,MAAM;AACN,IAAA,IAAA;AACA,IAAA,oBAAmB;AACnB,IAAA,MAAM,GAAC,KAAA;AACP,IAAA,UAAO;IACP,SAAO;AACP,IAAA,YAAQ;AACR,IAAA;AAEA,GAAA,GAAA;AAOI,EAAA,MAAA,oBAAW,GAAAA,cAAA,CAAA,MAAA,CAAA,IAAA,CAAA;AACP,EAAA,MAAA,cAAS,GAAE,MAAA,CAAS,IAAE,CAAA;AACtB,EAAA,MAAA,WAAM,GAAI,WAAU,CAAE,YAAA,CAAA;AACtB,EAAA,MAAA,CAAA,YAAA,EAAA,eAAsB,CAAA,GAAQ,QAAE,CAAA,CAAA,CAAA;AAChC,EAAA,MAAA,CAAA,UAAO,EAAA,aAAA,CAAA,GAAiB,QAAA,EAAA;AAC3B,EAAA,MAAA,CAAA,eAAA,EAAA,kBAAA,CAAA,GAAAA,cAAA,CAAA,QAAA,CAAA,EAAA,CAAA;AACD,EAAA,MAAA,CAAA,UAAW,EAAE,aAAA,CAAA,GAAAA,cAAmB,CAAA,QAAA,CAAA,CAAA,CAAA;AACnC,EAAA,MAAE,CAAA,kBAAA,EAAA,qBAAA,CAAA,GAAAA,cAAA,CAAA,QAAA,CAAA,KAAA,CAAA;AAEH,EAAA,MAAA,CAAK,OAAC,EAAA,UAAe,CAAA,GAAAA,cAAA,CAAA,QAAA,CAAA,IAAA,CAAA;QACjB,CAAA,gBAAa,EAAA,mBAAA,CAAA,GAAA,QAAA,CAAA,KAAA,CAAA;AACT,EAAA,MAAA;AACI,IAAA;AACA,GAAA,GAAA,cAAI,EAAE;AACN,EAAA,MAAA,CAAA,iBAAA,CAAA,GAAc,2BAAkB,EAAA;AAChC,EAAA,MAAA;AACH,IAAA,IAAA;WACJ,EAAA,aAAA;AACL,IAAA,SAAI,EAAO,iBAAE;IAEb,OAAA,EAAA,qBAA0B;IAC1B;MACA,qBAAA,CAAA;IACA,SAAA,EAAA;MACA,SAAA,EAAA,SAAA,EAAA,QAAA,EAAA;MACA,IAAA,EAAA,IAAA,EAAA,QAAA,EAAA;MACA,YAAA,EAAA,MAAiB,EAAA,QAAA,EAAA;MACjB,KAAA,EAAA;KACA;IACA,WAAA,EAAA;IAEA;gBACA,CAAA,SAAA,CAAA,MAAA;IACA,IAAA,MAAA,EAAA;MACA,qBAAc,CAAA;QACd,SAAA,EAAA,SAAA,EAAA,QAAA,EAAA;QACA,IAAA,EAAA,IAAY,EAAA,QAAA,EAAA;QACZ,YAAQ,EAAA,MAAA,EAAA,QAAA,EAAA;QACR,KAAA,EAAA;OACA,CAAA;AAEA,IAAA;AACI,EAAA,CAAA,EAAA,CAAA,MAAI,CAAA,CAAA;AACA;AACA;AACA;AACA;;AAEA;AAEI;AAEA;;;;AAGiC;AAC7C;AAEA;AACI;AACA;AACA;;AAGI;iBACJ,SAAC,CAAA,MAAA;AACD,IAAA,IAAA,IAAI;AACJ,MAAA,MAAI,OAAA,GAAA,IAAa,CAAE,aAAS;AACxB,MAAA,MAAA,UAAA,GAAA,OAAkB,EAAI,IAAG,IAAA,EAAA;YAC5B,aAAA,GAAA,OAAA,EAAA,OAAA,IAAA,EAAA;8BAAoB,GAAI,OAAO,EAAI,UAAC,IAAY,CAAA;AAC7C,MAAA,MAAA,QAAA,GAAA,CAAA,UAAsB,EAAA,GAAA,aAAY,CAAA;UACrC,QAAA,IAAA,QAAA,CAAA,MAAA,GAAA,CAAA,IAAA,kBAAA,GAAA,UAAA,IAAA,QAAA,IAAA,QAAA,CAAA,MAAA,GAAA,CAAA,IAAA,eAAA,CAAA,MAAA,KAAA,CAAA,EAAA;QAED,iBAAI,CAAA,QACA,EAAA,kBAAkB,CAAA;;;AAGZ,IAAA,IAAA,gBAAU,IAAI,eAAA,EAAA,cAAA,EAAA;AAChB,EAAA,CAAA,EAAA,CAAA,IAAA,EAAA,eAAE,EAAA,kBAA+B,EAAA,UAAA,EAAA,oBAAA,EAAA,gBAAA,CAAA,CAAA;AACjC,EAAA,MAAA,WAAE,GAAA,OAAA,CAAA,MAAkB;iBACnB,OAAM,EAAA,aAAA,IAAA,IAAA;AAEf,IAAA,MAAA,0BAA2B,IAAA,EAAA;AAC/B,IAAA,MAAI,aAAM,GAAA,OAAgB,EAAA,OAAA,IAAA,EAAA;IAE1B,IAAA,CAAA,OAAA,EAAA;MACA,OAAA,IAAA;IACA;IACA,IAAA,kBAAA;IACA,IAAA,aAAA,EAAA,MAAA,EAAA;MACA,kBAAA,GAAA,CAAA,GAAA,aAAkC,CAAA;IAClC,CAAA,MAAA,IAAA,UAAA,IAAuB,MAAA,CAAA,IAAA,CAAA,UAAA,CAAA,CAAA,MAAA,EAAA;MACvB,kBAAQ,GAAA,CAAA,UAAA,CAAA;IACR;IACA,IAAA,mBAAA,GAAA,kBAA6B,IAAA,kBAAA,EAAA,MAAA,GAAA,CAAA,GAAA,kBAAA,EAAA,MAAA,CAAA,CAAA,CAAA,EAAA,CAAA,KAAA;MAC7B,OAAA,IAAA,IAAA,CAAA,CAAA,EAAA,SAAA,CAAA,GAAA,IAAA,IAAA,CAAA,CAAA,EAA6C,SAAA,CAAA,GAAA,CAAA,GAAA,CAAA;IAC7C,CAAA,EAAA,EAAA,CAAA,IAAA,IAAA,GAAA,kBAAkC,EAAA,MAAA,IAAA,CAAA,GAAA,kBAAA,GAAA,CAAA,CAAA,IAAA,EAAA,GAAA,IAAA;IAClC,OAAA,mBAAA;KACA,CAAA,IAAA,EAAQ,aAAA,CAAA,CAAA;;;;;;;;;;;;AAeR;;AAEQ;AACA;;AAER;;;;;AAOA;AACI;;;iBAGA,SAAC,CAAA,MAAA;AACL,IAAA,IAAI,WAAA,KAAA,CAAA,MAAuB,IAAA,MAAA,IAAA,CAAA,CAAA,EAAA;MAE3B,MAAM,SAAU,GAAG,WACf,EAAA,QAAO,GAAA,WAA4B,EAAE,QAAA,GAAA,WAAA,EAAA,EAAA;AACjC,MAAA,SAAM,GAAA,SAAW,CAAA;;iBAEhB,EAAA,MAAA,CAAA,CAAA;AACD,EAAA,MAAA,iBAAe,GAAG,WAAW,CAAA,CAAA,QAAA,EAAA,kBAAA,KAAA;sBAEhB,CAAA,WAAa,IAAI,MAAG,CAAA,CAAA,GAAA,QAAA,EAAA,GAAA,WAAA,CAAA,EAAA,CAAA;AAC7B,MAAA;AACI,KAAA,KAAA,EAAA,CAAA,CAAA;AACA,IAAA,aAAA,CAAA,kBAAkB,CAAA;AACd,EAAA,CAAA,EAAA,EAAA,CAAA;yBACIA,cAAA,CAAA,WAAS,CAAA,MAAA;AACZ,IAAA,IAAA,oBAAA,EAAA,OAAA,EAAA;AACJ,MAAA,mBAAA,CAAA,KAAA,CAAA;AACD,MAAA,oBAAA,CAAA,OAAkB,CAAA,SAAA,GAAA,oBAAA,CAAA,OAAA,CAAA,YAAA;AACd,IAAA;0BACI,CAAA,CAAA;AACH,EAAA,MAAA,UAAA,GAAA,WAAA,CAAA,OAAA,OAAA,EAAA,KAAA,KAAA;AACJ,IAAA,IAAA,EAAA,OAAA,IAAA,SAAA,CAAA,EAAA;AACJ,MAAA;;mBAC0B,GAAA,QAAW,EAAK;AAC3C,IAAA,IAAA,KAAA,IAAA,KAAM,EAAA,MAAA,GAAa,CAAG,EAAA;AACtB,MAAA,MAAA,cAAI,GAAA,MAAmB,WAAG,CAAA;AACtB,QAAA,IAAA,EAAA,KAAA;AACA,QAAA;AACI,UAAA,SAAA,EAAA;AACI,YAAA;;AAEA,SAAA;AACA,QAAA,gBAAA,EAAA;AACA,UAAA,SAAA,EAAA;AACI,YAAA;;;AAGH,OAAA,CAAA;AACJ,MAAA,IAAA,cAAA,EAAA,KAAA,EAAA,UAAA,CAAA,KAAA,CAAA;yBACD,GAAQ,cAAc,CAAA,IAAE;AACpB,MAAA,IAAA,cAAA,CAAA,IAAK,EAAA;mCACD,EAAA,GAAW,CAAA,CAAA,IAAO,CAAA,CAAA,EAAA,CAAA,IAAA,IAAA;+BAClB,CAAA;;AAEJ,YAAA,MAAA,EAAA,SAAA;;wBAEA,EAAA,UAAA,IAAA,UAAA,EAAA,EAAA;wBACA,EAAA,CAAA,MAAA,IAAA,MAAA,IAAA,CAAA,GAAA,IAAA,GAAA,MAAA;8BACI,EAAA;AAEJ,cAAA,OAAA,EAAA,OAAA;;;;AAKP,WAAA;gBACJ,EAAA,CAAA,KAAA,EAAA;YACJ,IAAA;;AACG,WAAA,KAAA;AACI,YAAA,IAAA,CAAA,IAAA,IAAS,MAAE,EAAA;wBACP,CAAA,KAAS,CAAA;AACT,cAAA;AACA,YAAA;AACA,YAAA,IAAoB,EAAA,gBAAA,EAAA;AAChB;;AAEH;AACJ;2BACQ,CAAA,YAAe,GAAA,CAAA,CAAA;AACpB,YAAA,UAAA,CAAA,KAAK,CAAI;;;;;;6BAML,CAAA;AACJ,QAAA,SAAA,EAAA;;sBAEH,EAAA,CAAA,MAAA,IAAA,MAAA,IAAA,CAAA,GAAA,IAAA,GAAA,MAAA;AACJ,UAAA,YAAE,EAAA,UAAA,IAAA,UAAA,EAAA,EAAA;UACN,kBAAA,EAAA;AACL,YACC,OAAA,EAAA,OAAoB;YAGnB;AAEE;;AAEI,QAAA,MAAA,EAAA,CAAA,KAAA,EAAA;AACI,UAAA,IAAA;AACI,UAAA;AACA,SAAA,KAAA;AACA,UAAA,IAAA,CAAA,IAAA,IAAA,MAAA,EAAA;;AAEA,UAAA;;AAEH;;AAEA;AACG,UAAA,eAAS,CAAA,YAAM,GAAA,CAAA,CAAA;AACX;AACA,QAAA;AACA,OAAA,CAAA;AACA,IAAA;AACA,EAAA,CAAA,EAAA,CAAA,kBAAI,EAAA,SAAA,EAAA,MAAA,EAAoB,YAAY,EAAA,UAAA,CAAA,CAAA;gCAChC,CAAA,MAAA,IAAA,IAAqB;6BACjB;AACA,MAAA,qBAAA,CAAA,IAAA,CAAA;uBACP,CAAA;iBACJ,EAAA;AACL,UAAA,SAAE,EAAA,SAAA,EAAA,QAAA,EAAA;gBACF,IAAA,EAAA,QAAA,EAAA;sBACA,EAAA,MAAA,EAAA,QAAA,EAAA;;iBAEA,iBAAA;gBACA,IAAA,GAAA;;iBAEA,IAAA;iBACA,IAAA,EAAA,aAAiB,EAAA;gBACjB,OAAA,GAAA,GAAA,EAAA,IAAA,EAAA,aAAA;gBACA,aAAA,GAAA,OAAA,EAAA,OAAA,IAAA,EAAA;gBACA,kBAAA,GAAA,OAAA,EAAA,UAAA,IAAA,CAAA;2BACA,CAAA,aAAA,EAAA,kBAAA,CAAA;kCACA,EAAA,OAAA,EAAA;gCACA,CAAA,OAAA,CAAA,SAAA,GAAA,oBAAA,CAAA,OAA2D,CAAA,SAAA,GAAA,oBAAA,CAAA,OAAA,CAAA,YAAA,GAAA,CAAA;;;;;;;AAO3D;AACC;;AAED;;;;AAQR;;AAOI;AAEI;AACA;AAEA;;;OAIZ,OAAC,CAAA,MAAA;QAGL,qBAAuB,CAAA,KACnB,CAAA;AAIJ,MAAA,CAAA,CAAA,CAAA,KACI,CAAA,KAAA,IAAA;QACK,qBACG,CAAA,KAAA,CAAA;AAGQ,MAAA,CAAA,CAAA;AACA,IAAA;YACJ,EAAC,SAAA,EAAA,oBAAA,EAAA,eAAA,CAAA,CAAA;AAED,EAAA,MAAA,gBAAA,GAAA;QAGR,oBAAA,CAAA,OAAA,EACI;AAIA,MAAA,MAAA;AASY,QAAA,YAAA,EAAA,4BAA4B;AAC5B,QAAA,YAAA,EAAA,4BAAW;AACP,QAAA,SAAA,EAAA,yBAAoB;AACpB,QAAA,SAAA,EAAA;AACH,OAAA,GAAA,oBAAA,EAAA,OAAA;sCACiB,4BAA+B,IAAA,4BAAA,IAAA,CAAA,kBAAA,IAAA,UAAA,GAAA,eAAA,CAAA,MAAA,EAAA;wBAC7C,CAAA,eAAK,EAAA,MAAiB,CAAA;AAAM,MAAA;AAC5B,IAAA;AACA,EAAA,CAAA,EAAA,CAAA,oBAAA,EAAA,kBAAoB,EAAG,eAAM,EAAA;AAC7B,EAAA,MAAA,cAAA,GAAA,OAAM,CAAA,MAAA,eAAgB,IAAA,OAAmB,CAAA,eAAA,EAAA,CAAA,WAAA,CAAA,EAAA,CAAA,KAAA,CAAA,CAAA,EAAA,CAAA,eAAA,CAAA,CAAA;AAEzC,EAAA,OAAAA,cAAA,CAAA,aAAA,CAAAA,uBAAc,EAAO,IAAI,QAAM,IAAAA,cAAA,CAAA,aAAA,CAAA,QAAA,EAAA;AAC3B,IAAA,SAAA,EAAA,0JAAe;;;;AAIX,IAAA;qDACW,EAAA;AACd,IAAA,QAAA,EAAA;AACJ,GAAA,CAAA,CAAA,EAAAA,cAAA,CAAA,aAAC,CAAC,KAAA,EAAA;6BACN;AACJ,IAAA,SAAA,EAAA,0FAsCP;AACN,IAAA,QAAA,EAAA;AAGZ,GAAG,EAAAA,cAAA,CAAA,aAAA,CAAA,QAAA,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Threads.d.ts","sourceRoot":"","sources":["../../src/container/Threads.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;;;;;;AA6Q/B,wBAAmC"}
|
|
@@ -0,0 +1,231 @@
|
|
|
1
|
+
import*as React from'react';import'../components/inbox/FilesList.js';import'../components/inbox/MessageItem.js';import {ThreadItem}from'../components/inbox/ThreadItem.js';import'date-fns';import'@react-icons/all-files/bs/BsFlag.js';import'../components/InboxMessage/ConversationItem.js';import'../components/InboxMessage/ServiceConversationItem.js';import'../components/InboxMessage/LeftSidebar.js';import {useTranslation}from'react-i18next';import {config}from'../config/env-config.js';import'@react-icons/all-files/bi/BiImage.js';import'@react-icons/all-files/ai/AiOutlineSecurityScan.js';import'@react-icons/all-files/fi/FiCheck.js';import'@react-icons/all-files/bs/BsFillStarFill.js';import'common';import'@common-stack/components-pro';import'react-markdown';import'remark-gfm';import'../enums/messenger-slot-fill-name-enum.js';import'../components/InboxMessage/ServiceInboxItem.js';import'../components/ModelConfigPanel.js';import'@messenger-box/core';import'../components/live-code-editor/hybrid-live-editor.js';import {useViewChannelDetailQuery,useThreadMessagesQuery,OnThreadCreatedUpdatedDocument}from'common/graphql';import'../components/AIAgent/AIAgent.js';import {useDispatch,useSelector}from'react-redux';import {userSelector}from'@adminide-stack/user-auth0-client';import {useParams,useLocation}from'@remix-run/react';import {uniqBy,orderBy}from'lodash-es';import {push}from'@common-stack/remix-router-redux';const {
|
|
2
|
+
MESSAGES_PER_PAGE,
|
|
3
|
+
WEB_INBOX_MESSEGE_PATH
|
|
4
|
+
} = config;
|
|
5
|
+
// Skeleton component for loading state
|
|
6
|
+
const Skeleton = ({
|
|
7
|
+
className = ''
|
|
8
|
+
}) => React.createElement("div", {
|
|
9
|
+
className: `animate-pulse bg-gray-300 rounded ${className}`
|
|
10
|
+
});
|
|
11
|
+
const Threads = ({
|
|
12
|
+
channelId,
|
|
13
|
+
role,
|
|
14
|
+
pathPrefix = null
|
|
15
|
+
}) => {
|
|
16
|
+
const path = useParams();
|
|
17
|
+
const location = useLocation();
|
|
18
|
+
const dispatch = useDispatch();
|
|
19
|
+
const threadsListRootRef = React.useRef(null);
|
|
20
|
+
const threadsListRef = React.useRef(null);
|
|
21
|
+
const auth = useSelector(userSelector);
|
|
22
|
+
const [threadData, setThreadsData] = React.useState([]);
|
|
23
|
+
const {
|
|
24
|
+
t
|
|
25
|
+
} = useTranslation('translations');
|
|
26
|
+
const {
|
|
27
|
+
data: channelData,
|
|
28
|
+
loading: channelLoading,
|
|
29
|
+
refetch: channelDetailRefetch
|
|
30
|
+
} = useViewChannelDetailQuery({
|
|
31
|
+
variables: {
|
|
32
|
+
id: channelId?.toString()
|
|
33
|
+
}
|
|
34
|
+
});
|
|
35
|
+
const {
|
|
36
|
+
data,
|
|
37
|
+
loading: threadLoading,
|
|
38
|
+
error,
|
|
39
|
+
refetch,
|
|
40
|
+
subscribeToMore
|
|
41
|
+
} = useThreadMessagesQuery({
|
|
42
|
+
variables: {
|
|
43
|
+
channelId: channelId?.toString(),
|
|
44
|
+
role: role?.toString(),
|
|
45
|
+
limit: MESSAGES_PER_PAGE,
|
|
46
|
+
repliesLimit2: 5
|
|
47
|
+
},
|
|
48
|
+
fetchPolicy: 'cache-and-network'
|
|
49
|
+
});
|
|
50
|
+
React.useEffect(() => {
|
|
51
|
+
// Do something when the screen is focused
|
|
52
|
+
channelDetailRefetch({
|
|
53
|
+
id: channelId?.toString()
|
|
54
|
+
});
|
|
55
|
+
refetch({
|
|
56
|
+
channelId: channelId?.toString(),
|
|
57
|
+
role: role?.toString(),
|
|
58
|
+
limit: MESSAGES_PER_PAGE
|
|
59
|
+
});
|
|
60
|
+
// .then(({ data }) => {
|
|
61
|
+
// if (!data?.threadMessages?.data) {
|
|
62
|
+
// return;
|
|
63
|
+
// }
|
|
64
|
+
// if (data?.threadMessages?.data?.length) {
|
|
65
|
+
// const { data: newThreads } = data?.threadMessages;
|
|
66
|
+
// setThreadsData((oldThreads: any) => uniqBy([...oldThreads, ...newThreads], ({ id }) => id));
|
|
67
|
+
// }
|
|
68
|
+
// });
|
|
69
|
+
return () => {};
|
|
70
|
+
}, []);
|
|
71
|
+
// React.useEffect(() => {
|
|
72
|
+
// if (data?.threadMessages?.data?.length) {
|
|
73
|
+
// const { data: newThreads } = data?.threadMessages;
|
|
74
|
+
// setThreadsData((oldThreads: any) => uniqBy([...oldThreads, ...newThreads], ({ id }) => id));
|
|
75
|
+
// }
|
|
76
|
+
// }, [data]);
|
|
77
|
+
// React.useEffect(() => {
|
|
78
|
+
// if (threadCreatedUpdated?.threadCreatedUpdated?.data) {
|
|
79
|
+
// const { data: newThreads } = threadCreatedUpdated?.threadCreatedUpdated;
|
|
80
|
+
// setData(newThreads);
|
|
81
|
+
// // setThreadsData((oldThreads: any) => {
|
|
82
|
+
// // const i = oldThreads.findIndex((el: any) => el.id === newThreads?.id);
|
|
83
|
+
// // if (i > -1) oldThreads[i] = newThreads; // (2)
|
|
84
|
+
// // else oldThreads.push(newThreads);
|
|
85
|
+
// // return oldThreads;
|
|
86
|
+
// // });
|
|
87
|
+
// }
|
|
88
|
+
// }, [threadCreatedUpdated]);
|
|
89
|
+
const setData = React.useCallback(newThreads => {
|
|
90
|
+
setThreadsData(oldThreads => {
|
|
91
|
+
const i = oldThreads.findIndex(el => el.id === newThreads?.id);
|
|
92
|
+
if (i > -1) oldThreads[i] = newThreads; // (2)
|
|
93
|
+
else oldThreads.push(newThreads);
|
|
94
|
+
return oldThreads;
|
|
95
|
+
});
|
|
96
|
+
}, []);
|
|
97
|
+
React.useMemo(() => {
|
|
98
|
+
if (!channelData?.viewChannelDetail) return null;
|
|
99
|
+
return channelData?.viewChannelDetail;
|
|
100
|
+
}, [channelData]);
|
|
101
|
+
const threads = React.useMemo(() => {
|
|
102
|
+
if (!data?.threadMessages?.data?.length) return null;
|
|
103
|
+
const {
|
|
104
|
+
data: newThreads
|
|
105
|
+
} = data?.threadMessages;
|
|
106
|
+
const threadsFiltered = uniqBy([...newThreads], ({
|
|
107
|
+
id
|
|
108
|
+
}) => id);
|
|
109
|
+
return orderBy(threadsFiltered, ['updatedAt'], ['desc']) || [];
|
|
110
|
+
}, [data]);
|
|
111
|
+
// const threads = React.useMemo(() => {
|
|
112
|
+
// if (!threadData?.length) return null;
|
|
113
|
+
// return orderBy(threadData, ['updatedAt'], ['desc']) || [];
|
|
114
|
+
// }, [threadData]);
|
|
115
|
+
// const handleRefresh = React.useCallback(() => {
|
|
116
|
+
// refetch({
|
|
117
|
+
// channelId: channelId?.toString(),
|
|
118
|
+
// role: role?.toString(),
|
|
119
|
+
// limit: MESSAGES_PER_PAGE,
|
|
120
|
+
// }).then(({ data }) => {
|
|
121
|
+
// if (!data?.threadMessages?.data) {
|
|
122
|
+
// return;
|
|
123
|
+
// }
|
|
124
|
+
// if (data?.threadMessages?.data?.length) {
|
|
125
|
+
// const { data: newThreads } = data?.threadMessages;
|
|
126
|
+
// setThreadsData((oldThreads: any) => uniqBy([...oldThreads, ...newThreads], ({ id }) => id));
|
|
127
|
+
// }
|
|
128
|
+
// });
|
|
129
|
+
// }, []);
|
|
130
|
+
const fetchMoreThreads = React.useCallback(() => {
|
|
131
|
+
refetch({
|
|
132
|
+
channelId: channelId?.toString(),
|
|
133
|
+
role: role?.toString(),
|
|
134
|
+
skip: threads?.length
|
|
135
|
+
});
|
|
136
|
+
}, []);
|
|
137
|
+
const onMessagesScroll = React.useCallback(e => {
|
|
138
|
+
if (threadsListRootRef.current) {
|
|
139
|
+
const {
|
|
140
|
+
scrollTop,
|
|
141
|
+
scrollHeight,
|
|
142
|
+
clientHeight
|
|
143
|
+
} = threadsListRootRef.current;
|
|
144
|
+
if (clientHeight - scrollTop > scrollHeight - 50 && !threadLoading) {
|
|
145
|
+
fetchMoreThreads();
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
}, [fetchMoreThreads]);
|
|
149
|
+
const handleSelectThread = React.useCallback((channelId, postId) => {
|
|
150
|
+
dispatch(push(`${pathPrefix ? pathPrefix : ''}/${WEB_INBOX_MESSEGE_PATH}/${channelId}/${postId}?reply=true`));
|
|
151
|
+
}, [location, path]);
|
|
152
|
+
if (threadLoading) {
|
|
153
|
+
return React.createElement("div", {
|
|
154
|
+
className: "flex flex-col space-y-4"
|
|
155
|
+
}, Array(10).fill(1).map((x, y) => React.createElement(Skeleton, {
|
|
156
|
+
key: y,
|
|
157
|
+
className: "h-10"
|
|
158
|
+
})));
|
|
159
|
+
}
|
|
160
|
+
if (!threads || threads?.length == 0) {
|
|
161
|
+
return React.createElement("div", {
|
|
162
|
+
className: "w-full bg-gray-100 h-full flex items-center justify-center"
|
|
163
|
+
}, React.createElement("p", {
|
|
164
|
+
className: "text-gray-600"
|
|
165
|
+
}, t('tailwind_ui_inbox.you_dont_have_any_message_yet')));
|
|
166
|
+
}
|
|
167
|
+
return React.createElement(React.Fragment, null, React.createElement("div", {
|
|
168
|
+
ref: threadsListRootRef,
|
|
169
|
+
className: "flex flex-grow flex-shrink overflow-y-auto px-5 md:px-5 lg:px-5 bg-gray-100",
|
|
170
|
+
onScroll: onMessagesScroll
|
|
171
|
+
}, React.createElement("div", {
|
|
172
|
+
className: "w-full",
|
|
173
|
+
ref: threadsListRef
|
|
174
|
+
}, React.createElement(ThreadsList, {
|
|
175
|
+
handleSelectThread: handleSelectThread,
|
|
176
|
+
auth: auth,
|
|
177
|
+
threads: threads,
|
|
178
|
+
setData: setData,
|
|
179
|
+
role: role,
|
|
180
|
+
subscribeToNewMessages: () => subscribeToMore({
|
|
181
|
+
document: OnThreadCreatedUpdatedDocument,
|
|
182
|
+
variables: {
|
|
183
|
+
channelId: channelId?.toString(),
|
|
184
|
+
postParentId: null
|
|
185
|
+
},
|
|
186
|
+
updateQuery: (prev, {
|
|
187
|
+
subscriptionData
|
|
188
|
+
}) => {
|
|
189
|
+
if (!subscriptionData.data) return prev;
|
|
190
|
+
const newPostThreadData = subscriptionData?.data?.threadCreatedUpdated?.data;
|
|
191
|
+
const newMessage = subscriptionData?.data?.threadCreatedUpdated?.lastMessage;
|
|
192
|
+
const data = prev?.threadMessages?.data?.map(t => t.id === newPostThreadData?.id ? {
|
|
193
|
+
...t,
|
|
194
|
+
replies: [newMessage, ...t?.replies],
|
|
195
|
+
replyCount: newPostThreadData?.replyCount,
|
|
196
|
+
lastReplyAt: newPostThreadData?.lastReplyAt,
|
|
197
|
+
updatedAt: newPostThreadData?.updatedAt
|
|
198
|
+
} : t);
|
|
199
|
+
return Object.assign({}, prev, {
|
|
200
|
+
threadMessages: {
|
|
201
|
+
...prev?.threadMessages,
|
|
202
|
+
// totalCount: prev?.threadMessages?.totalCount + 1,
|
|
203
|
+
data: data
|
|
204
|
+
}
|
|
205
|
+
});
|
|
206
|
+
}
|
|
207
|
+
})
|
|
208
|
+
}))));
|
|
209
|
+
};
|
|
210
|
+
const ThreadsList = React.memo(({
|
|
211
|
+
threads,
|
|
212
|
+
handleSelectThread,
|
|
213
|
+
auth,
|
|
214
|
+
setData,
|
|
215
|
+
role,
|
|
216
|
+
subscribeToNewMessages
|
|
217
|
+
}) => {
|
|
218
|
+
React.useEffect(() => subscribeToNewMessages(), []);
|
|
219
|
+
return React.createElement(React.Fragment, null, threads?.length > 0 && threads?.map((thread, index) => {
|
|
220
|
+
return React.createElement("div", {
|
|
221
|
+
key: 'thread-key-' + index
|
|
222
|
+
}, React.createElement(ThreadItem, {
|
|
223
|
+
onOpen: handleSelectThread,
|
|
224
|
+
currentUser: auth,
|
|
225
|
+
thread: thread,
|
|
226
|
+
setData: setData,
|
|
227
|
+
role: role
|
|
228
|
+
}));
|
|
229
|
+
}));
|
|
230
|
+
});
|
|
231
|
+
var Threads$1 = React.memo(Threads);export{Threads$1 as default};//# sourceMappingURL=Threads.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Threads.js","sources":["../../src/container/Threads.tsx"],"sourcesContent":[null],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
export interface ThreadsInboxProps {
|
|
3
|
+
channelId: any;
|
|
4
|
+
role?: string;
|
|
5
|
+
pathPrefix?: string;
|
|
6
|
+
setChannelId?: (channelId: any) => void;
|
|
7
|
+
setPostId?: (postId?: any) => void;
|
|
8
|
+
setGoBack?: (goBack: boolean) => void;
|
|
9
|
+
}
|
|
10
|
+
export interface IThreadItemProps {
|
|
11
|
+
thread: any;
|
|
12
|
+
onOpen: (channelId: any, postId: any) => void;
|
|
13
|
+
}
|
|
14
|
+
export interface IThreadListProps {
|
|
15
|
+
threads: any;
|
|
16
|
+
handleSelectThread: (channelId: any, postId: any) => void;
|
|
17
|
+
threadsListRef: any;
|
|
18
|
+
subscribeToNewThreads: () => void;
|
|
19
|
+
}
|
|
20
|
+
export declare const ThreadsInbox: React.MemoExoticComponent<({ channelId, role, setChannelId, setPostId, setGoBack, pathPrefix }: ThreadsInboxProps) => React.JSX.Element>;
|
|
21
|
+
//# sourceMappingURL=ThreadsInbox.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ThreadsInbox.d.ts","sourceRoot":"","sources":["../../src/container/ThreadsInbox.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAoB,MAAM,OAAO,CAAC;AAWzC,MAAM,WAAW,iBAAiB;IAC9B,SAAS,EAAE,GAAG,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,CAAC,SAAS,EAAE,GAAG,KAAK,IAAI,CAAC;IACxC,SAAS,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,GAAG,KAAK,IAAI,CAAC;IACnC,SAAS,CAAC,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;CACzC;AAED,MAAM,WAAW,gBAAgB;IAC7B,MAAM,EAAE,GAAG,CAAC;IACZ,MAAM,EAAE,CAAC,SAAS,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,KAAK,IAAI,CAAC;CACjD;AAED,MAAM,WAAW,gBAAgB;IAC7B,OAAO,EAAE,GAAG,CAAC;IACb,kBAAkB,EAAE,CAAC,SAAS,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,KAAK,IAAI,CAAC;IAC1D,cAAc,EAAE,GAAG,CAAC;IACpB,qBAAqB,EAAE,MAAM,IAAI,CAAC;CACrC;AASD,eAAO,MAAM,YAAY,kGACwD,iBAAiB,uBA6IjG,CAAC"}
|