@droppii-org/chat-sdk 0.0.48 → 0.0.49

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 (47) hide show
  1. package/dist/assets/conversationBg.png +0 -0
  2. package/dist/components/message/MessageHeader.js +2 -2
  3. package/dist/components/message/MessageList.d.ts.map +1 -1
  4. package/dist/components/message/MessageList.js +9 -0
  5. package/dist/components/searchConversation/item/SearchItemAsUser.d.ts.map +1 -1
  6. package/dist/components/searchConversation/item/SearchItemAsUser.js +14 -3
  7. package/dist/hooks/collection/useMediaCollection.d.ts +229 -0
  8. package/dist/hooks/collection/useMediaCollection.d.ts.map +1 -0
  9. package/dist/hooks/collection/useMediaCollection.js +66 -0
  10. package/dist/hooks/conversation/useConversationStore.d.ts +3 -2
  11. package/dist/hooks/conversation/useConversationStore.d.ts.map +1 -1
  12. package/dist/hooks/message/useMessage.d.ts.map +1 -1
  13. package/dist/hooks/message/useMessage.js +0 -1
  14. package/dist/hooks/message/useSendMessage.d.ts.map +1 -1
  15. package/dist/hooks/message/useSendMessage.js +4 -2
  16. package/dist/hooks/search/useSearchConversation.d.ts +2 -0
  17. package/dist/hooks/search/useSearchConversation.d.ts.map +1 -0
  18. package/dist/hooks/search/useSearchConversation.js +1 -0
  19. package/dist/hooks/session/useGetSessionByTagOrStatus.d.ts +220 -0
  20. package/dist/hooks/session/useGetSessionByTagOrStatus.d.ts.map +1 -0
  21. package/dist/hooks/session/useGetSessionByTagOrStatus.js +72 -0
  22. package/dist/hooks/user/useUpdateFcmToken.d.ts.map +1 -1
  23. package/dist/index.d.ts +2 -1
  24. package/dist/index.d.ts.map +1 -1
  25. package/dist/index.js +2 -1
  26. package/dist/tsconfig.tsbuildinfo +1 -1
  27. package/dist/utils/common.js +1 -1
  28. package/package.json +1 -1
  29. package/dist/assets/openIM.wasm +0 -0
  30. package/dist/components/ChatBubble.d.ts +0 -10
  31. package/dist/components/ChatBubble.d.ts.map +0 -1
  32. package/dist/components/ChatBubble.js +0 -28
  33. package/dist/components/message/MessageItem.d.ts +0 -7
  34. package/dist/components/message/MessageItem.d.ts.map +0 -1
  35. package/dist/components/message/MessageItem.js +0 -21
  36. package/dist/components/message/footer/BottomSection.d.ts +0 -3
  37. package/dist/components/message/footer/BottomSection.d.ts.map +0 -1
  38. package/dist/components/message/footer/BottomSection.js +0 -6
  39. package/dist/screens/desk-message/index.d.ts +0 -3
  40. package/dist/screens/desk-message/index.d.ts.map +0 -1
  41. package/dist/screens/desk-message/index.js +0 -15
  42. package/dist/types/index.d.ts +0 -1
  43. package/dist/types/index.d.ts.map +0 -1
  44. package/dist/types/index.js +0 -1
  45. package/dist/types/sdk.d.ts +0 -1
  46. package/dist/types/sdk.d.ts.map +0 -1
  47. package/dist/types/sdk.js +0 -1
@@ -115,6 +115,6 @@ export function formatTimestamp(timestamp, options) {
115
115
  }
116
116
  export function extractLinks(text) {
117
117
  // Regex match http:// hoặc https:// và domain
118
- const urlRegex = /(https?:\/\/[^\s]+)/g;
118
+ const urlRegex = /\bhttps?:\/\/[^\s<>"']*[^\s<>"',.!?()\[\]{}]/g;
119
119
  return text.match(urlRegex) || [];
120
120
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@droppii-org/chat-sdk",
3
- "version": "0.0.48",
3
+ "version": "0.0.49",
4
4
  "description": "Droppii React Chat SDK",
5
5
  "main": "./dist/index.js",
6
6
  "types": "./dist/index.d.ts",
Binary file
@@ -1,10 +0,0 @@
1
- import { SessionType } from "@openim/wasm-client-sdk";
2
- interface ChatBubbleProps {
3
- conversationId: string;
4
- sourceID: string;
5
- sessionType: SessionType;
6
- className?: string;
7
- }
8
- declare const ChatBubble: ({ conversationId, sourceID, sessionType, className, }: ChatBubbleProps) => import("react/jsx-runtime").JSX.Element;
9
- export default ChatBubble;
10
- //# sourceMappingURL=ChatBubble.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ChatBubble.d.ts","sourceRoot":"","sources":["../../src/components/ChatBubble.tsx"],"names":[],"mappings":"AAKA,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAGtD,UAAU,eAAe;IACvB,cAAc,EAAE,MAAM,CAAC;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,WAAW,CAAC;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,QAAA,MAAM,UAAU,GAAI,uDAKjB,eAAe,4CAmDjB,CAAC;AAEF,eAAe,UAAU,CAAC"}
@@ -1,28 +0,0 @@
1
- "use client";
2
- import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
3
- import { useState } from "react";
4
- import { FloatButton, Drawer } from "antd";
5
- import { MessageOutlined, CloseOutlined } from "@ant-design/icons";
6
- import MessageList from "./message/MessageList";
7
- import { useConversationDetail } from "../hooks/conversation/useConversation";
8
- const ChatBubble = ({ conversationId, sourceID, sessionType, className, }) => {
9
- const { conversationDetail } = useConversationDetail({
10
- sourceID,
11
- sessionType,
12
- });
13
- const [isOpen, setIsOpen] = useState(false);
14
- const toggleChat = () => {
15
- setIsOpen(!isOpen);
16
- };
17
- return (_jsxs(_Fragment, { children: [_jsx(FloatButton, { icon: isOpen ? _jsx(CloseOutlined, {}) : _jsx(MessageOutlined, {}), type: "primary", style: {
18
- right: 24,
19
- bottom: 24,
20
- width: 60,
21
- height: 60,
22
- }, onClick: toggleChat, className: className }), _jsx(Drawer, { placement: "right", onClose: () => setIsOpen(false), open: isOpen, mask: true, closable: false, styles: {
23
- body: { padding: 0 },
24
- }, classNames: {
25
- wrapper: "!z-[9999]",
26
- }, children: _jsx(MessageList, { conversationId: conversationId, conversationData: conversationDetail, className: "flex-1", onClose: () => setIsOpen(false) }) })] }));
27
- };
28
- export default ChatBubble;
@@ -1,7 +0,0 @@
1
- import { GroupMessageItem } from "../../types/chat";
2
- interface MessageItemProps {
3
- groupMessage: GroupMessageItem;
4
- }
5
- declare const MessageItem: ({ groupMessage }: MessageItemProps) => import("react/jsx-runtime").JSX.Element;
6
- export default MessageItem;
7
- //# sourceMappingURL=MessageItem.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"MessageItem.d.ts","sourceRoot":"","sources":["../../../src/components/message/MessageItem.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAUpD,UAAU,gBAAgB;IACxB,YAAY,EAAE,gBAAgB,CAAC;CAChC;AACD,QAAA,MAAM,WAAW,GAAI,kBAAkB,gBAAgB,4CAwEtD,CAAC;AAEF,eAAe,WAAW,CAAC"}
@@ -1,21 +0,0 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import dayjs from "dayjs";
3
- import clsx from "clsx";
4
- import { Avatar } from "antd";
5
- import isToday from "dayjs/plugin/isToday";
6
- import { useChatContext } from "../../context/ChatContext";
7
- import { SessionType } from "@openim/wasm-client-sdk";
8
- dayjs.extend(isToday);
9
- const MessageItem = ({ groupMessage }) => {
10
- const { user } = useChatContext();
11
- const messagesInGroup = (groupMessage === null || groupMessage === void 0 ? void 0 : groupMessage.messages) || [];
12
- const isToday = dayjs(groupMessage === null || groupMessage === void 0 ? void 0 : groupMessage.sendTime).isToday();
13
- return (_jsxs("div", { className: "flex flex-col gap-2 my-4 mx-3 sm:mx-4", children: [_jsx("div", { className: "flex justify-center", children: _jsx("span", { className: "text-xs text-gray-600 text-center bg-neutral-100 px-2 py-1 rounded-full", children: dayjs(groupMessage === null || groupMessage === void 0 ? void 0 : groupMessage.sendTime).format(isToday ? "HH:mm" : "HH:mm, DD MMMM") }) }), messagesInGroup === null || messagesInGroup === void 0 ? void 0 : messagesInGroup.map((message, messageIndex) => {
14
- var _a, _b, _c;
15
- const isMine = (message === null || message === void 0 ? void 0 : message.sendID) === (user === null || user === void 0 ? void 0 : user.userID);
16
- const showAvatar = messageIndex === messagesInGroup.length - 1;
17
- const showSenderName = messageIndex === 0 && (message === null || message === void 0 ? void 0 : message.sessionType) === SessionType.Group;
18
- return (_jsx("div", { className: clsx("flex", isMine ? "justify-end" : "justify-start"), children: _jsxs("div", { className: clsx("flex items-end gap-2", isMine ? "justify-end" : "justify-start"), children: [!isMine && (_jsx("div", { className: "flex items-center justify-center w-[32px] h-[32px]", children: showAvatar && (_jsx(Avatar, { children: ((_b = (_a = message === null || message === void 0 ? void 0 : message.senderNickname) === null || _a === void 0 ? void 0 : _a.charAt) === null || _b === void 0 ? void 0 : _b.call(_a, 0)) || "A" })) })), _jsxs("div", { className: "flex flex-col items-start flex-[0.8]", children: [!isMine && showSenderName && (_jsx("span", { className: "text-xs text-gray-500 mb-1 px-3", children: message === null || message === void 0 ? void 0 : message.senderNickname })), _jsxs("div", { className: clsx("px-3 py-2 rounded-2xl max-w-full break-words flex flex-col text-gray-900", isMine ? "bg-blue-100" : "bg-gray-100"), children: [_jsx("p", { className: "text-sm sm:text-base whitespace-pre-wrap", children: ((_c = message === null || message === void 0 ? void 0 : message.textElem) === null || _c === void 0 ? void 0 : _c.content) || "Tin nhắn không khả dụng" }), _jsx("span", { className: clsx("text-xs text-gray-500 text-right text-gray-500"), children: dayjs(message === null || message === void 0 ? void 0 : message.sendTime).format("HH:mm") })] })] })] }) }, message === null || message === void 0 ? void 0 : message.clientMsgID));
19
- })] }, groupMessage === null || groupMessage === void 0 ? void 0 : groupMessage.groupMessageID));
20
- };
21
- export default MessageItem;
@@ -1,3 +0,0 @@
1
- declare const FooterBottomSection: () => import("react/jsx-runtime").JSX.Element;
2
- export default FooterBottomSection;
3
- //# sourceMappingURL=BottomSection.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"BottomSection.d.ts","sourceRoot":"","sources":["../../../../src/components/message/footer/BottomSection.tsx"],"names":[],"mappings":"AAEA,QAAA,MAAM,mBAAmB,+CAMxB,CAAC;AAEF,eAAe,mBAAmB,CAAC"}
@@ -1,6 +0,0 @@
1
- "use client";
2
- import { jsx as _jsx } from "react/jsx-runtime";
3
- const FooterBottomSection = () => {
4
- return (_jsx("div", { className: "flex items-center gap-2", children: _jsx("div", {}) }));
5
- };
6
- export default FooterBottomSection;
@@ -1,3 +0,0 @@
1
- declare const DChatDeskMessage: () => import("react/jsx-runtime").JSX.Element;
2
- export default DChatDeskMessage;
3
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/screens/desk-message/index.tsx"],"names":[],"mappings":"AAQA,QAAA,MAAM,gBAAgB,+CAerB,CAAC;AAEF,eAAe,gBAAgB,CAAC"}
@@ -1,15 +0,0 @@
1
- "use client";
2
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
- import { SessionType } from "@openim/wasm-client-sdk";
4
- import MessageList from "../../components/message/MessageList";
5
- import DeskConversationList from "../../components/conversation/DeskConversationList";
6
- import { useConversationDetail } from "../../hooks/conversation/useConversation";
7
- import AssignedSessionFilter from "../../components/session/AssignedSessionFilter";
8
- const DChatDeskMessage = () => {
9
- const { conversationDetail } = useConversationDetail({
10
- sourceID: "123-123",
11
- sessionType: SessionType.Group,
12
- });
13
- return (_jsxs("div", { className: "flex flex-1 flex-row h-screen bg-gray-50", children: [_jsx(AssignedSessionFilter, {}), _jsx(DeskConversationList, {}), _jsx(MessageList, { conversationId: "sg_123-123", conversationData: conversationDetail })] }));
14
- };
15
- export default DChatDeskMessage;
@@ -1 +0,0 @@
1
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":""}
@@ -1 +0,0 @@
1
- "use strict";
@@ -1 +0,0 @@
1
- //# sourceMappingURL=sdk.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"sdk.d.ts","sourceRoot":"","sources":["../../src/types/sdk.ts"],"names":[],"mappings":""}
package/dist/types/sdk.js DELETED
@@ -1 +0,0 @@
1
- "use strict";