@webinex/chatify 2.0.0-alpha12 → 2.0.0-alpha14

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (144) hide show
  1. package/dist/{Chatify-CwAfN1wu.js → Chatify-CP2jgo8d.js} +191 -118
  2. package/dist/Chatify-CP2jgo8d.js.map +1 -0
  3. package/dist/Chatify.css +28 -0
  4. package/dist/audit.js +3 -2
  5. package/dist/audit.js.map +1 -1
  6. package/dist/index.js +1 -1
  7. package/dist/types/audit/index.d.ts +17 -15
  8. package/dist/types/core/api/api.d.ts +146 -0
  9. package/dist/types/ui/Chat/ChatContext.d.ts +2 -0
  10. package/dist/types/ui/Chat/ChatPanel.d.ts +7 -0
  11. package/dist/types/ui/Chat/ChatView.d.ts +4 -2
  12. package/dist/types/ui/ChatGroup/ChatGroupContext.d.ts +4 -1
  13. package/dist/types/ui/ChatGroup/ChatGroupPanel.d.ts +21 -2
  14. package/dist/types/ui/Conversation/Conversation.d.ts +1 -0
  15. package/dist/types/ui/Conversation/ConversationContext.d.ts +1 -0
  16. package/dist/types/ui/Conversation/ConversationHeader.d.ts +4 -1
  17. package/dist/types/ui/localizer.d.ts +4 -1
  18. package/dist/types/ui/useCompact.d.ts +4 -0
  19. package/package.json +81 -81
  20. package/src/audit/AuditChatList.tsx +25 -25
  21. package/src/audit/AuditConversationPanel.tsx +49 -48
  22. package/src/audit/AuditPanel.tsx +76 -76
  23. package/src/audit/AuditPanelCustomizeValue.ts +11 -11
  24. package/src/audit/AuditSearch.tsx +89 -89
  25. package/src/audit/AuditSearchValue.tsx +42 -42
  26. package/src/audit/auditApi.tsx +113 -113
  27. package/src/audit/index.d.ts +18 -18
  28. package/src/audit/index.tsx +28 -28
  29. package/src/audit/styles.scss +72 -72
  30. package/src/core/api/api.ts +675 -669
  31. package/src/core/api/baseApi.ts +38 -38
  32. package/src/core/api/index.ts +1 -1
  33. package/src/core/client.ts +298 -298
  34. package/src/core/constants.ts +1 -1
  35. package/src/core/debounce.ts +90 -90
  36. package/src/core/index.ts +4 -4
  37. package/src/core/types.tsx +182 -182
  38. package/src/index.ts +2 -2
  39. package/src/styles/aside.scss +34 -26
  40. package/src/styles/chat-list.scss +138 -138
  41. package/src/styles/chat.scss +11 -11
  42. package/src/styles/conversation.scss +199 -200
  43. package/src/styles/index.scss +227 -220
  44. package/src/styles/input.scss +148 -148
  45. package/src/styles/keyframes.scss +14 -14
  46. package/src/styles/members.scss +30 -13
  47. package/src/styles/mixins.scss +38 -25
  48. package/src/styles/variables.scss +13 -13
  49. package/src/ui/Chat/ChatContext.tsx +32 -30
  50. package/src/ui/Chat/ChatEditableHeaderName.tsx +63 -63
  51. package/src/ui/Chat/ChatHeaderActions.tsx +19 -19
  52. package/src/ui/Chat/ChatPanel.tsx +46 -30
  53. package/src/ui/Chat/ChatView.tsx +122 -115
  54. package/src/ui/Chat/Members/ChatMembersButton.tsx +9 -9
  55. package/src/ui/Chat/Members/ChatMembersPanel.tsx +128 -112
  56. package/src/ui/Chat/Members/ChatMembersPreview.tsx +25 -25
  57. package/src/ui/Chat/Members/index.ts +13 -13
  58. package/src/ui/Chat/index.ts +6 -6
  59. package/src/ui/ChatGroup/AutoReply/AutoReplyButton.tsx +21 -21
  60. package/src/ui/ChatGroup/AutoReply/AutoReplyForm.tsx +50 -50
  61. package/src/ui/ChatGroup/AutoReply/AutoReplyPanel.tsx +94 -94
  62. package/src/ui/ChatGroup/AutoReply/AutoReplyPeriodInput.tsx +22 -22
  63. package/src/ui/ChatGroup/AutoReply/AutoReplyTextInput.tsx +22 -22
  64. package/src/ui/ChatGroup/AutoReply/index.ts +19 -19
  65. package/src/ui/ChatGroup/ChatGroupContext.tsx +63 -61
  66. package/src/ui/ChatGroup/ChatGroupPanel.tsx +110 -75
  67. package/src/ui/ChatGroup/Create/CreateChatButton.tsx +15 -15
  68. package/src/ui/ChatGroup/Create/CreateChatForm.tsx +36 -36
  69. package/src/ui/ChatGroup/Create/CreateChatMemberInput.tsx +65 -65
  70. package/src/ui/ChatGroup/Create/CreateChatNameInput.tsx +25 -25
  71. package/src/ui/ChatGroup/Create/CreateChatPanel.tsx +45 -45
  72. package/src/ui/ChatGroup/Create/index.ts +19 -19
  73. package/src/ui/ChatGroup/Layout/ChatGroupActions.tsx +15 -15
  74. package/src/ui/ChatGroup/Layout/ChatGroupAside.tsx +12 -12
  75. package/src/ui/ChatGroup/Layout/ChatGroupBody.tsx +17 -10
  76. package/src/ui/ChatGroup/Layout/ChatGroupFooter.tsx +3 -3
  77. package/src/ui/ChatGroup/Layout/ChatGroupHeader.tsx +5 -5
  78. package/src/ui/ChatGroup/Layout/ChatGroupMain.tsx +21 -19
  79. package/src/ui/ChatGroup/Layout/index.ts +22 -22
  80. package/src/ui/ChatGroup/List/ChatListPanel.tsx +28 -28
  81. package/src/ui/ChatGroup/List/index.ts +8 -8
  82. package/src/ui/ChatGroup/index.ts +6 -6
  83. package/src/ui/Chatify.tsx +15 -15
  84. package/src/ui/Conversation/Conversation.tsx +96 -92
  85. package/src/ui/Conversation/ConversationActions.tsx +12 -12
  86. package/src/ui/Conversation/ConversationBody.tsx +28 -28
  87. package/src/ui/Conversation/ConversationContext.ts +31 -30
  88. package/src/ui/Conversation/ConversationHeader.tsx +35 -19
  89. package/src/ui/Conversation/ConversationName.tsx +7 -7
  90. package/src/ui/Conversation/InputBox/InputBox.tsx +126 -126
  91. package/src/ui/Conversation/InputBox/InputBoxFile.tsx +38 -38
  92. package/src/ui/Conversation/InputBox/InputBoxFileList.tsx +21 -21
  93. package/src/ui/Conversation/InputBox/InputFilesBox.tsx +78 -78
  94. package/src/ui/Conversation/InputBox/InputSubmitButtonBox.tsx +26 -26
  95. package/src/ui/Conversation/InputBox/InputTextBox.tsx +63 -61
  96. package/src/ui/Conversation/InputBox/index.ts +23 -23
  97. package/src/ui/Conversation/Message/MessageAuthor.tsx +13 -13
  98. package/src/ui/Conversation/Message/MessageBox.tsx +20 -20
  99. package/src/ui/Conversation/Message/MessageContent.tsx +15 -15
  100. package/src/ui/Conversation/Message/MessageFile.tsx +54 -54
  101. package/src/ui/Conversation/Message/MessageFileList.tsx +14 -14
  102. package/src/ui/Conversation/Message/MessageInfoBox.tsx +28 -28
  103. package/src/ui/Conversation/Message/MessageRow.tsx +28 -28
  104. package/src/ui/Conversation/Message/MessageText.tsx +7 -7
  105. package/src/ui/Conversation/Message/index.ts +28 -28
  106. package/src/ui/Conversation/NextObserver/NextMessagesObserver.tsx +47 -47
  107. package/src/ui/Conversation/NextObserver/index.ts +1 -1
  108. package/src/ui/Conversation/ReadObserver/MessageReadObserver.tsx +49 -49
  109. package/src/ui/Conversation/ReadObserver/index.ts +1 -1
  110. package/src/ui/Conversation/SendingMessage/SendingMessageBox.tsx +16 -16
  111. package/src/ui/Conversation/SendingMessage/SendingMessageContent.tsx +13 -13
  112. package/src/ui/Conversation/SendingMessage/SendingMessageInfoBox.tsx +13 -13
  113. package/src/ui/Conversation/SendingMessage/SendingMessageText.tsx +7 -7
  114. package/src/ui/Conversation/SendingMessage/index.ts +16 -16
  115. package/src/ui/Conversation/SystemMessage/SystemMessageBox.tsx +20 -20
  116. package/src/ui/Conversation/SystemMessage/SystemMessageRow.tsx +28 -28
  117. package/src/ui/Conversation/SystemMessage/index.ts +10 -10
  118. package/src/ui/Conversation/index.ts +13 -13
  119. package/src/ui/Thread/ThreadActions.tsx +22 -22
  120. package/src/ui/Thread/ThreadContext.ts +13 -13
  121. package/src/ui/Thread/ThreadPanel.tsx +128 -127
  122. package/src/ui/Thread/index.tsx +3 -3
  123. package/src/ui/color.ts +20 -20
  124. package/src/ui/common/Avatar.tsx +20 -20
  125. package/src/ui/common/ChatList/ChatList.tsx +83 -84
  126. package/src/ui/common/ChatList/ChatListItemAvatar.tsx +22 -22
  127. package/src/ui/common/ChatList/ChatListItemBox.tsx +32 -32
  128. package/src/ui/common/ChatList/ChatListItemLastMessage.tsx +15 -15
  129. package/src/ui/common/ChatList/ChatListItemLastMessageAuthor.tsx +15 -15
  130. package/src/ui/common/ChatList/ChatListItemLastMessageContent.tsx +21 -21
  131. package/src/ui/common/ChatList/ChatListItemLastMessageSentAt.tsx +22 -22
  132. package/src/ui/common/ChatList/ChatListItemName.tsx +8 -8
  133. package/src/ui/common/ChatList/ChatListItemUnreadCount.tsx +12 -12
  134. package/src/ui/common/ChatList/ChatListValue.ts +9 -9
  135. package/src/ui/common/ChatList/index.ts +32 -32
  136. package/src/ui/common/Icon.tsx +48 -48
  137. package/src/ui/common/MessageSkeleton.tsx +20 -20
  138. package/src/ui/common/index.ts +14 -14
  139. package/src/ui/customize.tsx +51 -51
  140. package/src/ui/index.ts +11 -11
  141. package/src/ui/localizer.tsx +148 -137
  142. package/src/ui/useCompact.tsx +32 -0
  143. package/src/ui/useFormatter.tsx +17 -17
  144. package/dist/Chatify-CwAfN1wu.js.map +0 -1
@@ -1,113 +1,113 @@
1
- import { PagingRule } from '@webinex/asky';
2
- import { Account, chatifyApi, File, ListSegment, Optional } from '@webinex/chatify';
3
-
4
- export interface GetAuditChatListQueryArgs {
5
- containsOneOfMembers: string[] | null;
6
- searchString: string | null;
7
- pagingRule: PagingRule | null;
8
- includeTotal: boolean | null;
9
- }
10
-
11
- export interface AuditChatResponse {
12
- id: string;
13
- workspaceId: string;
14
- name: string;
15
- createdAt: string;
16
- createdById: string;
17
- lastMessage: Optional<AuditChatMessage>;
18
- }
19
-
20
- export interface AuditChatMessage {
21
- id: string;
22
- authorId: string;
23
- sentAt: string;
24
- text: string | null;
25
- files: File[];
26
- sentBy: Account;
27
- }
28
-
29
- export interface AuditChatListItem {
30
- id: string;
31
- workspaceId: string;
32
- name: string;
33
- createdAt: string;
34
- createdById: string;
35
- lastMessage: AuditChatMessage;
36
- }
37
-
38
- export interface AuditChat {
39
- id: string;
40
- workspaceId: string;
41
- name: string;
42
- createdAt: string;
43
- createdById: string;
44
- }
45
-
46
- function qs(params: Record<string, any>): string {
47
- const query = new URLSearchParams();
48
- Object.entries(params).forEach(([key, value]) => {
49
- if (value !== null && value !== undefined) {
50
- query.append(key, typeof value === 'string' ? value : JSON.stringify(value));
51
- }
52
- });
53
-
54
- return query.toString();
55
- }
56
-
57
- export const auditApi = chatifyApi.injectEndpoints({
58
- endpoints: (build) => ({
59
- getAuditChatList: build.query<ListSegment<AuditChatListItem>, GetAuditChatListQueryArgs>({
60
- queryFn: async (args) =>
61
- chatifyApi.settings.client.axios
62
- .get<ListSegment<AuditChatResponse>>(`audit/chats?${qs({ query: args })}`)
63
- .then(({ data }) => ({
64
- data: {
65
- total: data.total,
66
- items: data.items.map(
67
- ({ lastMessage, ...x }): AuditChatListItem => ({ ...x, lastMessage: lastMessage.value! }),
68
- ),
69
- },
70
- }))
71
- .catch((error) => ({ error })),
72
- providesTags: ['chat', 'message'],
73
- }),
74
-
75
- getAuditChat: build.query<AuditChat, { id: string }>({
76
- queryFn: async (args) =>
77
- chatifyApi.settings.client.axios
78
- .get(`audit/chats/${encodeURIComponent(args.id)}`)
79
- .then(({ data }) => ({ data }))
80
- .catch((error) => ({ error })),
81
- providesTags: ['chat'],
82
- }),
83
-
84
- getAuditChatMessagesInfinite: build.infiniteQuery<
85
- ListSegment<AuditChatMessage>,
86
- { id: string },
87
- { skip: number; take: number }
88
- >({
89
- queryFn: async (args) => {
90
- const {
91
- pageParam,
92
- queryArg: { id },
93
- } = args;
94
-
95
- return chatifyApi.settings.client.axios
96
- .get(`audit/messages?${qs({ query: { chatId: id, pagingRule: pageParam, includeTotal: true } })}`)
97
- .then(({ data }) => ({ data }))
98
- .catch((error) => ({ error }));
99
- },
100
- infiniteQueryOptions: {
101
- initialPageParam: { skip: 0, take: 20 },
102
- getNextPageParam: (lastPage, _, lastPageParam) =>
103
- lastPage.total > lastPageParam.skip + lastPageParam.take
104
- ? {
105
- skip: lastPageParam.skip + lastPageParam.take,
106
- take: lastPageParam.take,
107
- }
108
- : undefined,
109
- },
110
- providesTags: ['message', 'chat'],
111
- }),
112
- }),
113
- });
1
+ import { PagingRule } from '@webinex/asky';
2
+ import { Account, chatifyApi, File, ListSegment, Optional } from '@webinex/chatify';
3
+
4
+ export interface GetAuditChatListQueryArgs {
5
+ containsOneOfMembers: string[] | null;
6
+ searchString: string | null;
7
+ pagingRule: PagingRule | null;
8
+ includeTotal: boolean | null;
9
+ }
10
+
11
+ export interface AuditChatResponse {
12
+ id: string;
13
+ workspaceId: string;
14
+ name: string;
15
+ createdAt: string;
16
+ createdById: string;
17
+ lastMessage: Optional<AuditChatMessage>;
18
+ }
19
+
20
+ export interface AuditChatMessage {
21
+ id: string;
22
+ authorId: string;
23
+ sentAt: string;
24
+ text: string | null;
25
+ files: File[];
26
+ sentBy: Account;
27
+ }
28
+
29
+ export interface AuditChatListItem {
30
+ id: string;
31
+ workspaceId: string;
32
+ name: string;
33
+ createdAt: string;
34
+ createdById: string;
35
+ lastMessage: AuditChatMessage;
36
+ }
37
+
38
+ export interface AuditChat {
39
+ id: string;
40
+ workspaceId: string;
41
+ name: string;
42
+ createdAt: string;
43
+ createdById: string;
44
+ }
45
+
46
+ function qs(params: Record<string, any>): string {
47
+ const query = new URLSearchParams();
48
+ Object.entries(params).forEach(([key, value]) => {
49
+ if (value !== null && value !== undefined) {
50
+ query.append(key, typeof value === 'string' ? value : JSON.stringify(value));
51
+ }
52
+ });
53
+
54
+ return query.toString();
55
+ }
56
+
57
+ export const auditApi = chatifyApi.injectEndpoints({
58
+ endpoints: (build) => ({
59
+ getAuditChatList: build.query<ListSegment<AuditChatListItem>, GetAuditChatListQueryArgs>({
60
+ queryFn: async (args) =>
61
+ chatifyApi.settings.client.axios
62
+ .get<ListSegment<AuditChatResponse>>(`audit/chats?${qs({ query: args })}`)
63
+ .then(({ data }) => ({
64
+ data: {
65
+ total: data.total,
66
+ items: data.items.map(
67
+ ({ lastMessage, ...x }): AuditChatListItem => ({ ...x, lastMessage: lastMessage.value! }),
68
+ ),
69
+ },
70
+ }))
71
+ .catch((error) => ({ error })),
72
+ providesTags: ['chat', 'message'],
73
+ }),
74
+
75
+ getAuditChat: build.query<AuditChat, { id: string }>({
76
+ queryFn: async (args) =>
77
+ chatifyApi.settings.client.axios
78
+ .get(`audit/chats/${encodeURIComponent(args.id)}`)
79
+ .then(({ data }) => ({ data }))
80
+ .catch((error) => ({ error })),
81
+ providesTags: ['chat'],
82
+ }),
83
+
84
+ getAuditChatMessagesInfinite: build.infiniteQuery<
85
+ ListSegment<AuditChatMessage>,
86
+ { id: string },
87
+ { skip: number; take: number }
88
+ >({
89
+ queryFn: async (args) => {
90
+ const {
91
+ pageParam,
92
+ queryArg: { id },
93
+ } = args;
94
+
95
+ return chatifyApi.settings.client.axios
96
+ .get(`audit/messages?${qs({ query: { chatId: id, pagingRule: pageParam, includeTotal: true } })}`)
97
+ .then(({ data }) => ({ data }))
98
+ .catch((error) => ({ error }));
99
+ },
100
+ infiniteQueryOptions: {
101
+ initialPageParam: { skip: 0, take: 20 },
102
+ getNextPageParam: (lastPage, _, lastPageParam) =>
103
+ lastPage.total > lastPageParam.skip + lastPageParam.take
104
+ ? {
105
+ skip: lastPageParam.skip + lastPageParam.take,
106
+ take: lastPageParam.take,
107
+ }
108
+ : undefined,
109
+ },
110
+ providesTags: ['message', 'chat'],
111
+ }),
112
+ }),
113
+ });
@@ -1,18 +1,18 @@
1
- import { Account } from '@/core';
2
- import { AuditPanel } from './AuditPanel';
3
-
4
- declare module '@webinex/chatify' {
5
- interface ChatifyType {
6
- Audit: typeof AuditPanel;
7
- }
8
-
9
- interface Localizer {
10
- audit: {
11
- searchPlaceholder: string;
12
- noChatFound: string;
13
- noInputBlurb: string;
14
- textSearchOption: (searchValue: string) => JSX.Element;
15
- memberSearchOption: (account: Account) => JSX.Element;
16
- };
17
- }
18
- }
1
+ import { Account } from '@/core';
2
+ import { AuditPanel } from './AuditPanel';
3
+
4
+ declare module '@webinex/chatify' {
5
+ interface ChatifyType {
6
+ Audit: typeof AuditPanel;
7
+ }
8
+
9
+ interface Localizer {
10
+ audit: {
11
+ searchPlaceholder: string;
12
+ noChatFound: string;
13
+ noInputBlurb: string;
14
+ textSearchOption: (searchValue: string) => JSX.Element;
15
+ memberSearchOption: (account: Account) => JSX.Element;
16
+ };
17
+ }
18
+ }
@@ -1,28 +1,28 @@
1
- import { Space } from 'antd';
2
- import { AuditPanel } from './AuditPanel';
3
- import './index.d';
4
- import './styles.scss';
5
- import { Avatar, Chatify, defaultLocalizer } from '@webinex/chatify';
6
-
7
- export * from './AuditPanel';
8
- export * from './AuditPanelCustomizeValue';
9
- export * from './AuditChatList';
10
- export * from './AuditSearchValue';
11
- export * from './AuditSearch';
12
- export * from './auditApi';
13
- export * from './AuditConversationPanel';
14
-
15
- Chatify.Audit = AuditPanel;
16
-
17
- defaultLocalizer.audit = {
18
- searchPlaceholder: 'Search chats by chat name or member name',
19
- noChatFound: 'No chats found',
20
- noInputBlurb: 'Start typing to search',
21
- textSearchOption: (text) => <span>{`Chat name includes "${text}"`}</span>,
22
- memberSearchOption: (account) => (
23
- <Space>
24
- <Avatar account={account} />
25
- {`Chat includes "${account.name}"`}
26
- </Space>
27
- ),
28
- };
1
+ import { Space } from 'antd';
2
+ import { AuditPanel } from './AuditPanel';
3
+ import './index.d';
4
+ import './styles.scss';
5
+ import { Avatar, Chatify, defaultLocalizer } from '@webinex/chatify';
6
+
7
+ export * from './AuditPanel';
8
+ export * from './AuditPanelCustomizeValue';
9
+ export * from './AuditChatList';
10
+ export * from './AuditSearchValue';
11
+ export * from './AuditSearch';
12
+ export * from './auditApi';
13
+ export * from './AuditConversationPanel';
14
+
15
+ Chatify.Audit = AuditPanel;
16
+
17
+ defaultLocalizer.audit = {
18
+ searchPlaceholder: 'Search chats by chat name or member name',
19
+ noChatFound: 'No chats found',
20
+ noInputBlurb: 'Start typing to search',
21
+ textSearchOption: (text) => <span>{`Chat name includes "${text}"`}</span>,
22
+ memberSearchOption: (account) => (
23
+ <Space>
24
+ <Avatar account={account} />
25
+ {`Chat includes "${account.name}"`}
26
+ </Space>
27
+ ),
28
+ };
@@ -1,72 +1,72 @@
1
- @use '../styles/variables.scss' as vars;
2
- @use '../styles/mixins.scss' as mixins;
3
-
4
- .wxchtf-audit-panel {
5
- display: flex;
6
- flex-flow: column nowrap;
7
- background: vars.$background;
8
- border-radius: vars.$radius;
9
-
10
- .wxchtf-search {
11
- text-align: center;
12
- flex: none;
13
- padding-block: 0.5rem;
14
- position: relative;
15
-
16
- &::before {
17
- content: '';
18
- position: absolute;
19
- left: 0;
20
- right: 0;
21
- bottom: 0;
22
- height: 50px;
23
- pointer-events: none;
24
- background: linear-gradient(to top, #006e720a, #0000 30%);
25
- }
26
-
27
- .wxchtf-search-select {
28
- width: 100%;
29
- max-width: 700px;
30
- }
31
- }
32
-
33
- .wxchtf-chat-list {
34
- flex: 1;
35
- padding-top: 8px;
36
- height: 100%;
37
- min-height: 0;
38
- border-bottom-left-radius: vars.$radius;
39
- border-bottom-right-radius: vars.$radius;
40
- }
41
-
42
- .wxchtf-audit-body {
43
- min-height: 0;
44
-
45
- .ant-empty {
46
- padding-top: 2rem;
47
- }
48
-
49
- &.--conversation-opened {
50
- display: flex;
51
- flex-flow: row nowrap;
52
- flex: 1;
53
-
54
- .wxchtf-chat-list {
55
- flex: none;
56
- height: 100%;
57
- min-height: 0;
58
- width: 400px;
59
- border-bottom-left-radius: vars.$radius;
60
- border-bottom-right-radius: 0;
61
- }
62
-
63
- .wxchtf-conversation {
64
- z-index: 2;
65
- min-width: 0;
66
- box-shadow: 0px 6px 30px 0px #0cd9e214, 0px 1px 12px 0px #006e720f;
67
- border-bottom-right-radius: vars.$radius;
68
- overflow: hidden;
69
- }
70
- }
71
- }
72
- }
1
+ @use '../styles/variables.scss' as vars;
2
+ @use '../styles/mixins.scss' as mixins;
3
+
4
+ .wxchtf-audit-panel {
5
+ display: flex;
6
+ flex-flow: column nowrap;
7
+ background: vars.$background;
8
+ border-radius: vars.$radius;
9
+
10
+ .wxchtf-search {
11
+ text-align: center;
12
+ flex: none;
13
+ padding-block: 0.5rem;
14
+ position: relative;
15
+
16
+ &::before {
17
+ content: '';
18
+ position: absolute;
19
+ left: 0;
20
+ right: 0;
21
+ bottom: 0;
22
+ height: 50px;
23
+ pointer-events: none;
24
+ background: linear-gradient(to top, #006e720a, #0000 30%);
25
+ }
26
+
27
+ .wxchtf-search-select {
28
+ width: 100%;
29
+ max-width: 700px;
30
+ }
31
+ }
32
+
33
+ .wxchtf-chat-list {
34
+ flex: 1;
35
+ padding-top: 8px;
36
+ height: 100%;
37
+ min-height: 0;
38
+ border-bottom-left-radius: vars.$radius;
39
+ border-bottom-right-radius: vars.$radius;
40
+ }
41
+
42
+ .wxchtf-audit-body {
43
+ min-height: 0;
44
+
45
+ .ant-empty {
46
+ padding-top: 2rem;
47
+ }
48
+
49
+ &.--conversation-opened {
50
+ display: flex;
51
+ flex-flow: row nowrap;
52
+ flex: 1;
53
+
54
+ .wxchtf-chat-list {
55
+ flex: none;
56
+ height: 100%;
57
+ min-height: 0;
58
+ width: 400px;
59
+ border-bottom-left-radius: vars.$radius;
60
+ border-bottom-right-radius: 0;
61
+ }
62
+
63
+ .wxchtf-conversation {
64
+ z-index: 2;
65
+ min-width: 0;
66
+ box-shadow: 0px 6px 30px 0px #0cd9e214, 0px 1px 12px 0px #006e720f;
67
+ border-bottom-right-radius: vars.$radius;
68
+ overflow: hidden;
69
+ }
70
+ }
71
+ }
72
+ }