@webinex/chatify 1.0.0-rc2 → 1.0.1-rc3

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 (273) hide show
  1. package/dist/css/chatify.css +183 -141
  2. package/dist/esm/index.js +1 -1
  3. package/dist/esm/index.js.map +1 -1
  4. package/dist/esm/types/core/action.d.ts +110 -42
  5. package/dist/esm/types/core/client.d.ts +2 -1
  6. package/dist/esm/types/core/index.d.ts +11 -8
  7. package/dist/esm/types/core/models.d.ts +10 -4
  8. package/dist/esm/types/core/state.d.ts +36 -7
  9. package/dist/esm/types/core/useAddChatMutation.d.ts +2 -0
  10. package/dist/esm/types/core/useAddMemberMutation.d.ts +2 -0
  11. package/dist/esm/types/core/useFetchNextMutation.d.ts +3 -0
  12. package/dist/esm/types/core/useGetAccountsQuery.d.ts +1 -0
  13. package/dist/esm/types/core/useGetChatListQuery.d.ts +1 -0
  14. package/dist/{cjs/types/core/useChat.d.ts → esm/types/core/useGetChatQuery.d.ts} +1 -1
  15. package/dist/esm/types/core/useGetMessagesQuery.d.ts +4 -0
  16. package/dist/esm/types/core/useRemoveMemberMutation.d.ts +2 -0
  17. package/dist/esm/types/core/useSendMutation.d.ts +2 -0
  18. package/dist/esm/types/core/useUpdateChatNameMutation.d.ts +2 -0
  19. package/dist/esm/types/ui/AddChatButton.d.ts +2 -2
  20. package/dist/esm/types/ui/Avatar.d.ts +2 -2
  21. package/dist/esm/types/ui/ChatList/ChatList.d.ts +2 -0
  22. package/dist/esm/types/ui/ChatList/ChatListItemBox.d.ts +6 -0
  23. package/dist/esm/types/ui/ChatList/ChatListItemLastMessage.d.ts +3 -0
  24. package/dist/esm/types/ui/ChatList/ChatListItemLastMessageAuthor.d.ts +3 -0
  25. package/dist/esm/types/ui/ChatList/ChatListItemLastMessageContent.d.ts +3 -0
  26. package/dist/esm/types/ui/ChatList/ChatListItemName.d.ts +3 -0
  27. package/dist/esm/types/ui/ChatList/ChatListItemUnreadCount.d.ts +3 -0
  28. package/dist/esm/types/ui/ChatList/index.d.ts +7 -0
  29. package/dist/esm/types/ui/ChatName.d.ts +2 -2
  30. package/dist/esm/types/ui/ChatPanel/ChatBody.d.ts +5 -0
  31. package/dist/esm/types/ui/ChatPanel/ChatHeader.d.ts +5 -0
  32. package/dist/esm/types/ui/ChatPanel/ChatHeaderMembers.d.ts +5 -0
  33. package/dist/esm/types/ui/ChatPanel/ChatHeaderName.d.ts +5 -0
  34. package/dist/esm/types/ui/ChatPanel/ChatMembersButton.d.ts +5 -0
  35. package/dist/esm/types/ui/ChatPanel/ChatMembersPanel.d.ts +5 -0
  36. package/dist/esm/types/ui/ChatPanel/ChatPanel.d.ts +5 -0
  37. package/dist/esm/types/ui/ChatPanel/index.d.ts +6 -0
  38. package/dist/esm/types/ui/Chatify.d.ts +45 -23
  39. package/dist/esm/types/ui/CreateChatPanel/CreateChatForm.d.ts +11 -0
  40. package/dist/esm/types/ui/CreateChatPanel/CreateChatMemberInput.d.ts +5 -0
  41. package/dist/esm/types/ui/CreateChatPanel/CreateChatNameInput.d.ts +5 -0
  42. package/dist/esm/types/ui/CreateChatPanel/CreateChatPanel.d.ts +2 -0
  43. package/dist/esm/types/ui/CreateChatPanel/index.d.ts +4 -0
  44. package/dist/esm/types/ui/Icon.d.ts +13 -4
  45. package/dist/esm/types/ui/InputBox/InputBox.d.ts +2 -0
  46. package/dist/esm/types/ui/InputBox/InputFilesBox.d.ts +2 -0
  47. package/dist/esm/types/ui/InputBox/InputSubmitButtonBox.d.ts +5 -0
  48. package/dist/esm/types/ui/InputBox/InputTextBox.d.ts +7 -0
  49. package/dist/esm/types/ui/InputBox/index.d.ts +4 -0
  50. package/dist/esm/types/ui/Layout/Aside.d.ts +2 -0
  51. package/dist/esm/types/ui/Layout/Body.d.ts +2 -0
  52. package/dist/esm/types/ui/Layout/Footer.d.ts +2 -0
  53. package/dist/esm/types/ui/Layout/Header.d.ts +2 -0
  54. package/dist/esm/types/ui/Layout/Main.d.ts +2 -0
  55. package/dist/esm/types/ui/Layout/index.d.ts +5 -0
  56. package/dist/esm/types/ui/Message/MessageAuthor.d.ts +3 -0
  57. package/dist/esm/types/ui/Message/MessageBox.d.ts +6 -0
  58. package/dist/esm/types/ui/Message/MessageContent.d.ts +3 -0
  59. package/dist/esm/types/ui/Message/MessageInfoBox.d.ts +3 -0
  60. package/dist/esm/types/ui/Message/MessageRow.d.ts +6 -0
  61. package/dist/esm/types/ui/Message/MessageText.d.ts +3 -0
  62. package/dist/esm/types/ui/Message/index.d.ts +6 -0
  63. package/dist/esm/types/ui/MessageReadObserver.d.ts +6 -0
  64. package/dist/esm/types/ui/Next.d.ts +4 -0
  65. package/dist/esm/types/ui/SendingMessage/SendingMessageBox.d.ts +7 -0
  66. package/dist/esm/types/ui/SendingMessage/SendingMessageContent.d.ts +3 -0
  67. package/dist/esm/types/ui/SendingMessage/SendingMessageInfoBox.d.ts +3 -0
  68. package/dist/esm/types/ui/SendingMessage/SendingMessageText.d.ts +3 -0
  69. package/dist/esm/types/ui/SendingMessage/index.d.ts +4 -0
  70. package/dist/esm/types/ui/SystemMessage/SystemMessageBox.d.ts +6 -0
  71. package/dist/esm/types/ui/SystemMessage/SystemMessageRow.d.ts +9 -0
  72. package/dist/esm/types/ui/SystemMessage/index.d.ts +2 -0
  73. package/dist/esm/types/{util → ui}/customize.d.ts +2 -3
  74. package/dist/esm/types/ui/index.d.ts +6 -6
  75. package/dist/esm/types/ui/localizer.d.ts +5 -0
  76. package/dist/esm/types/util/index.d.ts +0 -1
  77. package/dist/index.d.ts +353 -142
  78. package/package.json +92 -90
  79. package/src/ChatifyContext.tsx +41 -41
  80. package/src/core/action.tsx +405 -319
  81. package/src/core/client.ts +143 -137
  82. package/src/core/index.ts +17 -14
  83. package/src/core/models.tsx +82 -75
  84. package/src/core/reducer.tsx +87 -86
  85. package/src/core/state.ts +92 -38
  86. package/src/core/useAddChatMutation.tsx +22 -0
  87. package/src/core/useAddMemberMutation.tsx +25 -0
  88. package/src/core/useFetchNextMutation.tsx +28 -0
  89. package/src/core/useGetAccountsQuery.tsx +33 -0
  90. package/src/core/useGetChatListQuery.tsx +33 -0
  91. package/src/core/useGetChatQuery.tsx +34 -0
  92. package/src/core/useGetMessagesQuery.tsx +35 -0
  93. package/src/core/useReadMonitor.tsx +32 -31
  94. package/src/core/useRemoveMemberMutation.tsx +23 -0
  95. package/src/core/useSendMutation.tsx +24 -0
  96. package/src/core/useSignalRMonitor.tsx +66 -52
  97. package/src/core/useUpdateChatNameMutation.tsx +23 -0
  98. package/src/index.ts +3 -3
  99. package/src/{ui/styles → styles}/aside.scss +94 -94
  100. package/src/styles/chat.scss +222 -0
  101. package/src/styles/index.scss +79 -0
  102. package/src/{ui/styles → styles}/keyframes.scss +14 -14
  103. package/src/{ui/styles → styles}/mixins.scss +20 -20
  104. package/src/styles/settings.scss +5 -0
  105. package/src/{ui/styles → styles}/variables.scss +10 -10
  106. package/src/ui/AddChatButton.tsx +15 -19
  107. package/src/ui/Avatar.tsx +18 -18
  108. package/src/ui/ChatList/ChatList.tsx +42 -0
  109. package/src/ui/ChatList/ChatListItemBox.tsx +22 -0
  110. package/src/ui/ChatList/ChatListItemLastMessage.tsx +13 -0
  111. package/src/ui/ChatList/ChatListItemLastMessageAuthor.tsx +20 -0
  112. package/src/ui/ChatList/ChatListItemLastMessageContent.tsx +21 -0
  113. package/src/ui/ChatList/ChatListItemName.tsx +13 -0
  114. package/src/ui/ChatList/ChatListItemUnreadCount.tsx +12 -0
  115. package/src/ui/ChatList/index.ts +7 -0
  116. package/src/ui/ChatName.tsx +10 -15
  117. package/src/ui/ChatPanel/ChatBody.tsx +44 -0
  118. package/src/ui/ChatPanel/ChatHeader.tsx +33 -0
  119. package/src/ui/{ChatHeaderMembers.tsx → ChatPanel/ChatHeaderMembers.tsx} +26 -30
  120. package/src/ui/ChatPanel/ChatHeaderName.tsx +67 -0
  121. package/src/ui/ChatPanel/ChatMembersButton.tsx +21 -0
  122. package/src/ui/ChatPanel/ChatMembersPanel.tsx +117 -0
  123. package/src/ui/ChatPanel/ChatPanel.tsx +27 -0
  124. package/src/ui/ChatPanel/index.ts +6 -0
  125. package/src/ui/Chatify.tsx +148 -106
  126. package/src/ui/CreateChatPanel/CreateChatForm.tsx +36 -0
  127. package/src/ui/CreateChatPanel/CreateChatMemberInput.tsx +66 -0
  128. package/src/ui/CreateChatPanel/CreateChatNameInput.tsx +25 -0
  129. package/src/ui/CreateChatPanel/CreateChatPanel.tsx +33 -0
  130. package/src/ui/CreateChatPanel/index.ts +4 -0
  131. package/src/ui/Icon.tsx +33 -21
  132. package/src/ui/InputBox/InputBox.tsx +38 -0
  133. package/src/ui/InputBox/InputFilesBox.tsx +9 -0
  134. package/src/ui/InputBox/InputSubmitButtonBox.tsx +17 -0
  135. package/src/ui/InputBox/InputTextBox.tsx +50 -0
  136. package/src/ui/InputBox/index.ts +4 -0
  137. package/src/ui/Layout/Aside.tsx +10 -0
  138. package/src/ui/Layout/Body.tsx +10 -0
  139. package/src/ui/Layout/Footer.tsx +3 -0
  140. package/src/ui/Layout/Header.tsx +10 -0
  141. package/src/ui/Layout/Main.tsx +15 -0
  142. package/src/ui/Layout/index.ts +5 -0
  143. package/src/ui/Message/MessageAuthor.tsx +13 -0
  144. package/src/ui/Message/MessageBox.tsx +20 -0
  145. package/src/ui/Message/MessageContent.tsx +13 -0
  146. package/src/ui/Message/MessageInfoBox.tsx +25 -0
  147. package/src/ui/Message/MessageRow.tsx +24 -0
  148. package/src/ui/Message/MessageText.tsx +7 -0
  149. package/src/ui/Message/index.ts +6 -0
  150. package/src/ui/MessageReadObserver.tsx +45 -0
  151. package/src/ui/MessageSkeleton.tsx +19 -19
  152. package/src/ui/Next.tsx +48 -0
  153. package/src/ui/SendingMessage/SendingMessageBox.tsx +16 -0
  154. package/src/ui/SendingMessage/SendingMessageContent.tsx +13 -0
  155. package/src/ui/SendingMessage/SendingMessageInfoBox.tsx +13 -0
  156. package/src/ui/SendingMessage/SendingMessageText.tsx +7 -0
  157. package/src/ui/SendingMessage/index.ts +4 -0
  158. package/src/ui/SystemMessage/SystemMessageBox.tsx +20 -0
  159. package/src/ui/SystemMessage/SystemMessageRow.tsx +43 -0
  160. package/src/ui/SystemMessage/index.ts +2 -0
  161. package/src/{util → ui}/customize.tsx +45 -45
  162. package/src/ui/index.ts +11 -11
  163. package/src/ui/localizer.tsx +80 -68
  164. package/src/util/index.ts +2 -3
  165. package/src/util/uniqBy.tsx +17 -17
  166. package/src/util/uniqId.tsx +3 -3
  167. package/dist/cjs/index.js +0 -2
  168. package/dist/cjs/index.js.map +0 -1
  169. package/dist/cjs/types/ChatifyContext.d.ts +0 -11
  170. package/dist/cjs/types/core/action.d.ts +0 -76
  171. package/dist/cjs/types/core/client.d.ts +0 -35
  172. package/dist/cjs/types/core/index.d.ts +0 -14
  173. package/dist/cjs/types/core/models.d.ts +0 -64
  174. package/dist/cjs/types/core/reducer.d.ts +0 -11
  175. package/dist/cjs/types/core/state.d.ts +0 -25
  176. package/dist/cjs/types/core/useAccounts.d.ts +0 -1
  177. package/dist/cjs/types/core/useAddChat.d.ts +0 -2
  178. package/dist/cjs/types/core/useAddMember.d.ts +0 -2
  179. package/dist/cjs/types/core/useAddMessage.d.ts +0 -5
  180. package/dist/cjs/types/core/useChatList.d.ts +0 -1
  181. package/dist/cjs/types/core/useLoadMore.d.ts +0 -3
  182. package/dist/cjs/types/core/useMessages.d.ts +0 -15
  183. package/dist/cjs/types/core/useMutation.d.ts +0 -12
  184. package/dist/cjs/types/core/useQuery.d.ts +0 -7
  185. package/dist/cjs/types/core/useReadMonitor.d.ts +0 -1
  186. package/dist/cjs/types/core/useRemoveMember.d.ts +0 -2
  187. package/dist/cjs/types/core/useSignalRMonitor.d.ts +0 -2
  188. package/dist/cjs/types/index.d.ts +0 -3
  189. package/dist/cjs/types/ui/AddChat.d.ts +0 -1
  190. package/dist/cjs/types/ui/AddChatButton.d.ts +0 -2
  191. package/dist/cjs/types/ui/Aside.d.ts +0 -1
  192. package/dist/cjs/types/ui/Avatar.d.ts +0 -6
  193. package/dist/cjs/types/ui/Chat.d.ts +0 -4
  194. package/dist/cjs/types/ui/ChatBody.d.ts +0 -4
  195. package/dist/cjs/types/ui/ChatHeader.d.ts +0 -4
  196. package/dist/cjs/types/ui/ChatHeaderMembers.d.ts +0 -5
  197. package/dist/cjs/types/ui/ChatHeaderSettingsButton.d.ts +0 -5
  198. package/dist/cjs/types/ui/ChatListItem.d.ts +0 -11
  199. package/dist/cjs/types/ui/ChatName.d.ts +0 -5
  200. package/dist/cjs/types/ui/ChatSettings.d.ts +0 -1
  201. package/dist/cjs/types/ui/Chatify.d.ts +0 -49
  202. package/dist/cjs/types/ui/Footer.d.ts +0 -2
  203. package/dist/cjs/types/ui/Header.d.ts +0 -2
  204. package/dist/cjs/types/ui/Icon.d.ts +0 -7
  205. package/dist/cjs/types/ui/InputForm.d.ts +0 -1
  206. package/dist/cjs/types/ui/LoadMore.d.ts +0 -4
  207. package/dist/cjs/types/ui/Main.d.ts +0 -1
  208. package/dist/cjs/types/ui/Message.d.ts +0 -18
  209. package/dist/cjs/types/ui/MessageSkeleton.d.ts +0 -4
  210. package/dist/cjs/types/ui/SendingMessage.d.ts +0 -10
  211. package/dist/cjs/types/ui/SystemMessage.d.ts +0 -8
  212. package/dist/cjs/types/ui/index.d.ts +0 -11
  213. package/dist/cjs/types/ui/localizer.d.ts +0 -32
  214. package/dist/cjs/types/util/customize.d.ts +0 -12
  215. package/dist/cjs/types/util/index.d.ts +0 -3
  216. package/dist/cjs/types/util/uniqBy.d.ts +0 -1
  217. package/dist/cjs/types/util/uniqId.d.ts +0 -1
  218. package/dist/esm/types/core/useAccounts.d.ts +0 -1
  219. package/dist/esm/types/core/useAddChat.d.ts +0 -2
  220. package/dist/esm/types/core/useAddMember.d.ts +0 -2
  221. package/dist/esm/types/core/useAddMessage.d.ts +0 -5
  222. package/dist/esm/types/core/useChat.d.ts +0 -3
  223. package/dist/esm/types/core/useChatList.d.ts +0 -1
  224. package/dist/esm/types/core/useLoadMore.d.ts +0 -3
  225. package/dist/esm/types/core/useMessages.d.ts +0 -15
  226. package/dist/esm/types/core/useMutation.d.ts +0 -12
  227. package/dist/esm/types/core/useQuery.d.ts +0 -7
  228. package/dist/esm/types/core/useRemoveMember.d.ts +0 -2
  229. package/dist/esm/types/ui/AddChat.d.ts +0 -1
  230. package/dist/esm/types/ui/Aside.d.ts +0 -1
  231. package/dist/esm/types/ui/Chat.d.ts +0 -4
  232. package/dist/esm/types/ui/ChatBody.d.ts +0 -4
  233. package/dist/esm/types/ui/ChatHeader.d.ts +0 -4
  234. package/dist/esm/types/ui/ChatHeaderMembers.d.ts +0 -5
  235. package/dist/esm/types/ui/ChatHeaderSettingsButton.d.ts +0 -5
  236. package/dist/esm/types/ui/ChatListItem.d.ts +0 -11
  237. package/dist/esm/types/ui/ChatSettings.d.ts +0 -1
  238. package/dist/esm/types/ui/Footer.d.ts +0 -2
  239. package/dist/esm/types/ui/Header.d.ts +0 -2
  240. package/dist/esm/types/ui/InputForm.d.ts +0 -1
  241. package/dist/esm/types/ui/LoadMore.d.ts +0 -4
  242. package/dist/esm/types/ui/Main.d.ts +0 -1
  243. package/dist/esm/types/ui/Message.d.ts +0 -18
  244. package/dist/esm/types/ui/SendingMessage.d.ts +0 -10
  245. package/dist/esm/types/ui/SystemMessage.d.ts +0 -8
  246. package/src/core/useAccounts.tsx +0 -11
  247. package/src/core/useAddChat.tsx +0 -12
  248. package/src/core/useAddMember.tsx +0 -12
  249. package/src/core/useAddMessage.tsx +0 -40
  250. package/src/core/useChat.tsx +0 -12
  251. package/src/core/useChatList.tsx +0 -10
  252. package/src/core/useLoadMore.tsx +0 -42
  253. package/src/core/useMessages.tsx +0 -23
  254. package/src/core/useMutation.tsx +0 -48
  255. package/src/core/useQuery.tsx +0 -45
  256. package/src/core/useRemoveMember.tsx +0 -12
  257. package/src/ui/AddChat.tsx +0 -55
  258. package/src/ui/Aside.tsx +0 -41
  259. package/src/ui/Chat.tsx +0 -26
  260. package/src/ui/ChatBody.tsx +0 -43
  261. package/src/ui/ChatHeader.tsx +0 -33
  262. package/src/ui/ChatHeaderSettingsButton.tsx +0 -26
  263. package/src/ui/ChatListItem.tsx +0 -101
  264. package/src/ui/ChatSettings.tsx +0 -59
  265. package/src/ui/Footer.tsx +0 -7
  266. package/src/ui/Header.tsx +0 -14
  267. package/src/ui/InputForm.tsx +0 -51
  268. package/src/ui/LoadMore.tsx +0 -40
  269. package/src/ui/Main.tsx +0 -16
  270. package/src/ui/Message.tsx +0 -118
  271. package/src/ui/SendingMessage.tsx +0 -50
  272. package/src/ui/SystemMessage.tsx +0 -32
  273. package/src/ui/styles/index.scss +0 -248
@@ -1,118 +0,0 @@
1
- import { useMe } from '../ChatifyContext';
2
- import { FC, Ref, RefObject, useEffect, useMemo, useRef } from 'react';
3
- import { Message, useDispatch, useSelect } from '../core';
4
- import { customize } from '../util';
5
- import { useLocalizer } from './localizer';
6
- import { Avatar } from './Avatar';
7
-
8
- export interface MessageBoxProps {
9
- message: Message;
10
- }
11
-
12
- export interface MessageRowProps extends MessageBoxProps {
13
- containerRef?: Ref<HTMLDivElement>;
14
- }
15
-
16
- export const MessageAuthor = customize<FC<MessageBoxProps>, string>('MessageAuthor', (props) => {
17
- const { sentBy } = props.message;
18
-
19
- return (
20
- <div className="wxchtf-message-author">
21
- <Avatar account={sentBy} />
22
- </div>
23
- );
24
- });
25
-
26
- export const MessageText = customize<FC<MessageBoxProps>, string>('MessageText', (props) => {
27
- const { text } = props.message;
28
- return <div className="wxchtf-message-text">{text}</div>;
29
- });
30
-
31
- export const MessageInfoBox = customize<FC<MessageBoxProps>, string>('MessageInfoBox', (props) => {
32
- const { message } = props;
33
- const { id, sentBy, sentAt, read } = message;
34
- const me = useMe();
35
- const my = sentBy.id === me;
36
- const localizer = useLocalizer();
37
- const reading = useSelect((x) => x.read.queued.includes(id), []);
38
-
39
- return (
40
- <div className="wxchtf-message-info-box">
41
- <div className="wxchtf-message-sent-at">{localizer.timestamp(sentAt)}</div>
42
- {read !== undefined && !my && (
43
- <div className="wxchtf-message-read-box">
44
- {reading ? localizer.message.reading() : localizer.message.read()}
45
- </div>
46
- )}
47
- </div>
48
- );
49
- });
50
-
51
- export const MessageContent = customize<FC<MessageBoxProps>, string>('MessageContent', (props) => {
52
- return (
53
- <div className="wxchtf-message-content">
54
- <MessageText {...props} />
55
- <MessageInfoBox {...props} />
56
- </div>
57
- );
58
- });
59
-
60
- export const MessageRow = customize<FC<MessageRowProps>, string>('MessageRow', (props) => {
61
- const { message, containerRef } = props;
62
- const { sentBy } = message;
63
- const me = useMe();
64
- const my = sentBy.id === me;
65
-
66
- return (
67
- <div ref={containerRef} className={'wxchtf-message' + (my ? ' --my' : '')}>
68
- <MessageAuthor {...props} />
69
- <MessageContent {...props} />
70
- </div>
71
- );
72
- });
73
-
74
- export const MessageBox = customize<FC<MessageBoxProps>, string>('MessageBox', (props) => {
75
- const ref = useRef<HTMLDivElement | null>(null);
76
-
77
- return (
78
- <>
79
- <MessageReadObserver messageRef={ref} {...props} />
80
- <MessageRow containerRef={ref} {...props} />
81
- </>
82
- );
83
- });
84
-
85
- export interface MessageReadObserverProps extends MessageBoxProps {
86
- messageRef: RefObject<HTMLDivElement | null>;
87
- }
88
-
89
- export const MessageReadObserver = customize<FC<MessageReadObserverProps>, string>(
90
- 'MessageReadObserver',
91
- (props) => {
92
- const { message, messageRef } = props;
93
- const dispatch = useDispatch();
94
- const readRef = useRef(false);
95
-
96
- const observer = useMemo(
97
- () =>
98
- new IntersectionObserver(([entry]) => {
99
- if (entry.isIntersecting && !readRef.current && !message.read) {
100
- readRef.current = true;
101
- dispatch({ type: 'read', data: { id: message.id, timestamp: new Date().getTime() } });
102
- }
103
- }),
104
-
105
- // eslint-disable-next-line react-hooks/exhaustive-deps
106
- [],
107
- );
108
-
109
- useEffect(() => {
110
- observer.observe(messageRef.current!);
111
- return () => observer.disconnect();
112
-
113
- // eslint-disable-next-line react-hooks/exhaustive-deps
114
- }, [observer]);
115
-
116
- return <></>;
117
- },
118
- );
@@ -1,50 +0,0 @@
1
- import { FC } from 'react';
2
- import { File } from '../core';
3
- import { customize } from '../util';
4
- import { useLocalizer } from './localizer';
5
-
6
- export interface SendingMessageProps {
7
- text: string;
8
- files: File[];
9
- }
10
-
11
- export const SendingMessageText = customize<FC<SendingMessageProps>, string>(
12
- 'SendingMessageText',
13
- (props) => {
14
- const { text } = props;
15
- return <div className="wxchtf-sending-message-text">{text}</div>;
16
- },
17
- );
18
-
19
- export const SendingMessageInfoBox = customize<FC<SendingMessageProps>, string>(
20
- 'SendingMessageInfoBox',
21
- () => {
22
- const localizer = useLocalizer();
23
-
24
- return (
25
- <div className="wxchtf-sending-message-info-box">
26
- <div className="wxchtf-sending-message-sending-box">{localizer.message.sending()}</div>
27
- </div>
28
- );
29
- },
30
- );
31
-
32
- export const SendingMessageContent = customize<FC<SendingMessageProps>, string>(
33
- 'SendingMessageContent',
34
- (props) => {
35
- return (
36
- <div className="wxchtf-sending-message-content">
37
- <SendingMessageText {...props} />
38
- <SendingMessageInfoBox {...props} />
39
- </div>
40
- );
41
- },
42
- );
43
-
44
- export const SendingMessage = customize<FC<SendingMessageProps>, string>('SendingMessage', (props) => {
45
- return (
46
- <div className="wxchtf-sending-message">
47
- <SendingMessageContent {...props} />
48
- </div>
49
- );
50
- });
@@ -1,32 +0,0 @@
1
- import { FC } from 'react';
2
- import { customize } from '../util';
3
- import { Localizer, useLocalizer } from './localizer';
4
-
5
- export interface SystemMessageProps {
6
- text: string;
7
- sentAt: string;
8
- }
9
-
10
- export function formatSystemMessage(localizer: Localizer, text: string): React.ReactNode {
11
- if (text === 'chatify://chat-created') {
12
- return localizer.system.chatCreated();
13
- }
14
-
15
- if (text.startsWith('chatify://member-added::')) {
16
- return localizer.system.memberAdded();
17
- }
18
-
19
- return text;
20
- }
21
-
22
- export const SystemMessage = customize<FC<SystemMessageProps>, string>('SystemMessage', (props) => {
23
- const { text, sentAt } = props;
24
- const localizer = useLocalizer();
25
-
26
- return (
27
- <div className="wxchtf-system-message">
28
- <div className="wxchtf-text">{formatSystemMessage(localizer, text)}</div>
29
- <div className="wxchtf-timestamp">{localizer.timestamp(sentAt)}</div>
30
- </div>
31
- );
32
- });
@@ -1,248 +0,0 @@
1
- @import './variables.scss';
2
- @import './mixins.scss';
3
- @import './keyframes.scss';
4
- @import './aside.scss';
5
-
6
- .wxchtf-chatify {
7
- border: $border;
8
- display: flex;
9
- flex-flow: column nowrap;
10
- background: $background;
11
- border-radius: $radius;
12
-
13
- .wxchtf-header {
14
- min-height: 2rem;
15
- border-bottom: $border;
16
- }
17
-
18
- .wxchtf-body {
19
- flex: 1 0;
20
- display: flex;
21
- flex-flow: row nowrap;
22
- }
23
-
24
- .wxchtf-footer {
25
- min-height: 2rem;
26
- border-top: $border;
27
- }
28
- }
29
-
30
- .wxchtf-main {
31
- flex: auto;
32
- display: flex;
33
- flex-flow: column nowrap;
34
-
35
- .wxchtf-chat {
36
- flex: auto;
37
- display: flex;
38
- flex-flow: column nowrap;
39
-
40
- .wxchtf-chat-header {
41
- border-bottom: $border;
42
- padding: 0.5rem 1rem;
43
-
44
- .wxchtf-chat-name {
45
- font-weight: 600;
46
- flex: none;
47
- }
48
- }
49
-
50
- .wxchtf-chat-body {
51
- flex: 1 1 auto;
52
- height: 100px;
53
- overflow-y: auto;
54
- background: $chatBodyBackground;
55
- padding: 2rem 1rem;
56
- display: flex;
57
- flex-flow: column-reverse nowrap;
58
-
59
- @include scrollbar();
60
-
61
- @media only screen and (min-width: 1120px) {
62
- padding-right: 30%;
63
- }
64
-
65
- .wxchtf-message,
66
- .wxchtf-sending-message {
67
- display: flex;
68
- flex-flow: row nowrap;
69
- width: 100%;
70
- align-items: flex-end;
71
-
72
- &.--my {
73
- direction: rtl;
74
- justify-content: flex-start;
75
-
76
- .wxchtf-message-author {
77
- margin-right: 0;
78
- margin-left: 15px;
79
- }
80
-
81
- .wxchtf-message-content,
82
- .wxchtf-sending-message-content {
83
- direction: ltr;
84
- border-bottom-left-radius: 10px;
85
- border-bottom-right-radius: 0;
86
- background-color: $myMessageBackground;
87
- }
88
- }
89
-
90
- .wxchtf-message-author {
91
- margin-right: 15px;
92
-
93
- .ant-avatar {
94
- @include avatarSize($avatarSize);
95
- box-shadow: rgba(0, 0, 0, 0.16) 0px 1px 4px;
96
- }
97
- }
98
-
99
- .wxchtf-message-content,
100
- .wxchtf-sending-message-content {
101
- min-width: 300px;
102
- max-width: 70%;
103
- border-radius: $messageBorderRadius;
104
- padding: 0.75rem 1rem;
105
- background: white;
106
- border-bottom-left-radius: 0;
107
- background-color: $messageBackground;
108
- box-shadow: rgba(0, 0, 0, 0.16) 0px 1px 4px;
109
- display: block;
110
- white-space: pre-wrap;
111
- overflow-wrap: break-word;
112
-
113
- .wxchtf-message-info-box,
114
- .wxchtf-sending-message-info-box {
115
- text-align: right;
116
-
117
- .wxchtf-message-sent-at,
118
- .wxchtf-message-read-box,
119
- .wxchtf-sending-message-sending-box {
120
- display: inline-block;
121
- font-style: italic;
122
- font-size: 0.75em;
123
- margin-top: 0.5rem;
124
- opacity: 0.5;
125
- }
126
-
127
- .wxchtf-message-read-box,
128
- .wxchtf-sending-message-sending-box {
129
- margin-left: 5px;
130
- }
131
- }
132
- }
133
- }
134
-
135
- .wxchtf-system-message {
136
- font-style: italic;
137
- position: relative;
138
- text-align: center;
139
-
140
- .wxchtf-text,
141
- .wxchtf-timestamp {
142
- display: inline-block;
143
- opacity: 0.9;
144
- font-size: 0.85em;
145
- }
146
-
147
- .wxchtf-timestamp {
148
- margin-left: 1rem;
149
- }
150
- }
151
-
152
- .wxchtf-message,
153
- .wxchtf-sending-message,
154
- .wxchtf-system-message,
155
- .wxchtf-message-skeleton {
156
- margin-bottom: 2rem;
157
-
158
- &:first-child {
159
- margin-bottom: 0;
160
- }
161
- }
162
-
163
- .wxchtf-message-skeleton {
164
- display: flex;
165
- flex-flow: row nowrap;
166
- align-items: flex-end;
167
-
168
- .wxchtf-avatar {
169
- margin-right: 15px;
170
- }
171
-
172
- .wxchtf-avatar .ant-skeleton-avatar {
173
- width: $avatarSize;
174
- height: $avatarSize;
175
- line-height: $avatarSize;
176
- }
177
-
178
- .wxchtf-content {
179
- width: 300px;
180
- height: 100px;
181
- border-radius: $messageBorderRadius;
182
- border-bottom-left-radius: 0;
183
- }
184
- }
185
- }
186
- }
187
-
188
- .wxchtf-input-form {
189
- flex: none;
190
- max-height: 300px;
191
- display: flex;
192
- flex-flow: column nowrap;
193
-
194
- .wxchtf-input-box {
195
- flex: none;
196
- display: flex;
197
- flex-flow: row nowrap;
198
- padding: 1rem 0;
199
- border-top: $border;
200
-
201
- @mixin iconBtn {
202
- flex: none;
203
- display: flex;
204
- padding: 0 1rem;
205
- align-items: flex-end;
206
-
207
- .ant-btn.ant-btn-icon-only .anticon {
208
- font-size: 1.5rem;
209
- }
210
- }
211
-
212
- .wxchtf-add-files-box {
213
- @include iconBtn();
214
- }
215
-
216
- .wxchtf-text-input-box {
217
- flex: auto;
218
-
219
- textarea {
220
- resize: none;
221
- border: none;
222
- outline: none;
223
- box-shadow: none;
224
-
225
- @include scrollbar();
226
- }
227
- }
228
-
229
- .wxchtf-submit-btn-box {
230
- @include iconBtn();
231
- }
232
- }
233
- }
234
-
235
- .wxchtf-add-chat {
236
- display: flex;
237
- flex-flow: column nowrap;
238
- justify-content: center;
239
- align-items: center;
240
- height: 100%;
241
-
242
- form {
243
- padding: 2rem;
244
- max-width: 700px;
245
- width: 100%;
246
- }
247
- }
248
- }