@droppii-org/chat-sdk 0.0.21 → 0.0.23
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/dist/components/conversation/DeskConversationList.d.ts.map +1 -1
- package/dist/components/conversation/DeskConversationList.js +5 -0
- package/dist/components/message/MessageList.d.ts.map +1 -1
- package/dist/components/message/MessageList.js +10 -32
- package/dist/components/message/footer/ActionBar.d.ts +3 -0
- package/dist/components/message/footer/ActionBar.d.ts.map +1 -0
- package/dist/components/message/footer/ActionBar.js +145 -0
- package/dist/components/message/footer/EmojiPicker.d.ts +7 -0
- package/dist/components/message/footer/EmojiPicker.d.ts.map +1 -0
- package/dist/components/message/footer/EmojiPicker.js +151 -0
- package/dist/components/message/footer/EnterHandler.d.ts +2 -0
- package/dist/components/message/footer/EnterHandler.d.ts.map +1 -0
- package/dist/components/message/footer/EnterHandler.js +106 -0
- package/dist/components/message/footer/FilePreview.d.ts +10 -0
- package/dist/components/message/footer/FilePreview.d.ts.map +1 -0
- package/dist/components/message/footer/FilePreview.js +48 -0
- package/dist/components/message/footer/ToolbarPlugin.d.ts +2 -0
- package/dist/components/message/footer/ToolbarPlugin.d.ts.map +1 -0
- package/dist/components/message/footer/ToolbarPlugin.js +169 -0
- package/dist/components/message/footer/index.d.ts +9 -2
- package/dist/components/message/footer/index.d.ts.map +1 -1
- package/dist/components/message/footer/index.js +48 -8
- package/dist/components/message/item/FileMessage.d.ts +7 -0
- package/dist/components/message/item/FileMessage.d.ts.map +1 -0
- package/dist/components/message/item/FileMessage.js +27 -0
- package/dist/components/message/item/ImageMessage.d.ts +7 -0
- package/dist/components/message/item/ImageMessage.d.ts.map +1 -0
- package/dist/components/message/item/ImageMessage.js +23 -0
- package/dist/components/message/item/TextMessage.d.ts +7 -0
- package/dist/components/message/item/TextMessage.d.ts.map +1 -0
- package/dist/components/message/item/TextMessage.js +21 -0
- package/dist/components/message/item/VideoMessage.d.ts +7 -0
- package/dist/components/message/item/VideoMessage.d.ts.map +1 -0
- package/dist/components/message/item/VideoMessage.js +20 -0
- package/dist/components/message/{MessageItem.d.ts → item/index.d.ts} +2 -2
- package/dist/components/message/item/index.d.ts.map +1 -0
- package/dist/components/message/item/index.js +41 -0
- package/dist/context/ChatContext.d.ts.map +1 -1
- package/dist/context/ChatContext.js +9 -7
- package/dist/hooks/conversation/useConversation.d.ts.map +1 -1
- package/dist/hooks/conversation/useConversation.js +12 -4
- package/dist/hooks/conversation/useConversationStore.d.ts +3 -2
- package/dist/hooks/conversation/useConversationStore.d.ts.map +1 -1
- package/dist/hooks/message/useSendMessage.d.ts +22 -10
- package/dist/hooks/message/useSendMessage.d.ts.map +1 -1
- package/dist/hooks/message/useSendMessage.js +223 -21
- package/dist/hooks/zustand/useMessageStore.d.ts +9 -0
- package/dist/hooks/zustand/useMessageStore.d.ts.map +1 -0
- package/dist/hooks/zustand/useMessageStore.js +8 -0
- package/dist/screens/deskMessage/index.d.ts.map +1 -1
- package/dist/screens/deskMessage/index.js +2 -8
- package/dist/styles/global.css +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/types/chat.d.ts +36 -2
- package/dist/types/chat.d.ts.map +1 -1
- package/package.json +7 -1
- package/dist/assets/openIM.wasm +0 -0
- package/dist/components/ChatBubble.d.ts +0 -10
- package/dist/components/ChatBubble.d.ts.map +0 -1
- package/dist/components/ChatBubble.js +0 -28
- package/dist/components/message/MessageItem.d.ts.map +0 -1
- package/dist/components/message/MessageItem.js +0 -21
- package/dist/components/message/footer/BottomSection.d.ts +0 -3
- package/dist/components/message/footer/BottomSection.d.ts.map +0 -1
- package/dist/components/message/footer/BottomSection.js +0 -6
- package/dist/screens/desk-message/index.d.ts +0 -3
- package/dist/screens/desk-message/index.d.ts.map +0 -1
- package/dist/screens/desk-message/index.js +0 -15
package/dist/types/chat.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import { InitAndLoginConfig, MessageItem, SelfUserInfo } from "@openim/wasm-client-sdk";
|
|
1
|
+
import { FileMsgParamsByURL, ImageMsgParamsByURL, InitAndLoginConfig, MessageItem, SelfUserInfo, VideoMsgParamsByURL } from "@openim/wasm-client-sdk";
|
|
2
|
+
import { UploadFile } from "antd";
|
|
2
3
|
export declare enum ConnectStatus {
|
|
3
4
|
Disconnected = 0,
|
|
4
5
|
Connected = 1,
|
|
@@ -17,7 +18,7 @@ export interface ChatContextType {
|
|
|
17
18
|
}
|
|
18
19
|
export interface ChatProviderProps {
|
|
19
20
|
children: React.ReactNode;
|
|
20
|
-
config: InitAndLoginConfig;
|
|
21
|
+
config: InitAndLoginConfig | null;
|
|
21
22
|
refetchToken: () => Promise<string>;
|
|
22
23
|
}
|
|
23
24
|
export interface GroupMessageItem extends Pick<MessageItem, "sendID" | "sendTime"> {
|
|
@@ -26,5 +27,38 @@ export interface GroupMessageItem extends Pick<MessageItem, "sendID" | "sendTime
|
|
|
26
27
|
}
|
|
27
28
|
export interface ExtendMessageInfo {
|
|
28
29
|
groupMessageID: string;
|
|
30
|
+
messageInfo?: {
|
|
31
|
+
type: "MESSAGE_INFO";
|
|
32
|
+
data: {
|
|
33
|
+
type: "rich_text";
|
|
34
|
+
content: string;
|
|
35
|
+
};
|
|
36
|
+
};
|
|
37
|
+
sessionInfo?: {
|
|
38
|
+
type: "SESSION_INFO";
|
|
39
|
+
data: {
|
|
40
|
+
sessionId: string;
|
|
41
|
+
applicationType: "OBEFE";
|
|
42
|
+
};
|
|
43
|
+
};
|
|
44
|
+
}
|
|
45
|
+
export interface MessageFooterContextType {
|
|
46
|
+
onSendMessage: ({ plainText, richText, type, }: {
|
|
47
|
+
plainText: string;
|
|
48
|
+
richText: string;
|
|
49
|
+
type: "text" | "file";
|
|
50
|
+
}) => void;
|
|
51
|
+
listUploadFiles: UploadFile[];
|
|
52
|
+
setListUploadFiles: (files: UploadFile[]) => void;
|
|
53
|
+
}
|
|
54
|
+
export interface ImageMsgParamsByFile extends ImageMsgParamsByURL {
|
|
55
|
+
file: File;
|
|
56
|
+
}
|
|
57
|
+
export interface VideoMsgParamsByFile extends VideoMsgParamsByURL {
|
|
58
|
+
videoFile: File;
|
|
59
|
+
snapshotFile: File;
|
|
60
|
+
}
|
|
61
|
+
export interface FileMsgParamsByFile extends FileMsgParamsByURL {
|
|
62
|
+
file: File;
|
|
29
63
|
}
|
|
30
64
|
//# sourceMappingURL=chat.d.ts.map
|
package/dist/types/chat.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chat.d.ts","sourceRoot":"","sources":["../../src/types/chat.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kBAAkB,EAClB,WAAW,EACX,YAAY,
|
|
1
|
+
{"version":3,"file":"chat.d.ts","sourceRoot":"","sources":["../../src/types/chat.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kBAAkB,EAClB,mBAAmB,EACnB,kBAAkB,EAClB,WAAW,EACX,YAAY,EACZ,mBAAmB,EACpB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,UAAU,EAAE,MAAM,MAAM,CAAC;AAElC,oBAAY,aAAa;IACvB,YAAY,IAAI;IAChB,SAAS,IAAI;IACb,UAAU,IAAI;CACf;AAED,oBAAY,UAAU;IACpB,aAAa,MAAM;IACnB,aAAa,MAAM;IACnB,aAAa,MAAM;IACnB,aAAa,MAAM;IACnB,aAAa,MAAM;CACpB;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,YAAY,GAAG,IAAI,CAAC;IAC1B,aAAa,EAAE,aAAa,CAAC;CAC9B;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,MAAM,EAAE,kBAAkB,GAAG,IAAI,CAAC;IAClC,YAAY,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC;CACrC;AAED,MAAM,WAAW,gBACf,SAAQ,IAAI,CAAC,WAAW,EAAE,QAAQ,GAAG,UAAU,CAAC;IAChD,cAAc,EAAE,MAAM,CAAC;IACvB,QAAQ,EAAE,WAAW,EAAE,CAAC;CACzB;AAED,MAAM,WAAW,iBAAiB;IAChC,cAAc,EAAE,MAAM,CAAC;IACvB,WAAW,CAAC,EAAE;QACZ,IAAI,EAAE,cAAc,CAAC;QACrB,IAAI,EAAE;YACJ,IAAI,EAAE,WAAW,CAAC;YAClB,OAAO,EAAE,MAAM,CAAC;SACjB,CAAC;KACH,CAAC;IACF,WAAW,CAAC,EAAE;QACZ,IAAI,EAAE,cAAc,CAAC;QACrB,IAAI,EAAE;YACJ,SAAS,EAAE,MAAM,CAAC;YAClB,eAAe,EAAE,OAAO,CAAC;SAC1B,CAAC;KACH,CAAC;CACH;AAED,MAAM,WAAW,wBAAwB;IACvC,aAAa,EAAE,CAAC,EACd,SAAS,EACT,QAAQ,EACR,IAAI,GACL,EAAE;QACD,SAAS,EAAE,MAAM,CAAC;QAClB,QAAQ,EAAE,MAAM,CAAC;QACjB,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC;KACvB,KAAK,IAAI,CAAC;IACX,eAAe,EAAE,UAAU,EAAE,CAAC;IAC9B,kBAAkB,EAAE,CAAC,KAAK,EAAE,UAAU,EAAE,KAAK,IAAI,CAAC;CACnD;AAED,MAAM,WAAW,oBAAqB,SAAQ,mBAAmB;IAC/D,IAAI,EAAE,IAAI,CAAC;CACZ;AAED,MAAM,WAAW,oBAAqB,SAAQ,mBAAmB;IAC/D,SAAS,EAAE,IAAI,CAAC;IAChB,YAAY,EAAE,IAAI,CAAC;CACpB;AAED,MAAM,WAAW,mBAAoB,SAAQ,kBAAkB;IAC7D,IAAI,EAAE,IAAI,CAAC;CACZ"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@droppii-org/chat-sdk",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.23",
|
|
4
4
|
"description": "Droppii React Chat SDK",
|
|
5
5
|
"main": "./dist/index.js",
|
|
6
6
|
"types": "./dist/index.d.ts",
|
|
@@ -70,7 +70,13 @@
|
|
|
70
70
|
"access": "public"
|
|
71
71
|
},
|
|
72
72
|
"dependencies": {
|
|
73
|
+
"@ant-design/icons": "^6.0.0",
|
|
74
|
+
"@lexical/code": "^0.34.0",
|
|
75
|
+
"@lexical/html": "^0.34.0",
|
|
76
|
+
"@lexical/link": "^0.34.0",
|
|
77
|
+
"@lexical/list": "^0.34.0",
|
|
73
78
|
"@lexical/react": "^0.34.0",
|
|
79
|
+
"@lexical/rich-text": "^0.34.0",
|
|
74
80
|
"@openim/wasm-client-sdk": "3.8.3-patch.10",
|
|
75
81
|
"@tailwindcss/postcss": "^4.1.12",
|
|
76
82
|
"ahooks": "^3.9.4",
|
package/dist/assets/openIM.wasm
DELETED
|
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 +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 +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 +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;
|