@droppii-org/chat-sdk 0.8.1 → 0.8.3
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/canned-response/cannedTrigger.d.ts +2 -0
- package/dist/components/canned-response/cannedTrigger.d.ts.map +1 -0
- package/dist/components/canned-response/cannedTrigger.js +3 -0
- package/dist/components/canned-response/insertCannedContent.js +2 -2
- package/dist/components/conversation/ConversationByGroupItem.js +1 -1
- package/dist/components/conversation/ConversationBySessionItem.js +4 -4
- package/dist/components/conversation/DeskConversationList.d.ts.map +1 -1
- package/dist/components/conversation/DeskConversationList.js +6 -4
- package/dist/components/conversation/folderEmptyState.d.ts.map +1 -1
- package/dist/components/conversation/folderEmptyState.js +2 -0
- package/dist/components/conversation/internalNotePreview.d.ts +1 -1
- package/dist/components/conversation/internalNotePreview.d.ts.map +1 -1
- package/dist/components/conversation/internalNotePreview.js +22 -3
- package/dist/components/conversation/listHeading.d.ts +1 -1
- package/dist/components/conversation/listHeading.d.ts.map +1 -1
- package/dist/components/conversation/listHeading.js +7 -1
- package/dist/components/conversation/rowTime.d.ts +2 -2
- package/dist/components/conversation/rowTime.d.ts.map +1 -1
- package/dist/components/conversation/rowTime.js +2 -4
- package/dist/components/conversation-detail/ConversationDetailInput.d.ts.map +1 -1
- package/dist/components/conversation-detail/ConversationDetailInput.js +8 -3
- package/dist/components/conversation-detail/ConversationMessageList.d.ts.map +1 -1
- package/dist/components/conversation-detail/ConversationMessageList.js +6 -3
- package/dist/components/conversation-detail/bot/BotMenuSheet.d.ts.map +1 -1
- package/dist/components/conversation-detail/bot/BotMenuSheet.js +1 -1
- package/dist/components/conversation-inbox/ConversationInboxList.d.ts.map +1 -1
- package/dist/components/conversation-inbox/ConversationInboxList.js +4 -0
- package/dist/components/conversation-inbox/InboxBootStatus.d.ts.map +1 -1
- package/dist/components/conversation-inbox/InboxBootStatus.js +10 -2
- package/dist/components/group/CreateGroupForm.d.ts.map +1 -1
- package/dist/components/group/CreateGroupForm.js +2 -1
- package/dist/components/group/CreateGroupFormCrmView.d.ts.map +1 -1
- package/dist/components/group/CreateGroupFormCrmView.js +1 -1
- package/dist/components/group/GroupMemberPickerCrm.d.ts.map +1 -1
- package/dist/components/group/GroupMemberPickerCrm.js +1 -1
- package/dist/components/media-collection/FileCollection.d.ts.map +1 -1
- package/dist/components/media-collection/FileCollection.js +4 -3
- package/dist/components/media-collection/ImageCollection.d.ts.map +1 -1
- package/dist/components/media-collection/ImageCollection.js +2 -1
- package/dist/components/media-collection/LinkCollection.d.ts.map +1 -1
- package/dist/components/media-collection/LinkCollection.js +14 -26
- package/dist/components/media-collection/VideoCollection.d.ts.map +1 -1
- package/dist/components/media-collection/VideoCollection.js +2 -1
- package/dist/components/media-resources/FileResourceList.js +2 -2
- package/dist/components/media-resources/ResourceScrollContainer.d.ts.map +1 -1
- package/dist/components/media-resources/ResourceScrollContainer.js +34 -2
- package/dist/components/message/GroupMembersDrawer.d.ts.map +1 -1
- package/dist/components/message/GroupMembersDrawer.js +2 -3
- package/dist/components/message/MessageList.d.ts.map +1 -1
- package/dist/components/message/MessageList.js +15 -4
- package/dist/components/message/footer/ActionBar.d.ts.map +1 -1
- package/dist/components/message/footer/ActionBar.js +10 -44
- package/dist/components/message/footer/CannedResponsePlugin.d.ts.map +1 -1
- package/dist/components/message/footer/CannedResponsePlugin.js +3 -2
- package/dist/components/message/footer/EnterHandler.d.ts.map +1 -1
- package/dist/components/message/footer/EnterHandler.js +10 -47
- package/dist/components/message/footer/FilePreview.d.ts.map +1 -1
- package/dist/components/message/footer/FilePreview.js +2 -1
- package/dist/components/message/footer/LinkInputPreview.d.ts +1 -1
- package/dist/components/message/footer/LinkInputPreview.d.ts.map +1 -1
- package/dist/components/message/footer/LinkInputPreview.js +8 -1
- package/dist/components/message/footer/MediaUploadButtons.d.ts.map +1 -1
- package/dist/components/message/footer/MediaUploadButtons.js +4 -7
- package/dist/components/message/footer/index.d.ts.map +1 -1
- package/dist/components/message/footer/index.js +57 -16
- package/dist/components/message/footer/mention/useMentionOptions.d.ts.map +1 -1
- package/dist/components/message/footer/mention/useMentionOptions.js +2 -6
- package/dist/components/message/footer/resetEditorAfterSend.d.ts +7 -0
- package/dist/components/message/footer/resetEditorAfterSend.d.ts.map +1 -0
- package/dist/components/message/footer/resetEditorAfterSend.js +62 -0
- package/dist/components/message/groupMemberMenuCrm.d.ts +4 -4
- package/dist/components/message/groupMemberMenuCrm.d.ts.map +1 -1
- package/dist/components/message/groupMemberMenuCrm.js +73 -60
- package/dist/components/message/item/FileMessage.js +2 -2
- package/dist/components/message/item/SystemLogMessage.d.ts.map +1 -1
- package/dist/components/message/item/SystemLogMessage.js +5 -2
- package/dist/components/search-conversation/SearchConversationAsGroups.js +1 -1
- package/dist/components/search-conversation/SearchConversationAsMessages.js +1 -1
- package/dist/components/search-conversation/SearchConversationMyInbox.js +1 -1
- package/dist/components/session/SessionFolderList.d.ts +4 -3
- package/dist/components/session/SessionFolderList.d.ts.map +1 -1
- package/dist/components/session/SessionFolderList.js +14 -5
- package/dist/components/thread/GroupInfoBodyCrm.d.ts.map +1 -1
- package/dist/components/thread/GroupInfoBodyCrm.js +2 -2
- package/dist/components/thread/GroupThreadInfo.d.ts.map +1 -1
- package/dist/components/thread/GroupThreadInfo.js +2 -6
- package/dist/components/thread/ManualAssignPopover.d.ts.map +1 -1
- package/dist/components/thread/ManualAssignPopover.js +6 -8
- package/dist/components/thread/SessionDetailCard.d.ts.map +1 -1
- package/dist/components/thread/SessionDetailCard.js +3 -3
- package/dist/components/thread/SessionSection.d.ts.map +1 -1
- package/dist/components/thread/SessionSection.js +3 -9
- package/dist/components/thread/SessionTagPicker.d.ts +3 -1
- package/dist/components/thread/SessionTagPicker.d.ts.map +1 -1
- package/dist/components/thread/SessionTagPicker.js +2 -2
- package/dist/components/thread/sessionDateFormat.d.ts +2 -0
- package/dist/components/thread/sessionDateFormat.d.ts.map +1 -1
- package/dist/components/thread/sessionDateFormat.js +6 -0
- package/dist/constants/dateFormat.d.ts +2 -0
- package/dist/constants/dateFormat.d.ts.map +1 -0
- package/dist/constants/dateFormat.js +2 -0
- package/dist/hooks/common/useFetchUrlMetadata.d.ts +1 -0
- package/dist/hooks/common/useFetchUrlMetadata.d.ts.map +1 -1
- package/dist/hooks/conversation/useBotFlow.d.ts.map +1 -1
- package/dist/hooks/conversation/useBotFlow.js +64 -12
- package/dist/hooks/conversation/useCloseBotSession.d.ts +2 -0
- package/dist/hooks/conversation/useCloseBotSession.d.ts.map +1 -1
- package/dist/hooks/conversation/useCloseBotSession.js +17 -1
- package/dist/hooks/global/useGlobalEvent.d.ts.map +1 -1
- package/dist/hooks/global/useGlobalEvent.js +148 -16
- package/dist/hooks/global/useLoginHealth.d.ts +3 -0
- package/dist/hooks/global/useLoginHealth.d.ts.map +1 -0
- package/dist/hooks/global/useLoginHealth.js +55 -0
- package/dist/hooks/group/useCreateGroup.d.ts.map +1 -1
- package/dist/hooks/group/useCreateGroup.js +75 -6
- package/dist/hooks/init/useChatBootPhase.d.ts +2 -0
- package/dist/hooks/init/useChatBootPhase.d.ts.map +1 -1
- package/dist/hooks/init/useChatBootPhase.js +11 -6
- package/dist/hooks/message/useMessage.d.ts.map +1 -1
- package/dist/hooks/message/useMessage.js +97 -28
- package/dist/hooks/message/usePinnedMessages.d.ts.map +1 -1
- package/dist/hooks/message/usePinnedMessages.js +13 -2
- package/dist/hooks/message/useRevokeMessage.d.ts.map +1 -1
- package/dist/hooks/message/useRevokeMessage.js +25 -0
- package/dist/hooks/message/useSendMessage.d.ts +15 -12
- package/dist/hooks/message/useSendMessage.d.ts.map +1 -1
- package/dist/hooks/message/useSendMessage.js +199 -133
- package/dist/hooks/search/useSearchMessage.d.ts.map +1 -1
- package/dist/hooks/search/useSearchMessage.js +57 -3
- package/dist/hooks/session/useConversationSessionState.d.ts.map +1 -1
- package/dist/hooks/session/useConversationSessionState.js +4 -1
- package/dist/hooks/session/useGetSession.d.ts.map +1 -1
- package/dist/hooks/session/useGetSession.js +2 -0
- package/dist/hooks/session/useGetSessionList.d.ts +235 -0
- package/dist/hooks/session/useGetSessionList.d.ts.map +1 -0
- package/dist/hooks/session/useGetSessionList.js +23 -0
- package/dist/hooks/session/useSessionLatestPreview.d.ts.map +1 -1
- package/dist/hooks/session/useSessionLatestPreview.js +34 -4
- package/dist/hooks/user/useAuth.d.ts +1 -1
- package/dist/hooks/user/useAuth.d.ts.map +1 -1
- package/dist/hooks/user/useAuth.js +31 -15
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/locales/vi/boot.json +5 -1
- package/dist/locales/vi/common.json +35 -15
- package/dist/locales/vi/conversation-inbox.json +2 -1
- package/dist/screens/conversation-detail/index.d.ts.map +1 -1
- package/dist/screens/conversation-detail/index.js +6 -0
- package/dist/screens/desk-message/DeskBootCard.d.ts.map +1 -1
- package/dist/screens/desk-message/DeskBootCard.js +6 -4
- package/dist/store/boot.d.ts +5 -0
- package/dist/store/boot.d.ts.map +1 -1
- package/dist/store/boot.js +11 -1
- package/dist/store/conversation.d.ts.map +1 -1
- package/dist/store/conversation.js +5 -1
- package/dist/store/session.d.ts +1 -13
- package/dist/store/session.d.ts.map +1 -1
- package/dist/store/session.js +10 -9
- package/dist/store/sessionFolder.d.ts +2 -0
- package/dist/store/sessionFolder.d.ts.map +1 -1
- package/dist/store/sessionFolder.js +3 -1
- package/dist/store/type.d.ts +7 -1
- package/dist/store/type.d.ts.map +1 -1
- package/dist/styles/global.css +1 -1
- package/dist/types/chat.d.ts +1 -1
- package/dist/types/chat.d.ts.map +1 -1
- package/dist/utils/common.d.ts.map +1 -1
- package/dist/utils/common.js +4 -1
- package/dist/utils/download.d.ts +10 -0
- package/dist/utils/download.d.ts.map +1 -1
- package/dist/utils/download.js +51 -0
- package/dist/utils/fileValidation.d.ts +7 -0
- package/dist/utils/fileValidation.d.ts.map +1 -1
- package/dist/utils/fileValidation.js +37 -13
- package/dist/utils/latestMessagePreviewable.d.ts +2 -0
- package/dist/utils/latestMessagePreviewable.d.ts.map +1 -0
- package/dist/utils/latestMessagePreviewable.js +18 -0
- package/dist/utils/mentionMembers.d.ts +3 -0
- package/dist/utils/mentionMembers.d.ts.map +1 -0
- package/dist/utils/mentionMembers.js +29 -0
- package/dist/utils/messageLog.d.ts +2 -2
- package/dist/utils/messageLog.d.ts.map +1 -1
- package/dist/utils/messageLog.js +129 -40
- package/dist/utils/notifiableMessage.d.ts +7 -0
- package/dist/utils/notifiableMessage.d.ts.map +1 -0
- package/dist/utils/notifiableMessage.js +26 -0
- package/dist/utils/withSdkTimeout.d.ts +11 -0
- package/dist/utils/withSdkTimeout.d.ts.map +1 -0
- package/dist/utils/withSdkTimeout.js +30 -0
- package/package.json +1 -1
|
@@ -0,0 +1,235 @@
|
|
|
1
|
+
import type { IFilterSummary } from "../../store/type";
|
|
2
|
+
interface UseGetSessionListProps {
|
|
3
|
+
filter: IFilterSummary;
|
|
4
|
+
isEnabled?: boolean;
|
|
5
|
+
}
|
|
6
|
+
/**
|
|
7
|
+
* Session rows for the desk list. A plain filter is one query as-is; the "open"
|
|
8
|
+
* group is one query with `statuses`. A chat-service that predates `statuses`
|
|
9
|
+
* ignores it and returns completed sessions too, so those rows are dropped here.
|
|
10
|
+
*/
|
|
11
|
+
export declare const useGetSessionList: ({ filter, isEnabled, }: UseGetSessionListProps) => {
|
|
12
|
+
dataFlatten: import("../../store/type").ISessionByStatus[];
|
|
13
|
+
error: Error;
|
|
14
|
+
isError: true;
|
|
15
|
+
isPending: false;
|
|
16
|
+
isLoadingError: false;
|
|
17
|
+
isRefetchError: true;
|
|
18
|
+
isSuccess: false;
|
|
19
|
+
isPlaceholderData: false;
|
|
20
|
+
status: "error";
|
|
21
|
+
fetchPreviousPage: (options?: import("@tanstack/react-query").FetchPreviousPageOptions) => Promise<import("@tanstack/react-query").InfiniteQueryObserverResult<import("@tanstack/react-query").InfiniteData<import("../../types/dto").BaseResponse<import("../../store/type").ISessionByStatus[]>, unknown>, Error>>;
|
|
22
|
+
hasPreviousPage: boolean;
|
|
23
|
+
isFetchNextPageError: boolean;
|
|
24
|
+
isFetchPreviousPageError: boolean;
|
|
25
|
+
isFetchingPreviousPage: boolean;
|
|
26
|
+
dataUpdatedAt: number;
|
|
27
|
+
errorUpdatedAt: number;
|
|
28
|
+
failureCount: number;
|
|
29
|
+
failureReason: Error | null;
|
|
30
|
+
errorUpdateCount: number;
|
|
31
|
+
isFetched: boolean;
|
|
32
|
+
isFetchedAfterMount: boolean;
|
|
33
|
+
isFetching: boolean;
|
|
34
|
+
isInitialLoading: boolean;
|
|
35
|
+
isPaused: boolean;
|
|
36
|
+
isRefetching: boolean;
|
|
37
|
+
isStale: boolean;
|
|
38
|
+
isEnabled: boolean;
|
|
39
|
+
refetch: (options?: import("@tanstack/react-query").RefetchOptions) => Promise<import("@tanstack/react-query").QueryObserverResult<import("@tanstack/react-query").InfiniteData<import("../../types/dto").BaseResponse<import("../../store/type").ISessionByStatus[]>, unknown>, Error>>;
|
|
40
|
+
fetchStatus: import("@tanstack/react-query").FetchStatus;
|
|
41
|
+
promise: Promise<import("@tanstack/react-query").InfiniteData<import("../../types/dto").BaseResponse<import("../../store/type").ISessionByStatus[]>, unknown>>;
|
|
42
|
+
data: import("@tanstack/react-query").InfiniteData<import("../../types/dto").BaseResponse<import("../../store/type").ISessionByStatus[]>, unknown> | undefined;
|
|
43
|
+
fetchNextPage: (options?: import("@tanstack/react-query").FetchNextPageOptions) => Promise<import("@tanstack/react-query").InfiniteQueryObserverResult<import("@tanstack/react-query").InfiniteData<import("../../types/dto").BaseResponse<import("../../store/type").ISessionByStatus[]>, unknown>, Error>>;
|
|
44
|
+
hasNextPage: boolean;
|
|
45
|
+
isFetchingNextPage: boolean;
|
|
46
|
+
isLoading: boolean;
|
|
47
|
+
isSyncing: boolean;
|
|
48
|
+
} | {
|
|
49
|
+
dataFlatten: import("../../store/type").ISessionByStatus[];
|
|
50
|
+
error: null;
|
|
51
|
+
isError: false;
|
|
52
|
+
isPending: false;
|
|
53
|
+
isLoadingError: false;
|
|
54
|
+
isRefetchError: false;
|
|
55
|
+
isFetchNextPageError: false;
|
|
56
|
+
isFetchPreviousPageError: false;
|
|
57
|
+
isSuccess: true;
|
|
58
|
+
isPlaceholderData: false;
|
|
59
|
+
status: "success";
|
|
60
|
+
fetchPreviousPage: (options?: import("@tanstack/react-query").FetchPreviousPageOptions) => Promise<import("@tanstack/react-query").InfiniteQueryObserverResult<import("@tanstack/react-query").InfiniteData<import("../../types/dto").BaseResponse<import("../../store/type").ISessionByStatus[]>, unknown>, Error>>;
|
|
61
|
+
hasPreviousPage: boolean;
|
|
62
|
+
isFetchingPreviousPage: boolean;
|
|
63
|
+
dataUpdatedAt: number;
|
|
64
|
+
errorUpdatedAt: number;
|
|
65
|
+
failureCount: number;
|
|
66
|
+
failureReason: Error | null;
|
|
67
|
+
errorUpdateCount: number;
|
|
68
|
+
isFetched: boolean;
|
|
69
|
+
isFetchedAfterMount: boolean;
|
|
70
|
+
isFetching: boolean;
|
|
71
|
+
isInitialLoading: boolean;
|
|
72
|
+
isPaused: boolean;
|
|
73
|
+
isRefetching: boolean;
|
|
74
|
+
isStale: boolean;
|
|
75
|
+
isEnabled: boolean;
|
|
76
|
+
refetch: (options?: import("@tanstack/react-query").RefetchOptions) => Promise<import("@tanstack/react-query").QueryObserverResult<import("@tanstack/react-query").InfiniteData<import("../../types/dto").BaseResponse<import("../../store/type").ISessionByStatus[]>, unknown>, Error>>;
|
|
77
|
+
fetchStatus: import("@tanstack/react-query").FetchStatus;
|
|
78
|
+
promise: Promise<import("@tanstack/react-query").InfiniteData<import("../../types/dto").BaseResponse<import("../../store/type").ISessionByStatus[]>, unknown>>;
|
|
79
|
+
data: import("@tanstack/react-query").InfiniteData<import("../../types/dto").BaseResponse<import("../../store/type").ISessionByStatus[]>, unknown> | undefined;
|
|
80
|
+
fetchNextPage: (options?: import("@tanstack/react-query").FetchNextPageOptions) => Promise<import("@tanstack/react-query").InfiniteQueryObserverResult<import("@tanstack/react-query").InfiniteData<import("../../types/dto").BaseResponse<import("../../store/type").ISessionByStatus[]>, unknown>, Error>>;
|
|
81
|
+
hasNextPage: boolean;
|
|
82
|
+
isFetchingNextPage: boolean;
|
|
83
|
+
isLoading: boolean;
|
|
84
|
+
isSyncing: boolean;
|
|
85
|
+
} | {
|
|
86
|
+
dataFlatten: import("../../store/type").ISessionByStatus[];
|
|
87
|
+
error: Error;
|
|
88
|
+
isError: true;
|
|
89
|
+
isPending: false;
|
|
90
|
+
isLoadingError: true;
|
|
91
|
+
isRefetchError: false;
|
|
92
|
+
isFetchNextPageError: false;
|
|
93
|
+
isFetchPreviousPageError: false;
|
|
94
|
+
isSuccess: false;
|
|
95
|
+
isPlaceholderData: false;
|
|
96
|
+
status: "error";
|
|
97
|
+
fetchPreviousPage: (options?: import("@tanstack/react-query").FetchPreviousPageOptions) => Promise<import("@tanstack/react-query").InfiniteQueryObserverResult<import("@tanstack/react-query").InfiniteData<import("../../types/dto").BaseResponse<import("../../store/type").ISessionByStatus[]>, unknown>, Error>>;
|
|
98
|
+
hasPreviousPage: boolean;
|
|
99
|
+
isFetchingPreviousPage: boolean;
|
|
100
|
+
dataUpdatedAt: number;
|
|
101
|
+
errorUpdatedAt: number;
|
|
102
|
+
failureCount: number;
|
|
103
|
+
failureReason: Error | null;
|
|
104
|
+
errorUpdateCount: number;
|
|
105
|
+
isFetched: boolean;
|
|
106
|
+
isFetchedAfterMount: boolean;
|
|
107
|
+
isFetching: boolean;
|
|
108
|
+
isInitialLoading: boolean;
|
|
109
|
+
isPaused: boolean;
|
|
110
|
+
isRefetching: boolean;
|
|
111
|
+
isStale: boolean;
|
|
112
|
+
isEnabled: boolean;
|
|
113
|
+
refetch: (options?: import("@tanstack/react-query").RefetchOptions) => Promise<import("@tanstack/react-query").QueryObserverResult<import("@tanstack/react-query").InfiniteData<import("../../types/dto").BaseResponse<import("../../store/type").ISessionByStatus[]>, unknown>, Error>>;
|
|
114
|
+
fetchStatus: import("@tanstack/react-query").FetchStatus;
|
|
115
|
+
promise: Promise<import("@tanstack/react-query").InfiniteData<import("../../types/dto").BaseResponse<import("../../store/type").ISessionByStatus[]>, unknown>>;
|
|
116
|
+
data: import("@tanstack/react-query").InfiniteData<import("../../types/dto").BaseResponse<import("../../store/type").ISessionByStatus[]>, unknown> | undefined;
|
|
117
|
+
fetchNextPage: (options?: import("@tanstack/react-query").FetchNextPageOptions) => Promise<import("@tanstack/react-query").InfiniteQueryObserverResult<import("@tanstack/react-query").InfiniteData<import("../../types/dto").BaseResponse<import("../../store/type").ISessionByStatus[]>, unknown>, Error>>;
|
|
118
|
+
hasNextPage: boolean;
|
|
119
|
+
isFetchingNextPage: boolean;
|
|
120
|
+
isLoading: boolean;
|
|
121
|
+
isSyncing: boolean;
|
|
122
|
+
} | {
|
|
123
|
+
dataFlatten: import("../../store/type").ISessionByStatus[];
|
|
124
|
+
error: null;
|
|
125
|
+
isError: false;
|
|
126
|
+
isPending: true;
|
|
127
|
+
isLoadingError: false;
|
|
128
|
+
isRefetchError: false;
|
|
129
|
+
isFetchNextPageError: false;
|
|
130
|
+
isFetchPreviousPageError: false;
|
|
131
|
+
isSuccess: false;
|
|
132
|
+
isPlaceholderData: false;
|
|
133
|
+
status: "pending";
|
|
134
|
+
fetchPreviousPage: (options?: import("@tanstack/react-query").FetchPreviousPageOptions) => Promise<import("@tanstack/react-query").InfiniteQueryObserverResult<import("@tanstack/react-query").InfiniteData<import("../../types/dto").BaseResponse<import("../../store/type").ISessionByStatus[]>, unknown>, Error>>;
|
|
135
|
+
hasPreviousPage: boolean;
|
|
136
|
+
isFetchingPreviousPage: boolean;
|
|
137
|
+
dataUpdatedAt: number;
|
|
138
|
+
errorUpdatedAt: number;
|
|
139
|
+
failureCount: number;
|
|
140
|
+
failureReason: Error | null;
|
|
141
|
+
errorUpdateCount: number;
|
|
142
|
+
isFetched: boolean;
|
|
143
|
+
isFetchedAfterMount: boolean;
|
|
144
|
+
isFetching: boolean;
|
|
145
|
+
isInitialLoading: boolean;
|
|
146
|
+
isPaused: boolean;
|
|
147
|
+
isRefetching: boolean;
|
|
148
|
+
isStale: boolean;
|
|
149
|
+
isEnabled: boolean;
|
|
150
|
+
refetch: (options?: import("@tanstack/react-query").RefetchOptions) => Promise<import("@tanstack/react-query").QueryObserverResult<import("@tanstack/react-query").InfiniteData<import("../../types/dto").BaseResponse<import("../../store/type").ISessionByStatus[]>, unknown>, Error>>;
|
|
151
|
+
fetchStatus: import("@tanstack/react-query").FetchStatus;
|
|
152
|
+
promise: Promise<import("@tanstack/react-query").InfiniteData<import("../../types/dto").BaseResponse<import("../../store/type").ISessionByStatus[]>, unknown>>;
|
|
153
|
+
data: import("@tanstack/react-query").InfiniteData<import("../../types/dto").BaseResponse<import("../../store/type").ISessionByStatus[]>, unknown> | undefined;
|
|
154
|
+
fetchNextPage: (options?: import("@tanstack/react-query").FetchNextPageOptions) => Promise<import("@tanstack/react-query").InfiniteQueryObserverResult<import("@tanstack/react-query").InfiniteData<import("../../types/dto").BaseResponse<import("../../store/type").ISessionByStatus[]>, unknown>, Error>>;
|
|
155
|
+
hasNextPage: boolean;
|
|
156
|
+
isFetchingNextPage: boolean;
|
|
157
|
+
isLoading: boolean;
|
|
158
|
+
isSyncing: boolean;
|
|
159
|
+
} | {
|
|
160
|
+
dataFlatten: import("../../store/type").ISessionByStatus[];
|
|
161
|
+
error: null;
|
|
162
|
+
isError: false;
|
|
163
|
+
isPending: true;
|
|
164
|
+
isLoadingError: false;
|
|
165
|
+
isRefetchError: false;
|
|
166
|
+
isFetchNextPageError: false;
|
|
167
|
+
isFetchPreviousPageError: false;
|
|
168
|
+
isSuccess: false;
|
|
169
|
+
isPlaceholderData: false;
|
|
170
|
+
status: "pending";
|
|
171
|
+
fetchPreviousPage: (options?: import("@tanstack/react-query").FetchPreviousPageOptions) => Promise<import("@tanstack/react-query").InfiniteQueryObserverResult<import("@tanstack/react-query").InfiniteData<import("../../types/dto").BaseResponse<import("../../store/type").ISessionByStatus[]>, unknown>, Error>>;
|
|
172
|
+
hasPreviousPage: boolean;
|
|
173
|
+
isFetchingPreviousPage: boolean;
|
|
174
|
+
dataUpdatedAt: number;
|
|
175
|
+
errorUpdatedAt: number;
|
|
176
|
+
failureCount: number;
|
|
177
|
+
failureReason: Error | null;
|
|
178
|
+
errorUpdateCount: number;
|
|
179
|
+
isFetched: boolean;
|
|
180
|
+
isFetchedAfterMount: boolean;
|
|
181
|
+
isFetching: boolean;
|
|
182
|
+
isInitialLoading: boolean;
|
|
183
|
+
isPaused: boolean;
|
|
184
|
+
isRefetching: boolean;
|
|
185
|
+
isStale: boolean;
|
|
186
|
+
isEnabled: boolean;
|
|
187
|
+
refetch: (options?: import("@tanstack/react-query").RefetchOptions) => Promise<import("@tanstack/react-query").QueryObserverResult<import("@tanstack/react-query").InfiniteData<import("../../types/dto").BaseResponse<import("../../store/type").ISessionByStatus[]>, unknown>, Error>>;
|
|
188
|
+
fetchStatus: import("@tanstack/react-query").FetchStatus;
|
|
189
|
+
promise: Promise<import("@tanstack/react-query").InfiniteData<import("../../types/dto").BaseResponse<import("../../store/type").ISessionByStatus[]>, unknown>>;
|
|
190
|
+
data: import("@tanstack/react-query").InfiniteData<import("../../types/dto").BaseResponse<import("../../store/type").ISessionByStatus[]>, unknown> | undefined;
|
|
191
|
+
fetchNextPage: (options?: import("@tanstack/react-query").FetchNextPageOptions) => Promise<import("@tanstack/react-query").InfiniteQueryObserverResult<import("@tanstack/react-query").InfiniteData<import("../../types/dto").BaseResponse<import("../../store/type").ISessionByStatus[]>, unknown>, Error>>;
|
|
192
|
+
hasNextPage: boolean;
|
|
193
|
+
isFetchingNextPage: boolean;
|
|
194
|
+
isLoading: boolean;
|
|
195
|
+
isSyncing: boolean;
|
|
196
|
+
} | {
|
|
197
|
+
dataFlatten: import("../../store/type").ISessionByStatus[];
|
|
198
|
+
isError: false;
|
|
199
|
+
error: null;
|
|
200
|
+
isPending: false;
|
|
201
|
+
isLoadingError: false;
|
|
202
|
+
isRefetchError: false;
|
|
203
|
+
isSuccess: true;
|
|
204
|
+
isPlaceholderData: true;
|
|
205
|
+
isFetchNextPageError: false;
|
|
206
|
+
isFetchPreviousPageError: false;
|
|
207
|
+
status: "success";
|
|
208
|
+
fetchPreviousPage: (options?: import("@tanstack/react-query").FetchPreviousPageOptions) => Promise<import("@tanstack/react-query").InfiniteQueryObserverResult<import("@tanstack/react-query").InfiniteData<import("../../types/dto").BaseResponse<import("../../store/type").ISessionByStatus[]>, unknown>, Error>>;
|
|
209
|
+
hasPreviousPage: boolean;
|
|
210
|
+
isFetchingPreviousPage: boolean;
|
|
211
|
+
dataUpdatedAt: number;
|
|
212
|
+
errorUpdatedAt: number;
|
|
213
|
+
failureCount: number;
|
|
214
|
+
failureReason: Error | null;
|
|
215
|
+
errorUpdateCount: number;
|
|
216
|
+
isFetched: boolean;
|
|
217
|
+
isFetchedAfterMount: boolean;
|
|
218
|
+
isFetching: boolean;
|
|
219
|
+
isInitialLoading: boolean;
|
|
220
|
+
isPaused: boolean;
|
|
221
|
+
isRefetching: boolean;
|
|
222
|
+
isStale: boolean;
|
|
223
|
+
isEnabled: boolean;
|
|
224
|
+
refetch: (options?: import("@tanstack/react-query").RefetchOptions) => Promise<import("@tanstack/react-query").QueryObserverResult<import("@tanstack/react-query").InfiniteData<import("../../types/dto").BaseResponse<import("../../store/type").ISessionByStatus[]>, unknown>, Error>>;
|
|
225
|
+
fetchStatus: import("@tanstack/react-query").FetchStatus;
|
|
226
|
+
promise: Promise<import("@tanstack/react-query").InfiniteData<import("../../types/dto").BaseResponse<import("../../store/type").ISessionByStatus[]>, unknown>>;
|
|
227
|
+
data: import("@tanstack/react-query").InfiniteData<import("../../types/dto").BaseResponse<import("../../store/type").ISessionByStatus[]>, unknown> | undefined;
|
|
228
|
+
fetchNextPage: (options?: import("@tanstack/react-query").FetchNextPageOptions) => Promise<import("@tanstack/react-query").InfiniteQueryObserverResult<import("@tanstack/react-query").InfiniteData<import("../../types/dto").BaseResponse<import("../../store/type").ISessionByStatus[]>, unknown>, Error>>;
|
|
229
|
+
hasNextPage: boolean;
|
|
230
|
+
isFetchingNextPage: boolean;
|
|
231
|
+
isLoading: boolean;
|
|
232
|
+
isSyncing: boolean;
|
|
233
|
+
};
|
|
234
|
+
export {};
|
|
235
|
+
//# sourceMappingURL=useGetSessionList.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useGetSessionList.d.ts","sourceRoot":"","sources":["../../../src/hooks/session/useGetSessionList.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAOnD,UAAU,sBAAsB;IAC9B,MAAM,EAAE,cAAc,CAAC;IACvB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED;;;;GAIG;AACH,eAAO,MAAM,iBAAiB,GAAI,wBAG/B,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2BxB,CAAC"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { useMemo } from "react";
|
|
3
|
+
import { SessionStatus } from "../../types/chat";
|
|
4
|
+
import { useGetSession } from "./useGetSession";
|
|
5
|
+
// "Open" in my messages = assigned to me and not completed. UNASSIGNED sessions
|
|
6
|
+
// have no owner yet, so they only exist in team folders.
|
|
7
|
+
const OPEN_STATUSES = [SessionStatus.WAITING_PROCESS, SessionStatus.IN_PROCESS];
|
|
8
|
+
/**
|
|
9
|
+
* Session rows for the desk list. A plain filter is one query as-is; the "open"
|
|
10
|
+
* group is one query with `statuses`. A chat-service that predates `statuses`
|
|
11
|
+
* ignores it and returns completed sessions too, so those rows are dropped here.
|
|
12
|
+
*/
|
|
13
|
+
export const useGetSessionList = ({ filter, isEnabled = true, }) => {
|
|
14
|
+
const isOpenGroup = !!filter.open;
|
|
15
|
+
const queryFilter = useMemo(() => isOpenGroup
|
|
16
|
+
? Object.assign(Object.assign({}, filter), { open: undefined, status: undefined, statuses: OPEN_STATUSES }) : filter, [filter, isOpenGroup]);
|
|
17
|
+
const result = useGetSession({ filter: queryFilter, options: { isEnabled } });
|
|
18
|
+
const { dataFlatten: rows } = result;
|
|
19
|
+
const dataFlatten = useMemo(() => isOpenGroup
|
|
20
|
+
? rows.filter((session) => session.status !== SessionStatus.COMPLETED)
|
|
21
|
+
: rows, [isOpenGroup, rows]);
|
|
22
|
+
return Object.assign(Object.assign({}, result), { dataFlatten });
|
|
23
|
+
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useSessionLatestPreview.d.ts","sourceRoot":"","sources":["../../../src/hooks/session/useSessionLatestPreview.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,gBAAgB,EAAyB,MAAM,8BAA8B,CAAC;
|
|
1
|
+
{"version":3,"file":"useSessionLatestPreview.d.ts","sourceRoot":"","sources":["../../../src/hooks/session/useSessionLatestPreview.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,gBAAgB,EAAyB,MAAM,8BAA8B,CAAC;AAYvF,MAAM,WAAW,aAAa;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,iBAAiB,EAAE,MAAM,CAAC;CAC3B;AAKD,MAAM,WAAW,yBAAyB;IACxC,cAAc,EAAE,MAAM,CAAC;IACvB,YAAY,CAAC,EAAE,gBAAgB,CAAC;CACjC;AA6BD,eAAO,MAAM,uBAAuB,GAClC,UAAU,yBAAyB,EAAE;;;CA4FtC,CAAC"}
|
|
@@ -5,8 +5,18 @@ import { useEffect, useMemo } from "react";
|
|
|
5
5
|
import { QUERY_KEYS } from "../../services/query";
|
|
6
6
|
import emitter from "../../utils/events";
|
|
7
7
|
import { DChatSDK } from "../../constants/sdk";
|
|
8
|
-
|
|
9
|
-
|
|
8
|
+
import { isPreviewableLatestMessage } from "../../utils/latestMessagePreviewable";
|
|
9
|
+
// Recent history scanned for a previewable message when the newest one is a log.
|
|
10
|
+
const LATEST_MESSAGE_COUNT = 20;
|
|
11
|
+
const SESSION_PREVIEW_STALE_MS = 60000;
|
|
12
|
+
const needsHistoryLookup = (session) => {
|
|
13
|
+
var _a;
|
|
14
|
+
return Boolean(session.conversationId) &&
|
|
15
|
+
!isPreviewableLatestMessage((_a = session.conversation) === null || _a === void 0 ? void 0 : _a.latestMsg);
|
|
16
|
+
};
|
|
17
|
+
// Newest message the row can actually show; id-less entries are the server's
|
|
18
|
+
// placeholder for a seq with no stored message. Core returns this window
|
|
19
|
+
// oldest-first, so the newest match is found from the end.
|
|
10
20
|
const fetchSessionLatestMessage = async (conversationID) => {
|
|
11
21
|
var _a;
|
|
12
22
|
const { data } = await DChatSDK.getAdvancedHistoryMessageList({
|
|
@@ -15,14 +25,25 @@ const fetchSessionLatestMessage = async (conversationID) => {
|
|
|
15
25
|
conversationID,
|
|
16
26
|
viewType: ViewType.History,
|
|
17
27
|
});
|
|
18
|
-
|
|
28
|
+
const list = (_a = data === null || data === void 0 ? void 0 : data.messageList) !== null && _a !== void 0 ? _a : [];
|
|
29
|
+
for (let index = list.length - 1; index >= 0; index -= 1) {
|
|
30
|
+
const message = list[index];
|
|
31
|
+
if (message.clientMsgID && isPreviewableLatestMessage(JSON.stringify(message))) {
|
|
32
|
+
return message;
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
return null;
|
|
19
36
|
};
|
|
20
37
|
export const useSessionLatestPreview = (sessions) => {
|
|
21
38
|
const queryClient = useQueryClient();
|
|
22
39
|
const results = useQueries({
|
|
23
40
|
queries: sessions.map((session) => ({
|
|
24
41
|
queryKey: [QUERY_KEYS.SESSION_LATEST_MESSAGE, session.conversationId],
|
|
25
|
-
enabled:
|
|
42
|
+
enabled: needsHistoryLookup(session),
|
|
43
|
+
// PUSH_NEW_MSG / GROUP_MEMBERS_CHANGED invalidate explicitly, so rows need
|
|
44
|
+
// not re-pull history on every focus or remount.
|
|
45
|
+
staleTime: SESSION_PREVIEW_STALE_MS,
|
|
46
|
+
refetchOnWindowFocus: false,
|
|
26
47
|
queryFn: () => fetchSessionLatestMessage(session.conversationId),
|
|
27
48
|
})),
|
|
28
49
|
});
|
|
@@ -62,6 +83,15 @@ export const useSessionLatestPreview = (sessions) => {
|
|
|
62
83
|
var _a, _b, _c;
|
|
63
84
|
const latestMessage = (_a = results[index]) === null || _a === void 0 ? void 0 : _a.data;
|
|
64
85
|
const latestMsgSendTime = ((_b = session.conversation) === null || _b === void 0 ? void 0 : _b.latestMsgSendTime) || 0;
|
|
86
|
+
// The conversation's own latest message is a log or marker: the newest
|
|
87
|
+
// real message found in history stands in for it, with its own time.
|
|
88
|
+
if (needsHistoryLookup(session) && (latestMessage === null || latestMessage === void 0 ? void 0 : latestMessage.clientMsgID)) {
|
|
89
|
+
map.set(session.conversationId, {
|
|
90
|
+
latestMsg: JSON.stringify(latestMessage),
|
|
91
|
+
latestMsgSendTime: latestMessage.sendTime,
|
|
92
|
+
});
|
|
93
|
+
return;
|
|
94
|
+
}
|
|
65
95
|
// A seq with no stored message comes back as an id-less placeholder
|
|
66
96
|
// carrying an older message's sendTime — never a preview candidate.
|
|
67
97
|
if ((latestMessage === null || latestMessage === void 0 ? void 0 : latestMessage.clientMsgID) &&
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useAuth.d.ts","sourceRoot":"","sources":["../../../src/hooks/user/useAuth.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"useAuth.d.ts","sourceRoot":"","sources":["../../../src/hooks/user/useAuth.ts"],"names":[],"mappings":"AAeA,eAAO,MAAM,YAAY;;CAmCxB,CAAC"}
|
|
@@ -5,27 +5,43 @@ import useBootStore from "../../store/boot";
|
|
|
5
5
|
import useConversationStore from "../../store/conversation";
|
|
6
6
|
import useMessageDraftStore from "../../store/messageDraft";
|
|
7
7
|
import useTypingStore from "../../store/typing";
|
|
8
|
+
// Core answers 10004/10005 (resource not loaded) once a kick logged it out.
|
|
9
|
+
const isNotLoggedInError = (error) => {
|
|
10
|
+
var _a;
|
|
11
|
+
const code = (_a = error === null || error === void 0 ? void 0 : error.errCode) !== null && _a !== void 0 ? _a : error === null || error === void 0 ? void 0 : error.code;
|
|
12
|
+
return code === 10004 || code === 10005;
|
|
13
|
+
};
|
|
8
14
|
export const useDChatAuth = () => {
|
|
9
15
|
const initAuthStore = useAuthStore((state) => state.initAuthStore);
|
|
10
16
|
const resetConversationStore = useConversationStore((state) => state.resetConversationStore);
|
|
11
17
|
const clearAllDrafts = useMessageDraftStore((state) => state.clearAllDrafts);
|
|
12
18
|
const logout = async () => {
|
|
13
|
-
const res = await DChatSDK.logout();
|
|
14
19
|
const applicationType = useAuthStore.getState().applicationType;
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
20
|
+
try {
|
|
21
|
+
return await DChatSDK.logout();
|
|
22
|
+
}
|
|
23
|
+
catch (error) {
|
|
24
|
+
// After a kick core already logged itself out, so "not logged in" is the goal state.
|
|
25
|
+
if (!isNotLoggedInError(error))
|
|
26
|
+
throw error;
|
|
27
|
+
return undefined;
|
|
28
|
+
}
|
|
29
|
+
finally {
|
|
30
|
+
// The stores must reset even when core refuses, or the next login stays on the stale boot state.
|
|
31
|
+
resetConversationStore();
|
|
32
|
+
useBootStore.getState().reset();
|
|
33
|
+
clearAllDrafts();
|
|
34
|
+
useTypingStore.getState().clearTypers();
|
|
35
|
+
initAuthStore({
|
|
36
|
+
chatToken: "",
|
|
37
|
+
accessToken: "",
|
|
38
|
+
apiAddress: "",
|
|
39
|
+
wsAddress: "",
|
|
40
|
+
platformID: Platform.Web,
|
|
41
|
+
userID: "",
|
|
42
|
+
applicationType,
|
|
43
|
+
});
|
|
44
|
+
}
|
|
29
45
|
};
|
|
30
46
|
return { logout };
|
|
31
47
|
};
|
package/dist/index.d.ts
CHANGED
|
@@ -53,6 +53,7 @@ export { ChatCategory, ChatType, PeerType, } from "./types/conversation";
|
|
|
53
53
|
export type { ConversationListItem, CreateConversationData, ConversationMember, BotConversationDetail, BotMainMenuItem, } from "./types/conversation";
|
|
54
54
|
export { isBotPeer, resolveConversationBotId } from "./utils/conversation";
|
|
55
55
|
export { parseLatestMessage } from "./utils/common";
|
|
56
|
+
export { isNotifiableLatestMessage } from "./utils/notifiableMessage";
|
|
56
57
|
export { isInCsSession } from "./utils/botFlow";
|
|
57
58
|
export { fetchBotConversationDetail, } from "./hooks/conversation/useBotConversationDetail";
|
|
58
59
|
export { fetchConversationByBotId, } from "./hooks/conversation/useResolveConversation";
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -52,6 +52,7 @@ export { ChatCategory, ChatType, PeerType, } from "./types/conversation";
|
|
|
52
52
|
//Bot flow / CS session
|
|
53
53
|
export { isBotPeer, resolveConversationBotId } from "./utils/conversation";
|
|
54
54
|
export { parseLatestMessage } from "./utils/common";
|
|
55
|
+
export { isNotifiableLatestMessage } from "./utils/notifiableMessage";
|
|
55
56
|
export { isInCsSession } from "./utils/botFlow";
|
|
56
57
|
export { fetchBotConversationDetail, } from "./hooks/conversation/useBotConversationDetail";
|
|
57
58
|
export { fetchConversationByBotId, } from "./hooks/conversation/useResolveConversation";
|
|
@@ -13,6 +13,8 @@
|
|
|
13
13
|
},
|
|
14
14
|
"slow": "Mạng đang chậm hơn bình thường. Livechat vẫn đang tải, bạn không cần làm gì thêm.",
|
|
15
15
|
"error_hint": "Kiểm tra kết nối mạng rồi bấm Thử lại. Nếu vẫn lỗi, báo bộ phận kỹ thuật: dừng ở bước {{step}}.",
|
|
16
|
+
"kicked_title": "Tài khoản đã đăng nhập ở nơi khác",
|
|
17
|
+
"kicked_hint": "Tài khoản của bạn vừa được đăng nhập trên thiết bị hoặc tab khác nên phiên này đã bị ngắt. Bấm Thử lại để đăng nhập lại ở đây.",
|
|
16
18
|
"background_sync": "Đang đồng bộ các cuộc trò chuyện còn lại"
|
|
17
19
|
},
|
|
18
20
|
"inbox": {
|
|
@@ -22,7 +24,9 @@
|
|
|
22
24
|
"sync": "Vui lòng chờ trong giây lát…",
|
|
23
25
|
"slow": "Lần đầu mở có thể mất một chút thời gian. Những lần sau sẽ nhanh hơn.",
|
|
24
26
|
"error_title": "Chưa tải được tin nhắn",
|
|
25
|
-
"error_hint": "Kiểm tra kết nối mạng rồi thử lại."
|
|
27
|
+
"error_hint": "Kiểm tra kết nối mạng rồi thử lại.",
|
|
28
|
+
"kicked_title": "Tài khoản đã đăng nhập ở nơi khác",
|
|
29
|
+
"kicked_hint": "Tài khoản của bạn vừa được đăng nhập trên thiết bị hoặc tab khác. Bấm Thử lại để đăng nhập lại ở đây."
|
|
26
30
|
},
|
|
27
31
|
"retry": "Thử lại",
|
|
28
32
|
"sync_progress_label": "Tiến độ đồng bộ tin nhắn"
|
|
@@ -21,6 +21,7 @@
|
|
|
21
21
|
"group_visibility_private": "Riêng tư",
|
|
22
22
|
"group_visibility_public": "Công khai",
|
|
23
23
|
"no_conversation": "Không tìm thấy cuộc trò chuyện",
|
|
24
|
+
"search_no_result": "Không tìm thấy kết quả phù hợp.",
|
|
24
25
|
"download": "Tải xuống",
|
|
25
26
|
"active_sessions": "Đang mở",
|
|
26
27
|
"closed_sessions": "Đã hoàn thành",
|
|
@@ -67,6 +68,7 @@
|
|
|
67
68
|
"update_note_failed": "Cập nhật ghi chú thất bại",
|
|
68
69
|
"copied_to_clipboard": "Đã sao chép",
|
|
69
70
|
"message_send_failed": "Gửi tin nhắn thất bại, bạn vui lòng <bold>nhấn để gửi lại</bold>",
|
|
71
|
+
"message_send_pending": "Tin nhắn vẫn đang được gửi, vui lòng chờ trước khi gửi lại",
|
|
70
72
|
"message_send_failed_no_retry": "Gửi tin nhắn thất bại",
|
|
71
73
|
"context_menu_reply": "Trả lời",
|
|
72
74
|
"context_menu_pin": "Ghim",
|
|
@@ -80,7 +82,7 @@
|
|
|
80
82
|
"unpin_message_success": "Đã bỏ ghim tin nhắn",
|
|
81
83
|
"unpin_message_failed": "Bỏ ghim tin nhắn thất bại",
|
|
82
84
|
"pinned_from_text": "Tin nhắn từ {{name}}",
|
|
83
|
-
"pinned_from_link": "
|
|
85
|
+
"pinned_from_link": "Tin nhắn từ {{name}}",
|
|
84
86
|
"pinned_from_image": "Hình ảnh từ {{name}}",
|
|
85
87
|
"pinned_from_video": "Video từ {{name}}",
|
|
86
88
|
"pinned_from_file": "Tài liệu từ {{name}}",
|
|
@@ -117,25 +119,32 @@
|
|
|
117
119
|
"invalid_image_format": "{{fileName}} không đúng định dạng JPG, JPEG, PNG",
|
|
118
120
|
"invalid_file_format": "{{fileName}} không đúng định dạng JPG, JPEG, PNG hoặc VIDEO",
|
|
119
121
|
"file_size_exceeded": "{{fileName}} có kích thước tập tin vượt quá {{maxSize}}MB",
|
|
120
|
-
"
|
|
122
|
+
"obefe_file_size_exceeded": "'{{fileName}}' có kích thước tập tin vượt quá {{maxSize}}MB",
|
|
123
|
+
"avatar_invalid_format": "Vui lòng dùng file PNG, JPG, JPEG, WEBP",
|
|
121
124
|
"avatar_size_exceeded": "Vui lòng dùng ảnh dưới {{maxSize}}MB",
|
|
125
|
+
"biz_image_size_exceeded": "Hình ảnh tải lên không hợp lệ. Kích thước hình ảnh không được vượt quá {{maxSize}}mb",
|
|
126
|
+
"biz_video_size_exceeded": "Video tải lên không hợp lệ. Kích thước video không được vượt quá {{maxSize}}MB",
|
|
127
|
+
"biz_document_size_exceeded": "Tệp tải lên không hợp lệ. Kích thước tệp không được vượt quá {{maxSize}}MB",
|
|
128
|
+
"biz_image_invalid_format": "Hình ảnh tải lên không hợp lệ. Chỉ hỗ trợ định dạng JPG, JPEG, PNG",
|
|
129
|
+
"biz_media_invalid_format": "Hình ảnh hoặc video tải lên không hợp lệ. Chỉ hỗ trợ định dạng JPG, JPEG, PNG hoặc VIDEO",
|
|
130
|
+
"biz_document_invalid_format": "Tệp tải lên không hợp lệ. Chỉ hỗ trợ định dạng file word, pdf",
|
|
122
131
|
"file_processing_error": "Đã xảy ra lỗi khi xử lý tệp",
|
|
123
132
|
"invalid_document_format": "{{fileName}} không đúng định dạng (chỉ hỗ trợ PDF, DOC, DOCX)",
|
|
124
133
|
"view_message": "Xem tin nhắn",
|
|
125
134
|
"search_message_title": "Tìm kiếm tin nhắn",
|
|
126
135
|
"msg_type_image": "[Hình ảnh]",
|
|
127
136
|
"msg_type_voice": "[Tin nhắn thoại]",
|
|
128
|
-
"msg_type_file": "[
|
|
137
|
+
"msg_type_file": "[File]",
|
|
129
138
|
"msg_type_video": "[Video]",
|
|
130
|
-
"msg_type_sticker": "[
|
|
139
|
+
"msg_type_sticker": "[Sticker]",
|
|
131
140
|
"msg_type_unsupported": "Tin nhắn không khả dụng",
|
|
132
141
|
"msg_type_order": "[Đơn hàng] {{orderCode}}",
|
|
133
142
|
"group_notification_created": "{{name}} đã tạo nhóm",
|
|
134
143
|
"group_notification_info_updated": "{{name}} đã cập nhật thông tin nhóm",
|
|
135
|
-
"group_notification_name_updated": "{{name}} đã đổi tên nhóm thành
|
|
144
|
+
"group_notification_name_updated": "{{name}} đã đổi tên nhóm thành {{groupName}}",
|
|
136
145
|
"group_notification_announcement_updated": "{{name}} đã cập nhật thông báo nhóm",
|
|
137
146
|
"group_notification_member_quit": "{{name}} đã rời nhóm",
|
|
138
|
-
"group_notification_owner_transferred": "{{name}} đã chuyển quyền
|
|
147
|
+
"group_notification_owner_transferred": "{{name}} đã chuyển quyền chủ nhóm cho {{newOwner}}",
|
|
139
148
|
"group_notification_member_kicked": "{{name}} đã xóa {{members}} khỏi nhóm",
|
|
140
149
|
"group_notification_member_invited": "{{name}} đã thêm {{members}} vào nhóm",
|
|
141
150
|
"group_notification_member_enter": "{{name}} đã tham gia nhóm",
|
|
@@ -145,18 +154,28 @@
|
|
|
145
154
|
"group_notification_member_cancel_muted": "{{name}} đã bật lại quyền gửi tin nhắn của {{target}}",
|
|
146
155
|
"group_notification_muted": "{{name}} đã tắt quyền gửi tin nhắn của cả nhóm",
|
|
147
156
|
"group_notification_cancel_muted": "{{name}} đã bật lại quyền gửi tin nhắn của cả nhóm",
|
|
148
|
-
"group_notification_member_set_admin": "{{name}} đã
|
|
157
|
+
"group_notification_member_set_admin": "{{name}} đã đặt {{target}} làm quản trị viên",
|
|
149
158
|
"group_notification_message_pinned": "{{name}} đã ghim một tin nhắn",
|
|
150
159
|
"group_notification_message_unpinned": "{{name}} đã bỏ ghim một tin nhắn",
|
|
151
160
|
"invalid_message": "Tin nhắn không hợp lệ",
|
|
152
161
|
"consultant_chat_button": "Nhắn với người hướng dẫn",
|
|
153
162
|
"session_started": "Phiên chat đã bắt đầu",
|
|
154
163
|
"session_ended": "Phiên chat đã kết thúc",
|
|
164
|
+
"system_log_viewer": "bạn",
|
|
165
|
+
"system_log_viewer_start": "Bạn",
|
|
166
|
+
"system_log_self": "chính mình",
|
|
167
|
+
"system_log_actor_reassign": "{{actor}} đã bỏ phân công {{old}} và phân công cho {{new}}",
|
|
168
|
+
"system_log_actor_first_assign": "{{actor}} đã phân công cho {{new}}",
|
|
169
|
+
"system_log_auto_assign": "Hệ thống đã phân công cho {{new}}",
|
|
170
|
+
"system_log_supporter_join": "{{new}} đã tham gia nhóm",
|
|
171
|
+
"system_log_auto_reassign": "Phân công tự động: hệ thống đã bỏ phân công {{old}} và phân công cho {{new}}",
|
|
172
|
+
"system_log_remove_member": "Hệ thống đã xóa {{old}} khỏi nhóm",
|
|
173
|
+
"system_log_supporter_leave": "{{actor}} đã rời khỏi nhóm",
|
|
155
174
|
"new_message": "Bạn có tin nhắn mới",
|
|
156
175
|
"close_session_success": "Đóng phiên chat thành công",
|
|
157
176
|
"close_session_failed": "Đóng phiên chat thất bại",
|
|
158
177
|
"session_active": "Đang hoạt động",
|
|
159
|
-
"session_add_tag_placeholder": "Thêm th
|
|
178
|
+
"session_add_tag_placeholder": "Thêm thẻ…",
|
|
160
179
|
"session_issue_detail_placeholder": "Thêm vấn đề cụ thể…",
|
|
161
180
|
"session_note_placeholder": "Thêm ghi chú…",
|
|
162
181
|
"session_close_button": "Kết thúc phiên",
|
|
@@ -176,12 +195,12 @@
|
|
|
176
195
|
"mute_member_success": "Đã tắt quyền gửi tin nhắn",
|
|
177
196
|
"unmute_member_success": "Đã bật lại quyền gửi tin nhắn",
|
|
178
197
|
"send_message": "Gửi tin nhắn",
|
|
179
|
-
"transfer_owner": "Chuyển quyền
|
|
180
|
-
"transfer_owner_success": "Đã chuyển quyền
|
|
181
|
-
"transfer_owner_confirm_title": "Chuyển quyền
|
|
182
|
-
"transfer_owner_confirm_message": "Bạn có chắc muốn chuyển quyền
|
|
183
|
-
"assign_as_admin": "
|
|
184
|
-
"assign_as_admin_success": "Đã
|
|
198
|
+
"transfer_owner": "Chuyển quyền chủ nhóm",
|
|
199
|
+
"transfer_owner_success": "Đã chuyển quyền chủ nhóm",
|
|
200
|
+
"transfer_owner_confirm_title": "Chuyển quyền chủ nhóm",
|
|
201
|
+
"transfer_owner_confirm_message": "Bạn có chắc muốn chuyển quyền chủ nhóm cho {{name}}?",
|
|
202
|
+
"assign_as_admin": "Cấp quyền quản trị viên",
|
|
203
|
+
"assign_as_admin_success": "Đã cấp quyền quản trị viên",
|
|
185
204
|
"assign_admin_confirm_title": "Cấp quyền quản trị viên",
|
|
186
205
|
"assign_admin_confirm_message": "Bạn chắc chắn muốn cấp quyền quản trị viên cho \"{{name}}\"?",
|
|
187
206
|
"agree": "Đồng ý",
|
|
@@ -304,6 +323,7 @@
|
|
|
304
323
|
"folder_panel_expand": "Mở rộng thư mục",
|
|
305
324
|
"folder_panel_open": "Mở thư mục",
|
|
306
325
|
"folder_panel_close": "Đóng thư mục",
|
|
326
|
+
"folder_empty_open": "Không có phiên đang mở",
|
|
307
327
|
"folder_empty_slow_processing": "Không có phiên quá hạn",
|
|
308
328
|
"folder_empty_waiting_process": "Không có phiên đang chờ",
|
|
309
329
|
"folder_empty_awaiting_reply": "Không có phiên chưa trả lời",
|
|
@@ -460,7 +480,7 @@
|
|
|
460
480
|
"group_owner_chip": "Chủ nhóm",
|
|
461
481
|
"send_disabled_chip": "Đã tắt gửi tin",
|
|
462
482
|
"member_actions_for": "Thao tác với {{name}}",
|
|
463
|
-
"transfer_owner_hint": "Bạn sẽ trở thành
|
|
483
|
+
"transfer_owner_hint": "Bạn sẽ trở thành quản trị viên",
|
|
464
484
|
"need_remove_member_permission": "Cần quyền xoá thành viên",
|
|
465
485
|
"cannot_remove_group_owner": "Không thể xoá chủ nhóm",
|
|
466
486
|
"leave_group_assignee_reason": "Bạn đang được phân công phiên chat đang xử lý",
|
|
@@ -43,7 +43,7 @@
|
|
|
43
43
|
"members_label": "Thành viên",
|
|
44
44
|
"members_owner_note": "· bạn là chủ nhóm",
|
|
45
45
|
"search_label": "Tìm người",
|
|
46
|
-
"search_by_name": "Tìm theo tên
|
|
46
|
+
"search_by_name": "Tìm theo tên",
|
|
47
47
|
"selected_title": "Đã chọn · {{count}}",
|
|
48
48
|
"remove_selected": "Bỏ chọn {{name}}",
|
|
49
49
|
"selected_footer": "{{count}} thành viên được chọn",
|
|
@@ -152,6 +152,7 @@
|
|
|
152
152
|
"inactive_notice": "Người dùng này không còn khả dụng",
|
|
153
153
|
"menu": {
|
|
154
154
|
"title": "Gợi ý",
|
|
155
|
+
"description": "Bạn cần hỗ trợ gì?",
|
|
155
156
|
"trigger": "Gợi ý khác",
|
|
156
157
|
"open_menu": "Xem gợi ý khác"
|
|
157
158
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/screens/conversation-detail/index.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/screens/conversation-detail/index.tsx"],"names":[],"mappings":"AA0BA,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,kCAAkC,CAAC;AAarF,OAAO,EAEL,KAAK,4BAA4B,EAClC,MAAM,6CAA6C,CAAC;AASrD,MAAM,WAAW,4BACf,SAAQ,4BAA4B,EAClC,4BAA4B;IAC9B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB;;;OAGG;IACH,iBAAiB,CAAC,EAAE,CAAC,cAAc,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,KAAK,IAAI,CAAC;IAC1E,kGAAkG;IAClG,sBAAsB,CAAC,EAAE,MAAM,IAAI,CAAC;IACpC,oHAAoH;IACpH,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,6GAA6G;IAC7G,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B;AAED,QAAA,MAAM,uBAAuB,GAAI,oLAgB9B,4BAA4B,mDAiU9B,CAAC;AAEF,eAAe,uBAAuB,CAAC"}
|