@webinex/chatify 2.0.0-alpha7 → 2.0.0-alpha9
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/Chatify-DGRV4QKP.js +2203 -0
- package/dist/Chatify-DGRV4QKP.js.map +1 -0
- package/dist/Chatify.css +670 -0
- package/dist/audit.css +60 -0
- package/dist/audit.js +242 -0
- package/dist/audit.js.map +1 -0
- package/dist/index.js +97 -0
- package/dist/index.js.map +1 -0
- package/dist/types/audit/AuditChatList.d.ts +9 -0
- package/dist/types/audit/AuditConversationPanel.d.ts +10 -0
- package/dist/types/audit/AuditPanel.d.ts +14 -0
- package/dist/types/audit/AuditPanelCustomizeValue.d.ts +9 -0
- package/dist/types/audit/AuditSearch.d.ts +5 -0
- package/dist/types/audit/AuditSearchValue.d.ts +14 -0
- package/dist/types/audit/auditApi.d.ts +97 -0
- package/dist/types/audit/index.d.ts +17 -0
- package/dist/types/core/api/api.d.ts +17295 -0
- package/dist/{esm/types → types}/core/api/baseApi.d.ts +1 -1
- package/dist/{esm/types → types}/core/client.d.ts +4 -3
- package/dist/{esm/types → types}/core/types.d.ts +25 -0
- package/dist/types/ui/Chat/ChatEditableHeaderName.d.ts +1 -0
- package/dist/types/ui/Chat/ChatHeaderActions.d.ts +1 -0
- package/dist/{esm/types → types}/ui/Chat/ChatView.d.ts +1 -2
- package/dist/types/ui/Chat/Members/ChatMembersButton.d.ts +1 -0
- package/dist/types/ui/Chat/Members/ChatMembersPanel.d.ts +1 -0
- package/dist/types/ui/Chat/Members/ChatMembersPreview.d.ts +1 -0
- package/dist/{esm/types → types}/ui/ChatGroup/ChatGroupPanel.d.ts +2 -2
- package/dist/types/ui/ChatGroup/Create/CreateChatButton.d.ts +1 -0
- package/dist/{esm/types → types}/ui/ChatGroup/Create/CreateChatForm.d.ts +1 -2
- package/dist/types/ui/ChatGroup/Create/CreateChatMemberInput.d.ts +4 -0
- package/dist/types/ui/ChatGroup/Create/CreateChatNameInput.d.ts +4 -0
- package/dist/types/ui/ChatGroup/Create/CreateChatPanel.d.ts +1 -0
- package/dist/types/ui/ChatGroup/Layout/ChatGroupAside.d.ts +1 -0
- package/dist/types/ui/ChatGroup/Layout/ChatGroupBody.d.ts +1 -0
- package/dist/types/ui/ChatGroup/Layout/ChatGroupFooter.d.ts +1 -0
- package/dist/types/ui/ChatGroup/Layout/ChatGroupHeader.d.ts +1 -0
- package/dist/types/ui/ChatGroup/Layout/ChatGroupMain.d.ts +1 -0
- package/dist/types/ui/ChatGroup/List/ChatListPanel.d.ts +1 -0
- package/dist/types/ui/ChatGroup/List/index.d.ts +6 -0
- package/dist/types/ui/Chatify.d.ts +9 -0
- package/dist/{esm/types → types}/ui/Conversation/Conversation.d.ts +2 -3
- package/dist/types/ui/Conversation/ConversationActions.d.ts +1 -0
- package/dist/types/ui/Conversation/ConversationBody.d.ts +1 -0
- package/dist/{esm/types → types}/ui/Conversation/ConversationContext.d.ts +6 -5
- package/dist/types/ui/Conversation/ConversationHeader.d.ts +1 -0
- package/dist/types/ui/Conversation/ConversationName.d.ts +1 -0
- package/dist/types/ui/Conversation/InputBox/InputBox.d.ts +1 -0
- package/dist/types/ui/Conversation/InputBox/InputBoxFile.d.ts +7 -0
- package/dist/types/ui/Conversation/InputBox/InputBoxFileList.d.ts +7 -0
- package/dist/types/ui/Conversation/InputBox/InputFilesBox.d.ts +11 -0
- package/dist/types/ui/Conversation/InputBox/InputSubmitButtonBox.d.ts +6 -0
- package/dist/{esm/types → types}/ui/Conversation/InputBox/InputTextBox.d.ts +1 -1
- package/dist/types/ui/Conversation/Message/MessageAuthor.d.ts +2 -0
- package/dist/types/ui/Conversation/Message/MessageBox.d.ts +5 -0
- package/dist/types/ui/Conversation/Message/MessageContent.d.ts +2 -0
- package/dist/types/ui/Conversation/Message/MessageFile.d.ts +5 -0
- package/dist/types/ui/Conversation/Message/MessageFileList.d.ts +2 -0
- package/dist/types/ui/Conversation/Message/MessageInfoBox.d.ts +2 -0
- package/dist/{esm/types → types}/ui/Conversation/Message/MessageRow.d.ts +1 -1
- package/dist/types/ui/Conversation/Message/MessageText.d.ts +2 -0
- package/dist/types/ui/Conversation/SendingMessage/SendingMessageBox.d.ts +6 -0
- package/dist/types/ui/Conversation/SendingMessage/SendingMessageContent.d.ts +2 -0
- package/dist/types/ui/Conversation/SendingMessage/SendingMessageInfoBox.d.ts +2 -0
- package/dist/types/ui/Conversation/SendingMessage/SendingMessageText.d.ts +2 -0
- package/dist/types/ui/Conversation/SystemMessage/SystemMessageBox.d.ts +5 -0
- package/dist/{esm/types → types}/ui/Conversation/SystemMessage/SystemMessageRow.d.ts +1 -1
- package/dist/types/ui/Thread/ThreadActions.d.ts +1 -0
- package/dist/{esm/types → types}/ui/Thread/ThreadContext.d.ts +1 -1
- package/dist/types/ui/common/Avatar.d.ts +5 -0
- package/dist/types/ui/common/ChatList/ChatList.d.ts +16 -0
- package/dist/types/ui/common/ChatList/ChatListItemAvatar.d.ts +2 -0
- package/dist/types/ui/common/ChatList/ChatListItemBox.d.ts +9 -0
- package/dist/types/ui/common/ChatList/ChatListItemLastMessage.d.ts +2 -0
- package/dist/types/ui/common/ChatList/ChatListItemLastMessageAuthor.d.ts +2 -0
- package/dist/types/ui/common/ChatList/ChatListItemLastMessageContent.d.ts +2 -0
- package/dist/types/ui/common/ChatList/ChatListItemLastMessageSentAt.d.ts +2 -0
- package/dist/types/ui/common/ChatList/ChatListItemName.d.ts +2 -0
- package/dist/types/ui/common/ChatList/ChatListItemUnreadCount.d.ts +2 -0
- package/dist/types/ui/common/ChatList/ChatListValue.d.ts +8 -0
- package/dist/{esm/types/ui/ChatGroup/List → types/ui/common/ChatList}/index.d.ts +1 -0
- package/dist/types/ui/common/Icon.d.ts +21 -0
- package/dist/types/ui/common/MessageSkeleton.d.ts +4 -0
- package/dist/{esm/types → types}/ui/common/index.d.ts +1 -0
- package/dist/{esm/types → types}/ui/customize.d.ts +1 -1
- package/dist/{esm/types → types}/ui/index.d.ts +1 -3
- package/dist/{esm/types → types}/ui/localizer.d.ts +7 -2
- package/package.json +40 -53
- package/src/audit/AuditChatList.tsx +25 -0
- package/src/audit/AuditConversationPanel.tsx +48 -0
- package/src/audit/AuditPanel.tsx +76 -0
- package/src/audit/AuditPanelCustomizeValue.ts +11 -0
- package/src/audit/AuditSearch.tsx +89 -0
- package/src/audit/AuditSearchValue.tsx +42 -0
- package/src/audit/auditApi.tsx +113 -0
- package/src/audit/index.d.ts +18 -0
- package/src/audit/index.tsx +28 -0
- package/src/audit/styles.scss +72 -0
- package/src/core/client.ts +6 -1
- package/src/core/debounce.ts +1 -1
- package/src/core/types.tsx +33 -0
- package/src/styles/aside.scss +0 -136
- package/src/styles/chat-list.scss +138 -0
- package/src/styles/chat.scss +0 -198
- package/src/styles/conversation.scss +200 -0
- package/src/styles/index.scss +2 -0
- package/src/ui/Chat/ChatEditableHeaderName.tsx +1 -1
- package/src/ui/Chat/Members/ChatMembersPreview.tsx +1 -1
- package/src/ui/ChatGroup/ChatGroupPanel.tsx +2 -2
- package/src/ui/ChatGroup/Layout/ChatGroupAside.tsx +2 -2
- package/src/ui/ChatGroup/List/ChatListPanel.tsx +28 -0
- package/src/ui/ChatGroup/List/index.ts +6 -29
- package/src/ui/Chatify.tsx +7 -1
- package/src/ui/Conversation/Conversation.tsx +15 -1
- package/src/ui/Conversation/ConversationActions.tsx +8 -1
- package/src/ui/Conversation/ConversationContext.ts +4 -3
- package/src/ui/Conversation/ConversationHeader.tsx +4 -8
- package/src/ui/Conversation/InputBox/InputBox.tsx +4 -0
- package/src/ui/Conversation/InputBox/InputTextBox.tsx +1 -1
- package/src/ui/Conversation/Message/MessageInfoBox.tsx +1 -1
- package/src/ui/Conversation/ReadObserver/MessageReadObserver.tsx +1 -1
- package/src/ui/common/ChatList/ChatList.tsx +84 -0
- package/src/ui/{ChatGroup/List → common/ChatList}/ChatListItemBox.tsx +11 -5
- package/src/ui/{ChatGroup/List → common/ChatList}/ChatListItemLastMessageAuthor.tsx +3 -3
- package/src/ui/{ChatGroup/List → common/ChatList}/ChatListItemLastMessageContent.tsx +4 -4
- package/src/ui/{ChatGroup/List → common/ChatList}/ChatListItemLastMessageSentAt.tsx +1 -1
- package/src/ui/{ChatGroup/List → common/ChatList}/ChatListItemUnreadCount.tsx +1 -1
- package/src/ui/common/ChatList/ChatListValue.ts +9 -0
- package/src/ui/common/ChatList/index.ts +32 -0
- package/src/ui/common/Icon.tsx +15 -13
- package/src/ui/common/index.ts +1 -0
- package/src/ui/index.ts +3 -3
- package/src/ui/localizer.tsx +14 -2
- package/dist/css/chatify.css +0 -664
- package/dist/esm/index.js +0 -11
- package/dist/esm/index.js.map +0 -1
- package/dist/esm/types/core/api/api.d.ts +0 -12696
- package/dist/esm/types/ui/Chat/ChatEditableHeaderName.d.ts +0 -2
- package/dist/esm/types/ui/Chat/ChatHeaderActions.d.ts +0 -2
- package/dist/esm/types/ui/Chat/Members/ChatMembersButton.d.ts +0 -2
- package/dist/esm/types/ui/Chat/Members/ChatMembersPanel.d.ts +0 -2
- package/dist/esm/types/ui/Chat/Members/ChatMembersPreview.d.ts +0 -2
- package/dist/esm/types/ui/ChatGroup/Create/CreateChatButton.d.ts +0 -2
- package/dist/esm/types/ui/ChatGroup/Create/CreateChatMemberInput.d.ts +0 -5
- package/dist/esm/types/ui/ChatGroup/Create/CreateChatNameInput.d.ts +0 -5
- package/dist/esm/types/ui/ChatGroup/Create/CreateChatPanel.d.ts +0 -2
- package/dist/esm/types/ui/ChatGroup/Layout/ChatGroupAside.d.ts +0 -2
- package/dist/esm/types/ui/ChatGroup/Layout/ChatGroupBody.d.ts +0 -2
- package/dist/esm/types/ui/ChatGroup/Layout/ChatGroupFooter.d.ts +0 -2
- package/dist/esm/types/ui/ChatGroup/Layout/ChatGroupHeader.d.ts +0 -2
- package/dist/esm/types/ui/ChatGroup/Layout/ChatGroupMain.d.ts +0 -2
- package/dist/esm/types/ui/ChatGroup/List/ChatList.d.ts +0 -2
- package/dist/esm/types/ui/ChatGroup/List/ChatListItemAvatar.d.ts +0 -3
- package/dist/esm/types/ui/ChatGroup/List/ChatListItemBox.d.ts +0 -6
- package/dist/esm/types/ui/ChatGroup/List/ChatListItemLastMessage.d.ts +0 -3
- package/dist/esm/types/ui/ChatGroup/List/ChatListItemLastMessageAuthor.d.ts +0 -3
- package/dist/esm/types/ui/ChatGroup/List/ChatListItemLastMessageContent.d.ts +0 -3
- package/dist/esm/types/ui/ChatGroup/List/ChatListItemLastMessageSentAt.d.ts +0 -3
- package/dist/esm/types/ui/ChatGroup/List/ChatListItemName.d.ts +0 -3
- package/dist/esm/types/ui/ChatGroup/List/ChatListItemUnreadCount.d.ts +0 -3
- package/dist/esm/types/ui/Chatify.d.ts +0 -8
- package/dist/esm/types/ui/Conversation/ConversationActions.d.ts +0 -2
- package/dist/esm/types/ui/Conversation/ConversationBody.d.ts +0 -2
- package/dist/esm/types/ui/Conversation/ConversationHeader.d.ts +0 -2
- package/dist/esm/types/ui/Conversation/ConversationName.d.ts +0 -2
- package/dist/esm/types/ui/Conversation/InputBox/InputBox.d.ts +0 -2
- package/dist/esm/types/ui/Conversation/InputBox/InputBoxFile.d.ts +0 -8
- package/dist/esm/types/ui/Conversation/InputBox/InputBoxFileList.d.ts +0 -8
- package/dist/esm/types/ui/Conversation/InputBox/InputFilesBox.d.ts +0 -12
- package/dist/esm/types/ui/Conversation/InputBox/InputSubmitButtonBox.d.ts +0 -7
- package/dist/esm/types/ui/Conversation/Message/MessageAuthor.d.ts +0 -3
- package/dist/esm/types/ui/Conversation/Message/MessageBox.d.ts +0 -6
- package/dist/esm/types/ui/Conversation/Message/MessageContent.d.ts +0 -3
- package/dist/esm/types/ui/Conversation/Message/MessageFile.d.ts +0 -6
- package/dist/esm/types/ui/Conversation/Message/MessageFileList.d.ts +0 -3
- package/dist/esm/types/ui/Conversation/Message/MessageInfoBox.d.ts +0 -3
- package/dist/esm/types/ui/Conversation/Message/MessageText.d.ts +0 -3
- package/dist/esm/types/ui/Conversation/SendingMessage/SendingMessageBox.d.ts +0 -7
- package/dist/esm/types/ui/Conversation/SendingMessage/SendingMessageContent.d.ts +0 -3
- package/dist/esm/types/ui/Conversation/SendingMessage/SendingMessageInfoBox.d.ts +0 -3
- package/dist/esm/types/ui/Conversation/SendingMessage/SendingMessageText.d.ts +0 -3
- package/dist/esm/types/ui/Conversation/SystemMessage/SystemMessageBox.d.ts +0 -6
- package/dist/esm/types/ui/Thread/ThreadActions.d.ts +0 -2
- package/dist/esm/types/ui/common/Avatar.d.ts +0 -6
- package/dist/esm/types/ui/common/Icon.d.ts +0 -22
- package/dist/esm/types/ui/common/MessageSkeleton.d.ts +0 -5
- package/dist/index.d.ts +0 -13363
- package/src/ui/ChatGroup/List/ChatList.tsx +0 -41
- /package/dist/{esm/types → types}/core/api/index.d.ts +0 -0
- /package/dist/{esm/types → types}/core/constants.d.ts +0 -0
- /package/dist/{esm/types → types}/core/debounce.d.ts +0 -0
- /package/dist/{esm/types → types}/core/index.d.ts +0 -0
- /package/dist/{esm/types → types}/index.d.ts +0 -0
- /package/dist/{esm/types → types}/ui/Chat/ChatContext.d.ts +0 -0
- /package/dist/{esm/types → types}/ui/Chat/ChatPanel.d.ts +0 -0
- /package/dist/{esm/types → types}/ui/Chat/Members/index.d.ts +0 -0
- /package/dist/{esm/types → types}/ui/Chat/index.d.ts +0 -0
- /package/dist/{esm/types → types}/ui/ChatGroup/ChatGroupContext.d.ts +0 -0
- /package/dist/{esm/types → types}/ui/ChatGroup/Create/index.d.ts +0 -0
- /package/dist/{esm/types → types}/ui/ChatGroup/Layout/index.d.ts +0 -0
- /package/dist/{esm/types → types}/ui/ChatGroup/index.d.ts +0 -0
- /package/dist/{esm/types → types}/ui/Conversation/InputBox/index.d.ts +0 -0
- /package/dist/{esm/types → types}/ui/Conversation/Message/index.d.ts +0 -0
- /package/dist/{esm/types → types}/ui/Conversation/NextObserver/NextMessagesObserver.d.ts +0 -0
- /package/dist/{esm/types → types}/ui/Conversation/NextObserver/index.d.ts +0 -0
- /package/dist/{esm/types → types}/ui/Conversation/ReadObserver/MessageReadObserver.d.ts +0 -0
- /package/dist/{esm/types → types}/ui/Conversation/ReadObserver/index.d.ts +0 -0
- /package/dist/{esm/types → types}/ui/Conversation/SendingMessage/index.d.ts +0 -0
- /package/dist/{esm/types → types}/ui/Conversation/SystemMessage/index.d.ts +0 -0
- /package/dist/{esm/types → types}/ui/Conversation/index.d.ts +0 -0
- /package/dist/{esm/types → types}/ui/Thread/ThreadPanel.d.ts +0 -0
- /package/dist/{esm/types → types}/ui/Thread/index.d.ts +0 -0
- /package/dist/{esm/types → types}/ui/color.d.ts +0 -0
- /package/dist/{esm/types → types}/ui/useFormatter.d.ts +0 -0
- /package/src/ui/{ChatGroup/List → common/ChatList}/ChatListItemAvatar.tsx +0 -0
- /package/src/ui/{ChatGroup/List → common/ChatList}/ChatListItemLastMessage.tsx +0 -0
- /package/src/ui/{ChatGroup/List → common/ChatList}/ChatListItemName.tsx +0 -0
package/dist/audit.css
ADDED
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
.wxchtf-audit-panel {
|
|
2
|
+
display: flex;
|
|
3
|
+
flex-flow: column nowrap;
|
|
4
|
+
background: white;
|
|
5
|
+
border-radius: 24px;
|
|
6
|
+
}
|
|
7
|
+
.wxchtf-audit-panel .wxchtf-search {
|
|
8
|
+
text-align: center;
|
|
9
|
+
flex: none;
|
|
10
|
+
padding-block: 0.5rem;
|
|
11
|
+
position: relative;
|
|
12
|
+
}
|
|
13
|
+
.wxchtf-audit-panel .wxchtf-search::before {
|
|
14
|
+
content: "";
|
|
15
|
+
position: absolute;
|
|
16
|
+
left: 0;
|
|
17
|
+
right: 0;
|
|
18
|
+
bottom: 0;
|
|
19
|
+
height: 50px;
|
|
20
|
+
pointer-events: none;
|
|
21
|
+
background: linear-gradient(to top, rgba(0, 110, 114, 0.0392156863), rgba(0, 0, 0, 0) 30%);
|
|
22
|
+
}
|
|
23
|
+
.wxchtf-audit-panel .wxchtf-search .wxchtf-search-select {
|
|
24
|
+
width: 100%;
|
|
25
|
+
max-width: 700px;
|
|
26
|
+
}
|
|
27
|
+
.wxchtf-audit-panel .wxchtf-chat-list {
|
|
28
|
+
flex: 1;
|
|
29
|
+
padding-top: 8px;
|
|
30
|
+
height: 100%;
|
|
31
|
+
min-height: 0;
|
|
32
|
+
border-bottom-left-radius: 24px;
|
|
33
|
+
border-bottom-right-radius: 24px;
|
|
34
|
+
}
|
|
35
|
+
.wxchtf-audit-panel .wxchtf-audit-body {
|
|
36
|
+
min-height: 0;
|
|
37
|
+
}
|
|
38
|
+
.wxchtf-audit-panel .wxchtf-audit-body .ant-empty {
|
|
39
|
+
padding-top: 2rem;
|
|
40
|
+
}
|
|
41
|
+
.wxchtf-audit-panel .wxchtf-audit-body.--conversation-opened {
|
|
42
|
+
display: flex;
|
|
43
|
+
flex-flow: row nowrap;
|
|
44
|
+
flex: 1;
|
|
45
|
+
}
|
|
46
|
+
.wxchtf-audit-panel .wxchtf-audit-body.--conversation-opened .wxchtf-chat-list {
|
|
47
|
+
flex: none;
|
|
48
|
+
height: 100%;
|
|
49
|
+
min-height: 0;
|
|
50
|
+
width: 400px;
|
|
51
|
+
border-bottom-left-radius: 24px;
|
|
52
|
+
border-bottom-right-radius: 0;
|
|
53
|
+
}
|
|
54
|
+
.wxchtf-audit-panel .wxchtf-audit-body.--conversation-opened .wxchtf-conversation {
|
|
55
|
+
z-index: 2;
|
|
56
|
+
min-width: 0;
|
|
57
|
+
box-shadow: 0px 6px 30px 0px rgba(12, 217, 226, 0.0784313725), 0px 1px 12px 0px rgba(0, 110, 114, 0.0588235294);
|
|
58
|
+
border-bottom-right-radius: 24px;
|
|
59
|
+
overflow: hidden;
|
|
60
|
+
}
|
package/dist/audit.js
ADDED
|
@@ -0,0 +1,242 @@
|
|
|
1
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { Select, Skeleton, Empty, Space } from "antd";
|
|
3
|
+
import classNames from "classnames";
|
|
4
|
+
import { b as customize, az as chatifyApi, e as useLocalizer, ai as ChatList, a9 as Conversation, f as defaultLocalizer, C as CustomizeContext, L as LocalizerContext, d as Chatify, ae as Avatar } from "./Chatify-DGRV4QKP.js";
|
|
5
|
+
import "@microsoft/signalr";
|
|
6
|
+
import { useState, useEffect, useMemo, useCallback } from "react";
|
|
7
|
+
import './audit.css';const MEMBER_PREFIX = "member://";
|
|
8
|
+
const TEXT_PREFIX = "text://";
|
|
9
|
+
function queryOf(values) {
|
|
10
|
+
let containsOneOfMembers = values.filter(AuditSearchUtil.isSearchByMember).map((v) => v.slice(MEMBER_PREFIX.length));
|
|
11
|
+
containsOneOfMembers = containsOneOfMembers.length > 0 ? containsOneOfMembers : null;
|
|
12
|
+
const searchStringValues = values.filter(AuditSearchUtil.isSearchByText).map((v) => v.slice(TEXT_PREFIX.length));
|
|
13
|
+
const searchString = searchStringValues.length > 0 ? searchStringValues.join(" ") : null;
|
|
14
|
+
if (!containsOneOfMembers && !searchString) {
|
|
15
|
+
return null;
|
|
16
|
+
}
|
|
17
|
+
return {
|
|
18
|
+
containsOneOfMembers,
|
|
19
|
+
searchString
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
const AuditSearchUtil = Object.freeze({
|
|
23
|
+
MEMBER_PREFIX,
|
|
24
|
+
TEXT_PREFIX,
|
|
25
|
+
isSearchByMember: (value) => value.startsWith(MEMBER_PREFIX),
|
|
26
|
+
isSearchByText: (value) => value.startsWith(TEXT_PREFIX),
|
|
27
|
+
queryOf
|
|
28
|
+
});
|
|
29
|
+
function* mapOptions(localizer, accounts, searchValue) {
|
|
30
|
+
if (searchValue.length === 0) return;
|
|
31
|
+
if (searchValue.length > 0)
|
|
32
|
+
yield {
|
|
33
|
+
label: localizer.audit.textSearchOption(searchValue),
|
|
34
|
+
value: AuditSearchUtil.TEXT_PREFIX + searchValue
|
|
35
|
+
};
|
|
36
|
+
for (const account of (accounts == null ? void 0 : accounts.filter(
|
|
37
|
+
(x) => x.name.toLocaleLowerCase().includes(searchValue.toLocaleLowerCase())
|
|
38
|
+
)) ?? []) {
|
|
39
|
+
yield {
|
|
40
|
+
label: localizer.audit.memberSearchOption(account),
|
|
41
|
+
value: AuditSearchUtil.MEMBER_PREFIX + account.id
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
function useOptions(accounts, searchValue) {
|
|
46
|
+
const localizer = useLocalizer();
|
|
47
|
+
return useMemo(
|
|
48
|
+
() => Array.from(mapOptions(localizer, accounts, searchValue)),
|
|
49
|
+
[localizer, accounts, searchValue]
|
|
50
|
+
);
|
|
51
|
+
}
|
|
52
|
+
const AuditSearch = customize("AuditSearch", (props) => {
|
|
53
|
+
const { className, onSearch } = props;
|
|
54
|
+
const [searchValue, setSearchValue] = useState("");
|
|
55
|
+
const [values, setValues] = useState([]);
|
|
56
|
+
const { data: accounts, isLoading } = chatifyApi.useGetAccountListQuery();
|
|
57
|
+
const options = useOptions(accounts, searchValue);
|
|
58
|
+
const localizer = useLocalizer();
|
|
59
|
+
useEffect(() => {
|
|
60
|
+
onSearch == null ? void 0 : onSearch(values.map((x) => x.value));
|
|
61
|
+
}, [onSearch, values]);
|
|
62
|
+
return /* @__PURE__ */ jsx("div", { className: classNames("wxchtf-search", className), children: /* @__PURE__ */ jsx(
|
|
63
|
+
Select,
|
|
64
|
+
{
|
|
65
|
+
allowClear: true,
|
|
66
|
+
className: "wxchtf-search-select",
|
|
67
|
+
mode: "multiple",
|
|
68
|
+
value: values.map((x) => x.value),
|
|
69
|
+
options: options.length > 0 ? options : values,
|
|
70
|
+
searchValue,
|
|
71
|
+
onSearch: setSearchValue,
|
|
72
|
+
onSelect: (_, option) => {
|
|
73
|
+
setValues((prev) => {
|
|
74
|
+
if (AuditSearchUtil.isSearchByText(option.value)) {
|
|
75
|
+
prev = prev.filter((x) => !AuditSearchUtil.isSearchByText(x.value));
|
|
76
|
+
}
|
|
77
|
+
return [...prev, option];
|
|
78
|
+
});
|
|
79
|
+
setSearchValue("");
|
|
80
|
+
},
|
|
81
|
+
onDeselect: (_, option) => {
|
|
82
|
+
setValues((prev) => prev.filter((x) => x.value !== option.value));
|
|
83
|
+
setSearchValue("");
|
|
84
|
+
},
|
|
85
|
+
filterOption: false,
|
|
86
|
+
onDropdownVisibleChange: () => setSearchValue(""),
|
|
87
|
+
disabled: isLoading,
|
|
88
|
+
loading: isLoading,
|
|
89
|
+
placeholder: localizer.audit.searchPlaceholder,
|
|
90
|
+
notFoundContent: searchValue.length === 0 ? localizer.audit.noInputBlurb : localizer.audit.noChatFound,
|
|
91
|
+
size: "large"
|
|
92
|
+
}
|
|
93
|
+
) });
|
|
94
|
+
});
|
|
95
|
+
function qs(params) {
|
|
96
|
+
const query = new URLSearchParams();
|
|
97
|
+
Object.entries(params).forEach(([key, value]) => {
|
|
98
|
+
if (value !== null && value !== void 0) {
|
|
99
|
+
query.append(key, typeof value === "string" ? value : JSON.stringify(value));
|
|
100
|
+
}
|
|
101
|
+
});
|
|
102
|
+
return query.toString();
|
|
103
|
+
}
|
|
104
|
+
const auditApi = chatifyApi.injectEndpoints({
|
|
105
|
+
endpoints: (build) => ({
|
|
106
|
+
getAuditChatList: build.query({
|
|
107
|
+
queryFn: async (args) => chatifyApi.settings.client.axios.get(`audit/chats?${qs({ query: args })}`).then(({ data }) => ({
|
|
108
|
+
data: {
|
|
109
|
+
total: data.total,
|
|
110
|
+
items: data.items.map(
|
|
111
|
+
({ lastMessage, ...x }) => ({ ...x, lastMessage: lastMessage.value })
|
|
112
|
+
)
|
|
113
|
+
}
|
|
114
|
+
})).catch((error) => ({ error })),
|
|
115
|
+
providesTags: ["chat", "message"]
|
|
116
|
+
}),
|
|
117
|
+
getAuditChat: build.query({
|
|
118
|
+
queryFn: async (args) => chatifyApi.settings.client.axios.get(`audit/chats/${encodeURIComponent(args.id)}`).then(({ data }) => ({ data })).catch((error) => ({ error })),
|
|
119
|
+
providesTags: ["chat"]
|
|
120
|
+
}),
|
|
121
|
+
getAuditChatMessagesInfinite: build.infiniteQuery({
|
|
122
|
+
queryFn: async (args) => {
|
|
123
|
+
const {
|
|
124
|
+
pageParam,
|
|
125
|
+
queryArg: { id }
|
|
126
|
+
} = args;
|
|
127
|
+
return chatifyApi.settings.client.axios.get(`audit/messages?${qs({ query: { chatId: id, pagingRule: pageParam, includeTotal: true } })}`).then(({ data }) => ({ data })).catch((error) => ({ error }));
|
|
128
|
+
},
|
|
129
|
+
infiniteQueryOptions: {
|
|
130
|
+
initialPageParam: { skip: 0, take: 20 },
|
|
131
|
+
getNextPageParam: (lastPage, _, lastPageParam) => lastPage.total > lastPageParam.skip + lastPageParam.take ? {
|
|
132
|
+
skip: lastPageParam.skip + lastPageParam.take,
|
|
133
|
+
take: lastPageParam.take
|
|
134
|
+
} : void 0
|
|
135
|
+
},
|
|
136
|
+
providesTags: ["message", "chat"]
|
|
137
|
+
})
|
|
138
|
+
})
|
|
139
|
+
});
|
|
140
|
+
const AuditChatList = customize("AuditChatList", (props) => {
|
|
141
|
+
const { items, selected, onSelect, loading, top } = props;
|
|
142
|
+
if (loading) {
|
|
143
|
+
return /* @__PURE__ */ jsx(Skeleton, {});
|
|
144
|
+
}
|
|
145
|
+
if (items.length === 0) {
|
|
146
|
+
return /* @__PURE__ */ jsx(Empty, {});
|
|
147
|
+
}
|
|
148
|
+
return /* @__PURE__ */ jsx(ChatList, { items, selected, onSelect, noRead: true, top });
|
|
149
|
+
});
|
|
150
|
+
const AuditConversationPanel = customize(
|
|
151
|
+
"AuditConversationPanel",
|
|
152
|
+
(props) => {
|
|
153
|
+
const { id, onClose, pageSize = 20 } = props;
|
|
154
|
+
const { data: chat } = auditApi.useGetAuditChatQuery({ id });
|
|
155
|
+
const {
|
|
156
|
+
data: messageSegments,
|
|
157
|
+
isFetchingNextPage,
|
|
158
|
+
fetchNextPage,
|
|
159
|
+
hasNextPage
|
|
160
|
+
} = auditApi.useGetAuditChatMessagesInfiniteInfiniteQuery(
|
|
161
|
+
{ id },
|
|
162
|
+
{ initialPageParam: { skip: 0, take: pageSize } }
|
|
163
|
+
);
|
|
164
|
+
const messages = useMemo(() => (messageSegments == null ? void 0 : messageSegments.pages.flatMap((x) => x.items)) ?? [], [messageSegments]);
|
|
165
|
+
if (!chat) return null;
|
|
166
|
+
return /* @__PURE__ */ jsx(
|
|
167
|
+
Conversation,
|
|
168
|
+
{
|
|
169
|
+
value: { active: false, id, lastReadMessageId: null, name: chat.name },
|
|
170
|
+
nextLoading: isFetchingNextPage,
|
|
171
|
+
onNext: fetchNextPage,
|
|
172
|
+
hasMore: !isFetchingNextPage && hasNextPage,
|
|
173
|
+
messages,
|
|
174
|
+
noReadTracking: true,
|
|
175
|
+
onClose
|
|
176
|
+
}
|
|
177
|
+
);
|
|
178
|
+
}
|
|
179
|
+
);
|
|
180
|
+
function useData(props, values) {
|
|
181
|
+
const { max } = props;
|
|
182
|
+
const query = useMemo(() => AuditSearchUtil.queryOf(values), [values]);
|
|
183
|
+
const { currentData: chats, isLoading } = auditApi.useGetAuditChatListQuery(
|
|
184
|
+
{
|
|
185
|
+
...query,
|
|
186
|
+
pagingRule: { skip: 0, take: max },
|
|
187
|
+
includeTotal: true
|
|
188
|
+
},
|
|
189
|
+
{ skip: !query }
|
|
190
|
+
);
|
|
191
|
+
return useMemo(() => ({ chats: (chats == null ? void 0 : chats.items) ?? [], isLoading }), [chats, isLoading]);
|
|
192
|
+
}
|
|
193
|
+
const EMPTY = Object.freeze({});
|
|
194
|
+
function AuditPanel(props) {
|
|
195
|
+
props = { max: 100, customize: EMPTY, ...props };
|
|
196
|
+
const { className, style, localizer = defaultLocalizer, customize: customize2 = EMPTY, max } = props;
|
|
197
|
+
const [values, setValues] = useState([]);
|
|
198
|
+
const { chats, isLoading } = useData(props, values);
|
|
199
|
+
const [selectedId, setSelectedId] = useState(null);
|
|
200
|
+
const resetSelected = useCallback(() => setSelectedId(null), []);
|
|
201
|
+
useEffect(() => {
|
|
202
|
+
if (chats.every((x) => x.id !== selectedId)) {
|
|
203
|
+
setSelectedId(null);
|
|
204
|
+
}
|
|
205
|
+
}, [chats, selectedId]);
|
|
206
|
+
return /* @__PURE__ */ jsx(CustomizeContext.Provider, { value: customize2, children: /* @__PURE__ */ jsx(LocalizerContext.Provider, { value: localizer, children: /* @__PURE__ */ jsxs("div", { className: classNames(className, "wxchtf-audit-panel"), style, children: [
|
|
207
|
+
/* @__PURE__ */ jsx(AuditSearch, { onSearch: setValues }),
|
|
208
|
+
/* @__PURE__ */ jsxs("div", { className: classNames("wxchtf-audit-body", { "--conversation-opened": !!selectedId }), children: [
|
|
209
|
+
/* @__PURE__ */ jsx(
|
|
210
|
+
AuditChatList,
|
|
211
|
+
{
|
|
212
|
+
items: chats,
|
|
213
|
+
loading: isLoading,
|
|
214
|
+
selected: selectedId,
|
|
215
|
+
onSelect: setSelectedId,
|
|
216
|
+
top: Math.min(chats.length, max)
|
|
217
|
+
}
|
|
218
|
+
),
|
|
219
|
+
selectedId && /* @__PURE__ */ jsx(AuditConversationPanel, { id: selectedId, onClose: resetSelected })
|
|
220
|
+
] })
|
|
221
|
+
] }) }) });
|
|
222
|
+
}
|
|
223
|
+
Chatify.Audit = AuditPanel;
|
|
224
|
+
defaultLocalizer.audit = {
|
|
225
|
+
searchPlaceholder: "Search chats by chat name or member name",
|
|
226
|
+
noChatFound: "No chats found",
|
|
227
|
+
noInputBlurb: "Start typing to search",
|
|
228
|
+
textSearchOption: (text) => /* @__PURE__ */ jsx("span", { children: `Chat name includes "${text}"` }),
|
|
229
|
+
memberSearchOption: (account) => /* @__PURE__ */ jsxs(Space, { children: [
|
|
230
|
+
/* @__PURE__ */ jsx(Avatar, { account }),
|
|
231
|
+
`Chat includes "${account.name}"`
|
|
232
|
+
] })
|
|
233
|
+
};
|
|
234
|
+
export {
|
|
235
|
+
AuditChatList,
|
|
236
|
+
AuditConversationPanel,
|
|
237
|
+
AuditPanel,
|
|
238
|
+
AuditSearch,
|
|
239
|
+
AuditSearchUtil,
|
|
240
|
+
auditApi
|
|
241
|
+
};
|
|
242
|
+
//# sourceMappingURL=audit.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"audit.js","sources":["../src/audit/AuditSearchValue.tsx","../src/audit/AuditSearch.tsx","../src/audit/auditApi.tsx","../src/audit/AuditChatList.tsx","../src/audit/AuditConversationPanel.tsx","../src/audit/AuditPanel.tsx","../src/audit/index.tsx"],"sourcesContent":["import { GetAuditChatListQueryArgs } from './auditApi';\n\nexport interface AuditSearchOption {\n label: JSX.Element;\n value: string;\n}\n\nconst MEMBER_PREFIX = 'member://';\nconst TEXT_PREFIX = 'text://';\n\nfunction queryOf(\n values: string[],\n): Pick<GetAuditChatListQueryArgs, 'containsOneOfMembers' | 'searchString'> | null {\n let containsOneOfMembers: string[] | null = values\n .filter(AuditSearchUtil.isSearchByMember)\n .map((v) => v.slice(MEMBER_PREFIX.length));\n\n containsOneOfMembers = containsOneOfMembers.length > 0 ? containsOneOfMembers : null;\n\n const searchStringValues = values\n .filter(AuditSearchUtil.isSearchByText)\n .map((v) => v.slice(TEXT_PREFIX.length));\n\n const searchString = searchStringValues.length > 0 ? searchStringValues.join(' ') : null;\n\n if (!containsOneOfMembers && !searchString) {\n return null;\n }\n\n return {\n containsOneOfMembers,\n searchString,\n };\n}\n\nexport const AuditSearchUtil = Object.freeze({\n MEMBER_PREFIX,\n TEXT_PREFIX,\n isSearchByMember: (value: string) => value.startsWith(MEMBER_PREFIX),\n isSearchByText: (value: string) => value.startsWith(TEXT_PREFIX),\n queryOf,\n});\n","import { Account, chatifyApi, customize, Localizer, useLocalizer } from '@webinex/chatify';\nimport { Select } from 'antd';\nimport classNames from 'classnames';\nimport { useEffect, useMemo, useState } from 'react';\nimport { AuditSearchUtil } from './AuditSearchValue';\n\nexport interface AuditSearchProps {\n className?: string;\n onSearch?: (values: string[]) => void;\n}\n\ntype Value = { label: JSX.Element; value: string };\n\nfunction* mapOptions(localizer: Localizer, accounts: Account[] | undefined, searchValue: string) {\n if (searchValue.length === 0) return;\n\n if (searchValue.length > 0)\n yield {\n label: localizer.audit.textSearchOption(searchValue),\n value: AuditSearchUtil.TEXT_PREFIX + searchValue,\n };\n\n for (const account of accounts?.filter((x) =>\n x.name.toLocaleLowerCase().includes(searchValue.toLocaleLowerCase()),\n ) ?? []) {\n yield {\n label: localizer.audit.memberSearchOption(account),\n value: AuditSearchUtil.MEMBER_PREFIX + account.id,\n };\n }\n}\n\nfunction useOptions(accounts: Account[] | undefined, searchValue: string) {\n const localizer = useLocalizer();\n return useMemo(\n () => Array.from(mapOptions(localizer, accounts, searchValue)),\n [localizer, accounts, searchValue],\n );\n}\n\nexport const AuditSearch = customize('AuditSearch', (props: AuditSearchProps) => {\n const { className, onSearch } = props;\n const [searchValue, setSearchValue] = useState('');\n const [values, setValues] = useState<Value[]>([]);\n const { data: accounts, isLoading } = chatifyApi.useGetAccountListQuery();\n const options = useOptions(accounts, searchValue);\n const localizer = useLocalizer();\n\n useEffect(() => {\n onSearch?.(values.map((x) => x.value));\n }, [onSearch, values]);\n\n return (\n <div className={classNames('wxchtf-search', className)}>\n <Select<string[], Value>\n allowClear\n className=\"wxchtf-search-select\"\n mode=\"multiple\"\n value={values.map((x) => x.value)}\n options={options.length > 0 ? options : values}\n searchValue={searchValue}\n onSearch={setSearchValue}\n onSelect={(_, option) => {\n setValues((prev) => {\n if (AuditSearchUtil.isSearchByText(option.value)) {\n prev = prev.filter((x) => !AuditSearchUtil.isSearchByText(x.value));\n }\n\n return [...prev, option];\n });\n setSearchValue('');\n }}\n onDeselect={(_, option) => {\n setValues((prev) => prev.filter((x) => x.value !== option.value));\n setSearchValue('');\n }}\n filterOption={false}\n onDropdownVisibleChange={() => setSearchValue('')}\n disabled={isLoading}\n loading={isLoading}\n placeholder={localizer.audit.searchPlaceholder}\n notFoundContent={\n searchValue.length === 0 ? localizer.audit.noInputBlurb : localizer.audit.noChatFound\n }\n size=\"large\"\n />\n </div>\n );\n});\n","import { PagingRule } from '@webinex/asky';\nimport { Account, chatifyApi, File, ListSegment, Optional } from '@webinex/chatify';\n\nexport interface GetAuditChatListQueryArgs {\n containsOneOfMembers: string[] | null;\n searchString: string | null;\n pagingRule: PagingRule | null;\n includeTotal: boolean | null;\n}\n\nexport interface AuditChatResponse {\n id: string;\n workspaceId: string;\n name: string;\n createdAt: string;\n createdById: string;\n lastMessage: Optional<AuditChatMessage>;\n}\n\nexport interface AuditChatMessage {\n id: string;\n authorId: string;\n sentAt: string;\n text: string | null;\n files: File[];\n sentBy: Account;\n}\n\nexport interface AuditChatListItem {\n id: string;\n workspaceId: string;\n name: string;\n createdAt: string;\n createdById: string;\n lastMessage: AuditChatMessage;\n}\n\nexport interface AuditChat {\n id: string;\n workspaceId: string;\n name: string;\n createdAt: string;\n createdById: string;\n}\n\nfunction qs(params: Record<string, any>): string {\n const query = new URLSearchParams();\n Object.entries(params).forEach(([key, value]) => {\n if (value !== null && value !== undefined) {\n query.append(key, typeof value === 'string' ? value : JSON.stringify(value));\n }\n });\n\n return query.toString();\n}\n\nexport const auditApi = chatifyApi.injectEndpoints({\n endpoints: (build) => ({\n getAuditChatList: build.query<ListSegment<AuditChatListItem>, GetAuditChatListQueryArgs>({\n queryFn: async (args) =>\n chatifyApi.settings.client.axios\n .get<ListSegment<AuditChatResponse>>(`audit/chats?${qs({ query: args })}`)\n .then(({ data }) => ({\n data: {\n total: data.total,\n items: data.items.map(\n ({ lastMessage, ...x }): AuditChatListItem => ({ ...x, lastMessage: lastMessage.value! }),\n ),\n },\n }))\n .catch((error) => ({ error })),\n providesTags: ['chat', 'message'],\n }),\n\n getAuditChat: build.query<AuditChat, { id: string }>({\n queryFn: async (args) =>\n chatifyApi.settings.client.axios\n .get(`audit/chats/${encodeURIComponent(args.id)}`)\n .then(({ data }) => ({ data }))\n .catch((error) => ({ error })),\n providesTags: ['chat'],\n }),\n\n getAuditChatMessagesInfinite: build.infiniteQuery<\n ListSegment<AuditChatMessage>,\n { id: string },\n { skip: number; take: number }\n >({\n queryFn: async (args) => {\n const {\n pageParam,\n queryArg: { id },\n } = args;\n\n return chatifyApi.settings.client.axios\n .get(`audit/messages?${qs({ query: { chatId: id, pagingRule: pageParam, includeTotal: true } })}`)\n .then(({ data }) => ({ data }))\n .catch((error) => ({ error }));\n },\n infiniteQueryOptions: {\n initialPageParam: { skip: 0, take: 20 },\n getNextPageParam: (lastPage, _, lastPageParam) =>\n lastPage.total > lastPageParam.skip + lastPageParam.take\n ? {\n skip: lastPageParam.skip + lastPageParam.take,\n take: lastPageParam.take,\n }\n : undefined,\n },\n providesTags: ['message', 'chat'],\n }),\n }),\n});\n","import { ChatList, customize } from '@webinex/chatify';\nimport { Empty, Skeleton } from 'antd';\nimport { AuditChatListItem } from './auditApi';\n\nexport interface AuditChatListProps {\n items: AuditChatListItem[];\n loading: boolean;\n selected: string | null;\n onSelect: (id: string) => void;\n top?: number;\n}\n\nexport const AuditChatList = customize('AuditChatList', (props: AuditChatListProps) => {\n const { items, selected, onSelect, loading, top } = props;\n\n if (loading) {\n return <Skeleton />;\n }\n\n if (items.length === 0) {\n return <Empty />;\n }\n\n return <ChatList items={items} selected={selected} onSelect={onSelect} noRead top={top} />;\n});\n","import { Conversation, customize } from '@webinex/chatify';\nimport { auditApi } from './auditApi';\nimport { useMemo } from 'react';\n\nexport interface AuditConversationPanelProps {\n id: string;\n onClose?: () => void;\n\n /**\n * Number of messages to load per page.\n * @default 20\n */\n pageSize?: number;\n}\n\nexport const AuditConversationPanel = customize(\n 'AuditConversationPanel',\n (props: AuditConversationPanelProps) => {\n const { id, onClose, pageSize = 20 } = props;\n const { data: chat } = auditApi.useGetAuditChatQuery({ id });\n\n const {\n data: messageSegments,\n isFetchingNextPage,\n fetchNextPage,\n hasNextPage,\n } = auditApi.useGetAuditChatMessagesInfiniteInfiniteQuery(\n { id },\n { initialPageParam: { skip: 0, take: pageSize } },\n );\n\n const messages = useMemo(() => messageSegments?.pages.flatMap((x) => x.items) ?? [], [messageSegments]);\n\n if (!chat) return null;\n\n return (\n <Conversation\n value={{ active: false, id, lastReadMessageId: null, name: chat.name }}\n nextLoading={isFetchingNextPage}\n onNext={fetchNextPage}\n hasMore={!isFetchingNextPage && hasNextPage}\n messages={messages}\n noReadTracking\n onClose={onClose}\n />\n );\n },\n);\n","import classNames from 'classnames';\nimport { AuditSearch } from './AuditSearch';\nimport { useCallback, useEffect, useMemo, useState } from 'react';\nimport { AuditSearchUtil } from './AuditSearchValue';\nimport { auditApi } from './auditApi';\nimport { AuditChatList } from './AuditChatList';\nimport { CustomizeContext, defaultLocalizer, Localizer, LocalizerContext } from '@webinex/chatify';\nimport { AuditConversationPanel } from './AuditConversationPanel';\nimport { AuditPanelCustomizeValue } from './AuditPanelCustomizeValue';\n\nexport interface AuditPanelProps {\n className?: string;\n style?: React.CSSProperties;\n localizer?: Localizer;\n customize?: AuditPanelCustomizeValue;\n\n /**\n * Maximum number of chats to load.\n * @default 100\n */\n max?: number;\n}\n\nfunction useData(props: AuditPanelProps, values: string[]) {\n const { max } = props;\n const query = useMemo(() => AuditSearchUtil.queryOf(values), [values]);\n\n const { currentData: chats, isLoading } = auditApi.useGetAuditChatListQuery(\n {\n ...query!,\n pagingRule: { skip: 0, take: max! },\n includeTotal: true,\n },\n { skip: !query },\n );\n\n return useMemo(() => ({ chats: chats?.items ?? [], isLoading }), [chats, isLoading]);\n}\n\nconst EMPTY = Object.freeze({} as AuditPanelCustomizeValue);\n\nexport function AuditPanel(props: AuditPanelProps) {\n props = { max: 100, customize: EMPTY, ...props };\n const { className, style, localizer = defaultLocalizer, customize = EMPTY, max } = props;\n const [values, setValues] = useState<string[]>([]);\n const { chats, isLoading } = useData(props, values);\n\n const [selectedId, setSelectedId] = useState<string | null>(null);\n const resetSelected = useCallback(() => setSelectedId(null), []);\n\n useEffect(() => {\n if (chats.every((x) => x.id !== selectedId)) {\n setSelectedId(null);\n }\n }, [chats, selectedId]);\n\n return (\n <CustomizeContext.Provider value={customize}>\n <LocalizerContext.Provider value={localizer}>\n <div className={classNames(className, 'wxchtf-audit-panel')} style={style}>\n <AuditSearch onSearch={setValues} />\n <div className={classNames('wxchtf-audit-body', { '--conversation-opened': !!selectedId })}>\n <AuditChatList\n items={chats}\n loading={isLoading}\n selected={selectedId}\n onSelect={setSelectedId}\n top={Math.min(chats.length, max!)}\n />\n {selectedId && <AuditConversationPanel id={selectedId} onClose={resetSelected} />}\n </div>\n </div>\n </LocalizerContext.Provider>\n </CustomizeContext.Provider>\n );\n}\n","import { Space } from 'antd';\nimport { AuditPanel } from './AuditPanel';\nimport './index.d';\nimport './styles.scss';\nimport { Avatar, Chatify, defaultLocalizer } from '@webinex/chatify';\n\nexport * from './AuditPanel';\nexport * from './AuditPanelCustomizeValue';\nexport * from './AuditChatList';\nexport * from './AuditSearchValue';\nexport * from './AuditSearch';\nexport * from './auditApi';\nexport * from './AuditConversationPanel';\n\nChatify.Audit = AuditPanel;\n\ndefaultLocalizer.audit = {\n searchPlaceholder: 'Search chats by chat name or member name',\n noChatFound: 'No chats found',\n noInputBlurb: 'Start typing to search',\n textSearchOption: (text) => <span>{`Chat name includes \"${text}\"`}</span>,\n memberSearchOption: (account) => (\n <Space>\n <Avatar account={account} />\n {`Chat includes \"${account.name}\"`}\n </Space>\n ),\n};\n"],"names":["customize"],"mappings":"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"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
import { ae, aA, l, m, v, z, E, x, w, y, F, n, ai, aj, ak, al, am, an, ao, ap, aq, A, g, h, i, o, j, d, aB, a9, a3, a4, a7, a5, a6, t, p, q, r, s, C, D, af, ag, I, N, M, G, H, J, K, L, O, P, Q, V, U, R, X, S, ah, T, W, ar, Y, Z, _, $, a0, a2, aa, ac, ab, aw, av, as, az, c, b, f, a1, at, au, aC, k, B, ax, a8, a, u, e, ad, ay } from "./Chatify-DGRV4QKP.js";
|
|
2
|
+
export {
|
|
3
|
+
ae as Avatar,
|
|
4
|
+
aA as CHATIFY_SIGNALR_METHODS,
|
|
5
|
+
l as ChatContext,
|
|
6
|
+
m as ChatEditableHeaderName,
|
|
7
|
+
v as ChatGroupAside,
|
|
8
|
+
z as ChatGroupBody,
|
|
9
|
+
E as ChatGroupContext,
|
|
10
|
+
x as ChatGroupFooter,
|
|
11
|
+
w as ChatGroupHeader,
|
|
12
|
+
y as ChatGroupMain,
|
|
13
|
+
F as ChatGroupPanel,
|
|
14
|
+
n as ChatHeaderActions,
|
|
15
|
+
ai as ChatList,
|
|
16
|
+
aj as ChatListItemAvatar,
|
|
17
|
+
ak as ChatListItemBox,
|
|
18
|
+
al as ChatListItemLastMessage,
|
|
19
|
+
am as ChatListItemLastMessageAuthor,
|
|
20
|
+
an as ChatListItemLastMessageContent,
|
|
21
|
+
ao as ChatListItemLastMessageSentAt,
|
|
22
|
+
ap as ChatListItemName,
|
|
23
|
+
aq as ChatListItemUnreadCount,
|
|
24
|
+
A as ChatListPanel,
|
|
25
|
+
g as ChatMembersButton,
|
|
26
|
+
h as ChatMembersPanel,
|
|
27
|
+
i as ChatMembersPreview,
|
|
28
|
+
o as ChatPanel,
|
|
29
|
+
j as ChatView,
|
|
30
|
+
d as Chatify,
|
|
31
|
+
aB as ChatifyClient,
|
|
32
|
+
a9 as Conversation,
|
|
33
|
+
a3 as ConversationActions,
|
|
34
|
+
a4 as ConversationBody,
|
|
35
|
+
a7 as ConversationContext,
|
|
36
|
+
a5 as ConversationHeader,
|
|
37
|
+
a6 as ConversationName,
|
|
38
|
+
t as CreateChatButton,
|
|
39
|
+
p as CreateChatForm,
|
|
40
|
+
q as CreateChatMemberInput,
|
|
41
|
+
r as CreateChatNameInput,
|
|
42
|
+
s as CreateChatPanel,
|
|
43
|
+
C as CustomizeContext,
|
|
44
|
+
D as DEFAULT_CHAT_VIEW_CUSTOMIZE_VALUE,
|
|
45
|
+
af as ICONS,
|
|
46
|
+
ag as Icon,
|
|
47
|
+
I as InputBox,
|
|
48
|
+
N as InputBoxFile,
|
|
49
|
+
M as InputBoxFileList,
|
|
50
|
+
G as InputFileButton,
|
|
51
|
+
H as InputFilesBox,
|
|
52
|
+
J as InputSubmitButtonBox,
|
|
53
|
+
K as InputTextBox,
|
|
54
|
+
L as LocalizerContext,
|
|
55
|
+
O as MessageAuthor,
|
|
56
|
+
P as MessageBox,
|
|
57
|
+
Q as MessageContent,
|
|
58
|
+
V as MessageFile,
|
|
59
|
+
U as MessageFileList,
|
|
60
|
+
R as MessageInfoBox,
|
|
61
|
+
X as MessageReadObserver,
|
|
62
|
+
S as MessageRow,
|
|
63
|
+
ah as MessageSkeleton,
|
|
64
|
+
T as MessageText,
|
|
65
|
+
W as NextMessagesObserver,
|
|
66
|
+
ar as SYSTEM_ID,
|
|
67
|
+
Y as SendingMessageBox,
|
|
68
|
+
Z as SendingMessageContent,
|
|
69
|
+
_ as SendingMessageInfoBox,
|
|
70
|
+
$ as SendingMessageText,
|
|
71
|
+
a0 as SystemMessageBox,
|
|
72
|
+
a2 as SystemMessageRow,
|
|
73
|
+
aa as ThreadActions,
|
|
74
|
+
ac as ThreadContext,
|
|
75
|
+
ab as ThreadPanel,
|
|
76
|
+
aw as calcThreadListUnreadCount,
|
|
77
|
+
av as calcThreadUnreadCount,
|
|
78
|
+
as as chatId,
|
|
79
|
+
az as chatifyApi,
|
|
80
|
+
c as color,
|
|
81
|
+
b as customize,
|
|
82
|
+
f as defaultLocalizer,
|
|
83
|
+
a1 as formatSystemMessage,
|
|
84
|
+
at as messageSequencePart,
|
|
85
|
+
au as parseThreadMessageId,
|
|
86
|
+
aC as unsubscribe,
|
|
87
|
+
k as useChatContext,
|
|
88
|
+
B as useChatGroupContext,
|
|
89
|
+
ax as useChatListItem,
|
|
90
|
+
a8 as useConversation,
|
|
91
|
+
a as useCustomize,
|
|
92
|
+
u as useCustomizeContext,
|
|
93
|
+
e as useLocalizer,
|
|
94
|
+
ad as useThreadContext,
|
|
95
|
+
ay as useUnreadThreadMessageCount
|
|
96
|
+
};
|
|
97
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { AuditChatListItem } from './auditApi';
|
|
2
|
+
export interface AuditChatListProps {
|
|
3
|
+
items: AuditChatListItem[];
|
|
4
|
+
loading: boolean;
|
|
5
|
+
selected: string | null;
|
|
6
|
+
onSelect: (id: string) => void;
|
|
7
|
+
top?: number;
|
|
8
|
+
}
|
|
9
|
+
export declare const AuditChatList: import('../index.ts').Customizable<import('react').ComponentType<AuditChatListProps>>;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export interface AuditConversationPanelProps {
|
|
2
|
+
id: string;
|
|
3
|
+
onClose?: () => void;
|
|
4
|
+
/**
|
|
5
|
+
* Number of messages to load per page.
|
|
6
|
+
* @default 20
|
|
7
|
+
*/
|
|
8
|
+
pageSize?: number;
|
|
9
|
+
}
|
|
10
|
+
export declare const AuditConversationPanel: import('../index.ts').Customizable<import('react').ComponentType<AuditConversationPanelProps>>;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { Localizer } from '../index.ts';
|
|
2
|
+
import { AuditPanelCustomizeValue } from './AuditPanelCustomizeValue';
|
|
3
|
+
export interface AuditPanelProps {
|
|
4
|
+
className?: string;
|
|
5
|
+
style?: React.CSSProperties;
|
|
6
|
+
localizer?: Localizer;
|
|
7
|
+
customize?: AuditPanelCustomizeValue;
|
|
8
|
+
/**
|
|
9
|
+
* Maximum number of chats to load.
|
|
10
|
+
* @default 100
|
|
11
|
+
*/
|
|
12
|
+
max?: number;
|
|
13
|
+
}
|
|
14
|
+
export declare function AuditPanel(props: AuditPanelProps): import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { ChatListCustomizeValue, ConversationCustomizeValue } from '../index.ts';
|
|
2
|
+
import { AuditConversationPanel } from './AuditConversationPanel';
|
|
3
|
+
import { AuditChatList } from './AuditChatList';
|
|
4
|
+
import { AuditSearch } from './AuditSearch';
|
|
5
|
+
export type AuditPanelCustomizeValue = ConversationCustomizeValue & ChatListCustomizeValue & {
|
|
6
|
+
AuditConversationPanel?: typeof AuditConversationPanel.Component;
|
|
7
|
+
AuditChatList?: typeof AuditChatList.Component;
|
|
8
|
+
AuditSearch?: typeof AuditSearch.Component;
|
|
9
|
+
};
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { GetAuditChatListQueryArgs } from './auditApi';
|
|
2
|
+
export interface AuditSearchOption {
|
|
3
|
+
label: JSX.Element;
|
|
4
|
+
value: string;
|
|
5
|
+
}
|
|
6
|
+
declare function queryOf(values: string[]): Pick<GetAuditChatListQueryArgs, 'containsOneOfMembers' | 'searchString'> | null;
|
|
7
|
+
export declare const AuditSearchUtil: Readonly<{
|
|
8
|
+
MEMBER_PREFIX: "member://";
|
|
9
|
+
TEXT_PREFIX: "text://";
|
|
10
|
+
isSearchByMember: (value: string) => boolean;
|
|
11
|
+
isSearchByText: (value: string) => boolean;
|
|
12
|
+
queryOf: typeof queryOf;
|
|
13
|
+
}>;
|
|
14
|
+
export {};
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
import { PagingRule } from '@webinex/asky';
|
|
2
|
+
import { Account, File, ListSegment, Optional } from '../index.ts';
|
|
3
|
+
export interface GetAuditChatListQueryArgs {
|
|
4
|
+
containsOneOfMembers: string[] | null;
|
|
5
|
+
searchString: string | null;
|
|
6
|
+
pagingRule: PagingRule | null;
|
|
7
|
+
includeTotal: boolean | null;
|
|
8
|
+
}
|
|
9
|
+
export interface AuditChatResponse {
|
|
10
|
+
id: string;
|
|
11
|
+
workspaceId: string;
|
|
12
|
+
name: string;
|
|
13
|
+
createdAt: string;
|
|
14
|
+
createdById: string;
|
|
15
|
+
lastMessage: Optional<AuditChatMessage>;
|
|
16
|
+
}
|
|
17
|
+
export interface AuditChatMessage {
|
|
18
|
+
id: string;
|
|
19
|
+
authorId: string;
|
|
20
|
+
sentAt: string;
|
|
21
|
+
text: string | null;
|
|
22
|
+
files: File[];
|
|
23
|
+
sentBy: Account;
|
|
24
|
+
}
|
|
25
|
+
export interface AuditChatListItem {
|
|
26
|
+
id: string;
|
|
27
|
+
workspaceId: string;
|
|
28
|
+
name: string;
|
|
29
|
+
createdAt: string;
|
|
30
|
+
createdById: string;
|
|
31
|
+
lastMessage: AuditChatMessage;
|
|
32
|
+
}
|
|
33
|
+
export interface AuditChat {
|
|
34
|
+
id: string;
|
|
35
|
+
workspaceId: string;
|
|
36
|
+
name: string;
|
|
37
|
+
createdAt: string;
|
|
38
|
+
createdById: string;
|
|
39
|
+
}
|
|
40
|
+
export declare const auditApi: import('@reduxjs/toolkit/query').Api<import('@reduxjs/toolkit/query').BaseQueryFn, {
|
|
41
|
+
getAccountList: import('@reduxjs/toolkit/query').QueryDefinition<void, import('@reduxjs/toolkit/query').BaseQueryFn, "chat" | "account" | "message" | "thread" | "thread-message", Account[], "chatify", unknown>;
|
|
42
|
+
getChat: import('@reduxjs/toolkit/query').QueryDefinition<{
|
|
43
|
+
id: string;
|
|
44
|
+
}, import('@reduxjs/toolkit/query').BaseQueryFn, "chat" | "account" | "message" | "thread" | "thread-message", import('../index.ts').Chat, "chatify", unknown>;
|
|
45
|
+
addChat: import('@reduxjs/toolkit/query').MutationDefinition<{
|
|
46
|
+
name: string;
|
|
47
|
+
members: string[];
|
|
48
|
+
}, import('@reduxjs/toolkit/query').BaseQueryFn, "chat" | "account" | "message" | "thread" | "thread-message", string, "chatify", unknown>;
|
|
49
|
+
updateChatName: import('@reduxjs/toolkit/query').MutationDefinition<{
|
|
50
|
+
id: string;
|
|
51
|
+
name: string;
|
|
52
|
+
}, import('@reduxjs/toolkit/query').BaseQueryFn, "chat" | "account" | "message" | "thread" | "thread-message", void, "chatify", unknown>;
|
|
53
|
+
getChatList: import('@reduxjs/toolkit/query').QueryDefinition<void, import('@reduxjs/toolkit/query').BaseQueryFn, "chat" | "account" | "message" | "thread" | "thread-message", import('../index.ts').ChatListItem[], "chatify", unknown>;
|
|
54
|
+
removeChatMember: import('@reduxjs/toolkit/query').MutationDefinition<import('../index.ts').RemoveChatMemberRequest, import('@reduxjs/toolkit/query').BaseQueryFn, "chat" | "account" | "message" | "thread" | "thread-message", void, "chatify", unknown>;
|
|
55
|
+
addChatMember: import('@reduxjs/toolkit/query').MutationDefinition<import('../index.ts').AddChatMemberRequest, import('@reduxjs/toolkit/query').BaseQueryFn, "chat" | "account" | "message" | "thread" | "thread-message", void, "chatify", unknown>;
|
|
56
|
+
getChatMessageList: import('@reduxjs/toolkit/query').QueryDefinition<{
|
|
57
|
+
chatId: string;
|
|
58
|
+
}, import('@reduxjs/toolkit/query').BaseQueryFn, "chat" | "account" | "message" | "thread" | "thread-message", import('../index.ts').ChatMessageListResult, "chatify", unknown>;
|
|
59
|
+
fetchNextChatMessageList: import('@reduxjs/toolkit/query').MutationDefinition<{
|
|
60
|
+
chatId: string;
|
|
61
|
+
}, import('@reduxjs/toolkit/query').BaseQueryFn, "chat" | "account" | "message" | "thread" | "thread-message", void, "chatify", unknown>;
|
|
62
|
+
sendChatMessage: import('@reduxjs/toolkit/query').MutationDefinition<import('../index.ts').SendChatMessageRequest, import('@reduxjs/toolkit/query').BaseQueryFn, "chat" | "account" | "message" | "thread" | "thread-message", void, "chatify", unknown>;
|
|
63
|
+
readChatMessage: import('@reduxjs/toolkit/query').MutationDefinition<{
|
|
64
|
+
id: string;
|
|
65
|
+
}, import('@reduxjs/toolkit/query').BaseQueryFn, "chat" | "account" | "message" | "thread" | "thread-message", void, "chatify", unknown>;
|
|
66
|
+
getChatMessageReadQueue: import('@reduxjs/toolkit/query').QueryDefinition<void, import('@reduxjs/toolkit/query').BaseQueryFn, "chat" | "account" | "message" | "thread" | "thread-message", import('../core/debounce').DebounceValue<string>[], "chatify", unknown>;
|
|
67
|
+
getWatchThreadList: import('@reduxjs/toolkit/query').QueryDefinition<void, import('@reduxjs/toolkit/query').BaseQueryFn, "chat" | "account" | "message" | "thread" | "thread-message", import('../index.ts').ThreadWatchListItem[], "chatify", unknown>;
|
|
68
|
+
getThread: import('@reduxjs/toolkit/query').QueryDefinition<{
|
|
69
|
+
id: string;
|
|
70
|
+
}, import('@reduxjs/toolkit/query').BaseQueryFn, "chat" | "account" | "message" | "thread" | "thread-message", import('../index.ts').Thread, "chatify", unknown>;
|
|
71
|
+
watchThread: import('@reduxjs/toolkit/query').MutationDefinition<{
|
|
72
|
+
id: string;
|
|
73
|
+
watch: boolean;
|
|
74
|
+
}, import('@reduxjs/toolkit/query').BaseQueryFn, "chat" | "account" | "message" | "thread" | "thread-message", void, "chatify", unknown>;
|
|
75
|
+
getThreadMessageList: import('@reduxjs/toolkit/query').QueryDefinition<{
|
|
76
|
+
threadId: string;
|
|
77
|
+
}, import('@reduxjs/toolkit/query').BaseQueryFn, "chat" | "account" | "message" | "thread" | "thread-message", import('../index.ts').ThreadMessageList, "chatify", unknown>;
|
|
78
|
+
fetchNextThreadMessageList: import('@reduxjs/toolkit/query').MutationDefinition<{
|
|
79
|
+
threadId: string;
|
|
80
|
+
}, import('@reduxjs/toolkit/query').BaseQueryFn, "chat" | "account" | "message" | "thread" | "thread-message", void, "chatify", unknown>;
|
|
81
|
+
sendThreadMessage: import('@reduxjs/toolkit/query').MutationDefinition<import('../index.ts').SendThreadMessageRequest, import('@reduxjs/toolkit/query').BaseQueryFn, "chat" | "account" | "message" | "thread" | "thread-message", string, "chatify", unknown>;
|
|
82
|
+
readThreadMessage: import('@reduxjs/toolkit/query').MutationDefinition<{
|
|
83
|
+
id: string;
|
|
84
|
+
}, import('@reduxjs/toolkit/query').BaseQueryFn, "chat" | "account" | "message" | "thread" | "thread-message", void, "chatify", unknown>;
|
|
85
|
+
getThreadMessageReadQueue: import('@reduxjs/toolkit/query').QueryDefinition<void, import('@reduxjs/toolkit/query').BaseQueryFn, "chat" | "account" | "message" | "thread" | "thread-message", import('../core/debounce').DebounceValue<string>[], "chatify", unknown>;
|
|
86
|
+
} & {
|
|
87
|
+
getAuditChatList: import('@reduxjs/toolkit/query').QueryDefinition<GetAuditChatListQueryArgs, import('@reduxjs/toolkit/query').BaseQueryFn, "chat" | "account" | "message" | "thread" | "thread-message", ListSegment<AuditChatListItem>, "chatify", unknown>;
|
|
88
|
+
getAuditChat: import('@reduxjs/toolkit/query').QueryDefinition<{
|
|
89
|
+
id: string;
|
|
90
|
+
}, import('@reduxjs/toolkit/query').BaseQueryFn, "chat" | "account" | "message" | "thread" | "thread-message", AuditChat, "chatify", unknown>;
|
|
91
|
+
getAuditChatMessagesInfinite: import('@reduxjs/toolkit/query').InfiniteQueryDefinition<{
|
|
92
|
+
id: string;
|
|
93
|
+
}, {
|
|
94
|
+
skip: number;
|
|
95
|
+
take: number;
|
|
96
|
+
}, import('@reduxjs/toolkit/query').BaseQueryFn, "chat" | "account" | "message" | "thread" | "thread-message", ListSegment<AuditChatMessage>, "chatify", unknown>;
|
|
97
|
+
}, "chatify", "chat" | "account" | "message" | "thread" | "thread-message", typeof import('@reduxjs/toolkit/query').coreModuleName | typeof import('@reduxjs/toolkit/query/react').reactHooksModuleName>;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { Account } from '../core';
|
|
2
|
+
import { AuditPanel } from './AuditPanel';
|
|
3
|
+
declare module '../index.ts' {
|
|
4
|
+
interface ChatifyType {
|
|
5
|
+
Audit: typeof AuditPanel;
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
interface Localizer {
|
|
9
|
+
audit: {
|
|
10
|
+
searchPlaceholder: string;
|
|
11
|
+
noChatFound: string;
|
|
12
|
+
noInputBlurb: string;
|
|
13
|
+
textSearchOption: (searchValue: string) => JSX.Element;
|
|
14
|
+
memberSearchOption: (account: Account) => JSX.Element;
|
|
15
|
+
};
|
|
16
|
+
}
|
|
17
|
+
}
|