@x-edu/live-player 0.0.19 → 0.0.21

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 (302) hide show
  1. package/.browserslistrc +10 -10
  2. package/.eslintignore +8 -8
  3. package/.eslintrc.js +26 -26
  4. package/.gem-mine +11 -11
  5. package/.postcssrc.js +6 -6
  6. package/README.md +145 -145
  7. package/babel.config.js +33 -33
  8. package/dist/XEduLivePlayer.common.js +12161 -1154
  9. package/dist/XEduLivePlayerPre.common.js +12369 -1358
  10. package/doc/develop.md +23 -23
  11. package/gem-mine.config.js +86 -86
  12. package/jest.config.js +9 -9
  13. package/jsconfig.json +15 -15
  14. package/mock/helper.js +8 -8
  15. package/mock/index.js +34 -34
  16. package/package.json +99 -99
  17. package/public/3rd/ali-player/alipayercomponents-1.0.8.min.js +26 -26
  18. package/public/3rd/ali-player/aliplayer-hls-min.js +27 -27
  19. package/public/3rd/ali-player/aliplayer-min.js +1 -1
  20. package/public/3rd/im-web-push/index.umd.js +14 -14
  21. package/public/JsBridge.js +1602 -1602
  22. package/public/fish/editor/themes/default/css/ueditor.css +1905 -1905
  23. package/public/fish/editor/third-party/codemirror/codemirror.css +104 -104
  24. package/public/fish/editor/third-party/codemirror/codemirror.js +3581 -3581
  25. package/public/fish/editor/third-party/zeroclipboard/ZeroClipboard.js +1255 -1255
  26. package/public/fish/editor/ueditor.all.min.js +16 -16
  27. package/public/fish/editor/ueditor.config.js +467 -467
  28. package/public/fish/icon/umd-4.1.2.js +1 -1
  29. package/public/fish/video/videoplayer.min.css +6 -6
  30. package/public/fish/video/videoplayer.min.js +31 -31
  31. package/public/fish/video/zh-CN.js +82 -82
  32. package/public/icon/demo.css +539 -539
  33. package/public/icon/demo_index.html +2189 -2189
  34. package/public/icon/iconfont.css +363 -363
  35. package/public/icon/iconfont.json +618 -618
  36. package/public/index.html +50 -50
  37. package/script/image/readme.md +77 -77
  38. package/script/postcss.js +48 -48
  39. package/src/App.jsx +24 -24
  40. package/src/asset/img/course/playing.svg +21 -21
  41. package/src/asset/img/icon-course-white.svg +3 -3
  42. package/src/asset/img/icon-course.svg +3 -3
  43. package/src/asset/img/icon-eye-white.svg +4 -4
  44. package/src/asset/img/icon-eye.svg +4 -4
  45. package/src/asset/img/icon-school-white.svg +3 -3
  46. package/src/asset/img/icon-school.svg +3 -3
  47. package/src/asset/img/loading.svg +52 -52
  48. package/src/asset/img/video-play.svg +6 -6
  49. package/src/asset/style/background.less +19 -19
  50. package/src/asset/style/banner.less +36 -36
  51. package/src/asset/style/base.less +74 -74
  52. package/src/asset/style/index.less +114 -114
  53. package/src/asset/style/reset-theme.less +141 -141
  54. package/src/asset/style/theme/index.less +55 -55
  55. package/src/asset/style/theme/party/global.less +20 -20
  56. package/src/asset/style/theme/party/override.less +57 -57
  57. package/src/asset/style/theme/test/global.less +18 -18
  58. package/src/asset/style/theme/test/override.less +45 -45
  59. package/src/asset/style/variable.less +12 -12
  60. package/src/component/AliPlayer/index.jsx +49 -49
  61. package/src/component/Avatar/index.jsx +50 -50
  62. package/src/component/Empty/index.jsx +34 -34
  63. package/src/component/Empty/index.module.less +37 -37
  64. package/src/component/IMChatroom/component/status/403.jsx +13 -13
  65. package/src/component/IMChatroom/component/status/404.jsx +13 -13
  66. package/src/component/IMChatroom/component/status/Error.jsx +23 -23
  67. package/src/component/IMChatroom/component/status/Loading.jsx +5 -5
  68. package/src/component/IMChatroom/config/app/config.js +118 -118
  69. package/src/component/IMChatroom/config/app/index.js +60 -60
  70. package/src/component/IMChatroom/config/env.js +5 -5
  71. package/src/component/IMChatroom/config/index.js +3 -3
  72. package/src/component/IMChatroom/config/request/config/base.js +124 -124
  73. package/src/component/IMChatroom/config/request/config/chatroom.js +26 -26
  74. package/src/component/IMChatroom/config/request/config/imCoreApi.js +21 -21
  75. package/src/component/IMChatroom/config/request/index.js +21 -21
  76. package/src/component/IMChatroom/config/request/proxy.js +39 -39
  77. package/src/component/IMChatroom/config/url.js +7 -7
  78. package/src/component/IMChatroom/constants/errorCode.js +9 -9
  79. package/src/component/IMChatroom/constants/index.js +84 -84
  80. package/src/component/IMChatroom/constants/origin.js +27 -27
  81. package/src/component/IMChatroom/context/chatroom.js +154 -154
  82. package/src/component/IMChatroom/context/connect.js +28 -28
  83. package/src/component/IMChatroom/i18n/en/index.json +73 -73
  84. package/src/component/IMChatroom/i18n/index.jsx +14 -14
  85. package/src/component/IMChatroom/i18n/language.js +9 -9
  86. package/src/component/IMChatroom/i18n/zh-CN/index.json +73 -73
  87. package/src/component/IMChatroom/index.jsx +49 -49
  88. package/src/component/IMChatroom/page/chat/index.jsx +27 -27
  89. package/src/component/IMChatroom/page/chat/messageEditor/index.jsx +375 -375
  90. package/src/component/IMChatroom/page/chat/messageList/index.jsx +354 -354
  91. package/src/component/IMChatroom/page/chat/stickedMessage/index.jsx +59 -59
  92. package/src/component/IMChatroom/page/chat/stickedMessage/style/index.module.less +7 -7
  93. package/src/component/IMChatroom/page/chat/style/index.module.less +51 -51
  94. package/src/component/IMChatroom/page/home/connect/index.jsx +188 -188
  95. package/src/component/IMChatroom/page/home/connect/status.jsx +124 -124
  96. package/src/component/IMChatroom/page/home/context/cmd.jsx +37 -37
  97. package/src/component/IMChatroom/page/home/context/index.jsx +67 -67
  98. package/src/component/IMChatroom/page/home/index.jsx +164 -164
  99. package/src/component/IMChatroom/page/home/notice/index.jsx +123 -123
  100. package/src/component/IMChatroom/page/home/notice/style/index.module.less +49 -49
  101. package/src/component/IMChatroom/page/home/style/index.module.less +110 -110
  102. package/src/component/IMChatroom/page/member/index.jsx +15 -15
  103. package/src/component/IMChatroom/page/member/memberCount/index.jsx +44 -44
  104. package/src/component/IMChatroom/page/member/memberList/index.jsx +121 -121
  105. package/src/component/IMChatroom/page/member/style/index.module.less +2 -2
  106. package/src/component/IMChatroom/sdk/bridge.js +39 -39
  107. package/src/component/IMChatroom/sdk/cs/constants.js +20 -20
  108. package/src/component/IMChatroom/sdk/cs/index.js +101 -101
  109. package/src/component/IMChatroom/sdk/imChatroom.js +15 -15
  110. package/src/component/IMChatroom/sdk/imcore/constants.js +128 -128
  111. package/src/component/IMChatroom/sdk/imcore/emitters/chatroomDestroyed.js +5 -5
  112. package/src/component/IMChatroom/sdk/imcore/emitters/chatroomInfoGetFail.js +5 -5
  113. package/src/component/IMChatroom/sdk/imcore/emitters/chatroomKickedByAdmin.js +5 -5
  114. package/src/component/IMChatroom/sdk/imcore/emitters/chatroomKickedBySelf.js +5 -5
  115. package/src/component/IMChatroom/sdk/imcore/emitters/chatroomLoginFail.js +5 -5
  116. package/src/component/IMChatroom/sdk/imcore/emitters/chatroomLoginSuccess.js +5 -5
  117. package/src/component/IMChatroom/sdk/imcore/emitters/chatroomMemberLogin.js +5 -5
  118. package/src/component/IMChatroom/sdk/imcore/emitters/chatroomMemberLogout.js +5 -5
  119. package/src/component/IMChatroom/sdk/imcore/emitters/connectionConnected.js +5 -5
  120. package/src/component/IMChatroom/sdk/imcore/emitters/connectionConnecting.js +5 -5
  121. package/src/component/IMChatroom/sdk/imcore/emitters/connectionDisconnect.js +5 -5
  122. package/src/component/IMChatroom/sdk/imcore/emitters/index.js +57 -57
  123. package/src/component/IMChatroom/sdk/imcore/emitters/messageReceive.js +36 -36
  124. package/src/component/IMChatroom/sdk/imcore/index.js +178 -178
  125. package/src/component/IMChatroom/sdk/imcore/interceptors/request.js +7 -7
  126. package/src/component/IMChatroom/sdk/imcore/interceptors/response.js +5 -5
  127. package/src/component/IMChatroom/sdk/imcore/plugins/getAuth.js +64 -64
  128. package/src/component/IMChatroom/sdk/imcore/plugins/getConversationId.js +20 -20
  129. package/src/component/IMChatroom/sdk/imcore/plugins/getExtInfo.js +10 -10
  130. package/src/component/IMChatroom/sdk/imcore/plugins/getLoginInfo.js +48 -48
  131. package/src/component/IMChatroom/sdk/imcore/plugins/getPlatformType.js +12 -12
  132. package/src/component/IMChatroom/sdk/imcore/plugins/index.js +22 -22
  133. package/src/component/IMChatroom/sdk/imcore/util/format.js +177 -177
  134. package/src/component/IMChatroom/sdk/imcore/util/parser.js +35 -35
  135. package/src/component/IMChatroom/sdk/oms.js +18 -18
  136. package/src/component/IMChatroom/sdk/uc.js +3 -3
  137. package/src/component/IMChatroom/subscription/channel/app.js +5 -5
  138. package/src/component/IMChatroom/subscription/channel/ctl.js +22 -22
  139. package/src/component/IMChatroom/subscription/channel/member.js +40 -40
  140. package/src/component/IMChatroom/subscription/channel/message.js +13 -13
  141. package/src/component/IMChatroom/subscription/channel/ntf.js +86 -86
  142. package/src/component/IMChatroom/subscription/channel/tel.js +5 -5
  143. package/src/component/IMChatroom/subscription/channel/websocket.js +5 -5
  144. package/src/component/IMChatroom/subscription/event.js +37 -37
  145. package/src/component/IMChatroom/subscription/index.js +19 -19
  146. package/src/component/IMChatroom/util/account.js +8 -8
  147. package/src/component/IMChatroom/util/chatroom.js +255 -255
  148. package/src/component/IMChatroom/util/jsonBigInt.js +5 -5
  149. package/src/component/IMChatroom/util/location.js +12 -12
  150. package/src/component/Icon/index.jsx +16 -16
  151. package/src/component/Icon/index.module.less +2 -2
  152. package/src/component/Pagination/LocalPagination.jsx +27 -27
  153. package/src/component/Pagination/RemotePagination.jsx +32 -32
  154. package/src/component/Pagination/index.jsx +31 -31
  155. package/src/component/Pagination/index.module.less +110 -110
  156. package/src/component/PlayerTip/index.jsx +34 -34
  157. package/src/component/VideoBase/index.jsx +242 -242
  158. package/src/component/VideoBase/style.less +65 -65
  159. package/src/component/VideoBase/utils.js +81 -81
  160. package/src/component/mixin.less +9 -9
  161. package/src/component/status/403.jsx +15 -15
  162. package/src/component/status/404/index.jsx +73 -73
  163. package/src/component/status/404/index.module.less +36 -36
  164. package/src/component/status/Error/error.module.less +13 -13
  165. package/src/component/status/Error/index.jsx +47 -47
  166. package/src/component/status/Loading/img/loading.svg +52 -52
  167. package/src/component/status/Loading/index.jsx +31 -31
  168. package/src/component/status/Loading/index.less +56 -56
  169. package/src/component/status/None/index.jsx +20 -20
  170. package/src/component/status/None/index.module.less +35 -35
  171. package/src/component/status/Status/index.jsx +26 -26
  172. package/src/component/status/Status/index.module.less +8 -8
  173. package/src/config/constant/commonUrl.js +2 -2
  174. package/src/config/constant/user.js +6 -6
  175. package/src/config/context/site-config.js +48 -48
  176. package/src/config/env/index.js +5 -5
  177. package/src/config/env/local/index.js +13 -13
  178. package/src/config/env/ncet-xedu/api.js +175 -175
  179. package/src/config/env/ncet-xedu/app.js +12 -12
  180. package/src/config/env/ncet-xedu/cs.js +8 -8
  181. package/src/config/env/ncet-xedu/index.js +14 -14
  182. package/src/config/env/ncet-xedu/push.js +5 -5
  183. package/src/config/env/preproduction/api.js +144 -144
  184. package/src/config/env/preproduction/app.js +12 -12
  185. package/src/config/env/preproduction/cs.js +8 -8
  186. package/src/config/env/preproduction/index.js +14 -14
  187. package/src/config/env/preproduction/push.js +5 -5
  188. package/src/config/env/product/api.js +113 -113
  189. package/src/config/env/product/app.js +12 -12
  190. package/src/config/env/product/cs.js +5 -5
  191. package/src/config/env/product/index.js +14 -14
  192. package/src/config/env/product/push.js +5 -5
  193. package/src/config/live.js +80 -80
  194. package/src/config/publicLive.js +53 -53
  195. package/src/config/request/assessments.js +24 -24
  196. package/src/config/request/config-center.js +8 -8
  197. package/src/config/request/helper.js +166 -166
  198. package/src/config/request/im-broadcasts.js +12 -12
  199. package/src/config/request/live-activity-gateway.js +8 -8
  200. package/src/config/request/live-activity.js +13 -13
  201. package/src/config/request/raw.js +6 -6
  202. package/src/config/request/x-cloud-web.js +13 -13
  203. package/src/config/request/x-proxy.js +34 -34
  204. package/src/demo/Detail.jsx +11 -11
  205. package/src/demo/List.jsx +64 -64
  206. package/src/demo/index.jsx +17 -17
  207. package/src/detail/LineSwitch/index.jsx +71 -71
  208. package/src/detail/LiveCountDown/index.jsx +44 -44
  209. package/src/detail/LiveCountDown/index.module.less +31 -31
  210. package/src/detail/LiveOnlineCount/img/icon.svg +15 -15
  211. package/src/detail/LiveOnlineCount/index.jsx +68 -68
  212. package/src/detail/LiveOnlineCount/index.module.less +34 -34
  213. package/src/detail/LiveOnlineCount/util.js +74 -74
  214. package/src/detail/LiveStatus/AnchorOnTheWay.jsx +88 -88
  215. package/src/detail/LiveStatus/index.jsx +202 -202
  216. package/src/detail/LiveStatus/index.module.less +192 -192
  217. package/src/detail/LiveVideo/config.js +37 -37
  218. package/src/detail/LiveVideo/index.jsx +188 -188
  219. package/src/detail/LiveVideo/index.module.less +41 -41
  220. package/src/detail/NotLoginChatroom/index.jsx +37 -37
  221. package/src/detail/NotLoginChatroom/index.module.less +46 -46
  222. package/src/detail/RecordVideo/index.jsx +150 -150
  223. package/src/detail/RecordVideo/index.module.less +31 -31
  224. package/src/detail/ReplayVideo/index.jsx +93 -93
  225. package/src/detail/ReplayVideo/index.module.less +65 -65
  226. package/src/detail/const.js +20 -20
  227. package/src/detail/hook/usePullSource.js +82 -82
  228. package/src/detail/hook/usePullState.js +51 -51
  229. package/src/detail/index.jsx +482 -482
  230. package/src/detail/index.module.less +188 -188
  231. package/src/hook/useAsync.js +84 -84
  232. package/src/hook/useGoToPage.js +83 -83
  233. package/src/hook/useInterval.js +28 -28
  234. package/src/hook/useIsMounted.js +17 -17
  235. package/src/hook/useModuleByRole.js +53 -53
  236. package/src/hook/usePageScrollable.js +52 -52
  237. package/src/hook/usePortal.js +83 -83
  238. package/src/hook/useScrollRestore/index.js +32 -32
  239. package/src/hook/useScrollRestore/scrollContext.js +20 -20
  240. package/src/hook/useTrackRef.js +11 -11
  241. package/src/hook/useWindowSize.js +28 -28
  242. package/src/hook/useZoom.js +47 -47
  243. package/src/index.js +10 -10
  244. package/src/lib/getLiveOnlineCount.js +10 -10
  245. package/src/lib/getServiceConfig.js +102 -102
  246. package/src/list/Empty/index.jsx +20 -20
  247. package/src/list/Empty/index.module.less +23 -23
  248. package/src/list/ListItem/Action/index.jsx +98 -98
  249. package/src/list/ListItem/Action/index.module.less +21 -21
  250. package/src/list/ListItem/img/dianzan.svg +4 -0
  251. package/src/list/ListItem/img/play.svg +15 -15
  252. package/src/list/ListItem/img/yiguankan.svg +3 -0
  253. package/src/list/ListItem/index.jsx +24 -1
  254. package/src/list/ListItem/index.module.less +146 -123
  255. package/src/list/index.jsx +80 -0
  256. package/src/list/index.module.less +35 -35
  257. package/src/service/common.js +73 -73
  258. package/src/service/content-mgr.js +73 -73
  259. package/src/service/im-group.js +12 -12
  260. package/src/service/im.js +7 -7
  261. package/src/service/imBroadcasts.js +33 -33
  262. package/src/service/like.js +134 -134
  263. package/src/service/manageApi.js +7 -7
  264. package/src/service/managePortal.js +6 -6
  265. package/src/service/myStudyRecord.js +93 -93
  266. package/src/service/navigation.js +47 -47
  267. package/src/service/ndMeeting.js +10 -10
  268. package/src/service/ndr.js +122 -122
  269. package/src/service/news.js +93 -93
  270. package/src/service/personalCenter.js +270 -270
  271. package/src/service/qualityCourse.js +31 -31
  272. package/src/service/recommend.js +81 -81
  273. package/src/service/school.js +323 -323
  274. package/src/service/search.js +170 -170
  275. package/src/service/site-config.js +7 -7
  276. package/src/service/socialCensor.js +45 -45
  277. package/src/service/specialEdu.js +31 -31
  278. package/src/service/suggestion.js +85 -85
  279. package/src/service/syncClassroom.js +321 -321
  280. package/src/service/tCourse.js +204 -204
  281. package/src/service/tchTraining.js +37 -37
  282. package/src/service/uc.js +45 -45
  283. package/src/util/app.js +1 -1
  284. package/src/util/array.js +3 -3
  285. package/src/util/auth/func.js +57 -57
  286. package/src/util/date.js +53 -53
  287. package/src/util/env.js +9 -9
  288. package/src/util/getTimestamp.js +10 -10
  289. package/src/util/hof.js +105 -105
  290. package/src/util/live/index.js +42 -42
  291. package/src/util/liveCountUtil.js +52 -0
  292. package/src/util/netUrl.js +35 -35
  293. package/src/util/object.js +13 -13
  294. package/src/util/push/index.js +58 -58
  295. package/src/util/request.js +227 -227
  296. package/src/util/type.js +17 -17
  297. package/src/util/url.js +203 -203
  298. package/src/util/video.js +26 -26
  299. package/test/setup.js +21 -21
  300. package/test/unit/component/header/logo.spec.jsx +8 -8
  301. package/test/unit/helper.jsx +25 -25
  302. package/test/unit/util/date.spec.js +40 -40
@@ -1,154 +1,154 @@
1
- import {
2
- createContext,
3
- useContext,
4
- useState
5
- } from 'react'
6
- import { get, unionBy } from 'lodash'
7
-
8
- import { BAN_TYPE, USER_ROLE } from '../constants'
9
- import imChatroom from '../sdk/imChatroom'
10
- import urlConfig from '../config/url'
11
-
12
- export const actions = {}
13
-
14
- export function useChatroomRoot() {
15
- const [userRole, setUserRole] = useState(USER_ROLE.NORMAL)
16
- const [room, setRoom] = useState(null)
17
- const [stickedMessages, setStickedMessages] = useState([])
18
- const [owner, setOwner] = useState({})
19
- const [admins, setAdmins] = useState([])
20
- const [ban, setBan] = useState({
21
- type: BAN_TYPE.BLACK,
22
- items: []
23
- })
24
- const [notice, setNotice] = useState(null)
25
-
26
- const setChatroomBan = (newBan) => {
27
- setBan(newBan)
28
- }
29
-
30
- const updateChatroomBan = ({ type, action, items }) => {
31
- const newBan = {
32
- ...ban
33
- }
34
- if (newBan.type === type) {
35
- if (action === 1) {
36
- newBan.items = unionBy(newBan.items, items, 'user_id')
37
- } else {
38
- newBan.items = newBan.items.filter(
39
- ({ user_id: userId }) => !items.some(({ user_id: id }) => id === userId)
40
- )
41
- }
42
- }
43
- setBan(newBan)
44
- }
45
-
46
- const loginChatroom = async () => {
47
- const result = await imChatroom.loginChatroom()
48
- return result
49
- }
50
-
51
- const getChatroom = async () => {
52
- const result = await imChatroom.getRoomInfo()
53
- const {
54
- user_role: newUserRole,
55
- room: newRoom,
56
- owner: newOwner = {}
57
- } = result
58
- setUserRole(newUserRole)
59
- setRoom(newRoom)
60
- setStickedMessages(get(newRoom, 'sticked_messages', []))
61
- setOwner({
62
- ...newOwner,
63
- uid: newRoom.owner_id
64
- })
65
- return result
66
- }
67
-
68
- const getChatroomAdmins = async () => {
69
- const result = await imChatroom.getRoomAdmins()
70
- setAdmins(result)
71
- return result
72
- }
73
-
74
- const getChatroomBan = async () => {
75
- const { items: whiteItems } = await imChatroom.getAllowSpeech()
76
- let newBan
77
- if (whiteItems.length) {
78
- newBan = {
79
- type: BAN_TYPE.WHITE,
80
- items: whiteItems.map((uid) => ({
81
- user_id: String(uid)
82
- }))
83
- }
84
- } else {
85
- const blackItems = await imChatroom.getAllForbiddens()
86
- newBan = {
87
- type: BAN_TYPE.BLACK,
88
- items: blackItems
89
- }
90
- }
91
- setBan(newBan)
92
- return newBan
93
- }
94
-
95
- const setChatroomStickedMessages = async (messages) => {
96
- setStickedMessages(messages || [])
97
- }
98
-
99
- const deleteChatroomStickMessages = async () => {
100
- const result = await imChatroom.deleteTop(urlConfig.roomId)
101
- setStickedMessages([])
102
- return result
103
- }
104
-
105
- const getChatroomNotice = async () => {
106
- const result = await imChatroom.getNotices()
107
- const { items } = result
108
- if (items.length) {
109
- const currentNotice = items[0]
110
- setNotice(currentNotice)
111
- return currentNotice
112
- }
113
- setNotice(null)
114
- return null
115
- }
116
-
117
- const setChatroomNotice = async (content) => {
118
- const result = await imChatroom.addNotice({
119
- content
120
- })
121
- setNotice(result)
122
- return result
123
- }
124
-
125
- actions.setChatroomStickedMessages = setChatroomStickedMessages
126
- actions.updateChatroomBan = updateChatroomBan
127
- actions.getChatroomBan = getChatroomBan
128
- actions.setChatroomBan = setChatroomBan
129
- actions.updateChatroomBan = updateChatroomBan
130
-
131
- return {
132
- userRole,
133
- room,
134
- stickedMessages,
135
- owner,
136
- admins,
137
- ban,
138
- notice,
139
- loginChatroom,
140
- setChatroomBan,
141
- updateChatroomBan,
142
- setChatroomStickedMessages,
143
- deleteChatroomStickMessages,
144
- getChatroom,
145
- getChatroomAdmins,
146
- getChatroomBan,
147
- getChatroomNotice,
148
- setChatroomNotice
149
- }
150
- }
151
-
152
- export const ChatRoomContext = createContext()
153
-
154
- export const useChatroom = () => useContext(ChatRoomContext)
1
+ import {
2
+ createContext,
3
+ useContext,
4
+ useState
5
+ } from 'react'
6
+ import { get, unionBy } from 'lodash'
7
+
8
+ import { BAN_TYPE, USER_ROLE } from '../constants'
9
+ import imChatroom from '../sdk/imChatroom'
10
+ import urlConfig from '../config/url'
11
+
12
+ export const actions = {}
13
+
14
+ export function useChatroomRoot() {
15
+ const [userRole, setUserRole] = useState(USER_ROLE.NORMAL)
16
+ const [room, setRoom] = useState(null)
17
+ const [stickedMessages, setStickedMessages] = useState([])
18
+ const [owner, setOwner] = useState({})
19
+ const [admins, setAdmins] = useState([])
20
+ const [ban, setBan] = useState({
21
+ type: BAN_TYPE.BLACK,
22
+ items: []
23
+ })
24
+ const [notice, setNotice] = useState(null)
25
+
26
+ const setChatroomBan = (newBan) => {
27
+ setBan(newBan)
28
+ }
29
+
30
+ const updateChatroomBan = ({ type, action, items }) => {
31
+ const newBan = {
32
+ ...ban
33
+ }
34
+ if (newBan.type === type) {
35
+ if (action === 1) {
36
+ newBan.items = unionBy(newBan.items, items, 'user_id')
37
+ } else {
38
+ newBan.items = newBan.items.filter(
39
+ ({ user_id: userId }) => !items.some(({ user_id: id }) => id === userId)
40
+ )
41
+ }
42
+ }
43
+ setBan(newBan)
44
+ }
45
+
46
+ const loginChatroom = async () => {
47
+ const result = await imChatroom.loginChatroom()
48
+ return result
49
+ }
50
+
51
+ const getChatroom = async () => {
52
+ const result = await imChatroom.getRoomInfo()
53
+ const {
54
+ user_role: newUserRole,
55
+ room: newRoom,
56
+ owner: newOwner = {}
57
+ } = result
58
+ setUserRole(newUserRole)
59
+ setRoom(newRoom)
60
+ setStickedMessages(get(newRoom, 'sticked_messages', []))
61
+ setOwner({
62
+ ...newOwner,
63
+ uid: newRoom.owner_id
64
+ })
65
+ return result
66
+ }
67
+
68
+ const getChatroomAdmins = async () => {
69
+ const result = await imChatroom.getRoomAdmins()
70
+ setAdmins(result)
71
+ return result
72
+ }
73
+
74
+ const getChatroomBan = async () => {
75
+ const { items: whiteItems } = await imChatroom.getAllowSpeech()
76
+ let newBan
77
+ if (whiteItems.length) {
78
+ newBan = {
79
+ type: BAN_TYPE.WHITE,
80
+ items: whiteItems.map((uid) => ({
81
+ user_id: String(uid)
82
+ }))
83
+ }
84
+ } else {
85
+ const blackItems = await imChatroom.getAllForbiddens()
86
+ newBan = {
87
+ type: BAN_TYPE.BLACK,
88
+ items: blackItems
89
+ }
90
+ }
91
+ setBan(newBan)
92
+ return newBan
93
+ }
94
+
95
+ const setChatroomStickedMessages = async (messages) => {
96
+ setStickedMessages(messages || [])
97
+ }
98
+
99
+ const deleteChatroomStickMessages = async () => {
100
+ const result = await imChatroom.deleteTop(urlConfig.roomId)
101
+ setStickedMessages([])
102
+ return result
103
+ }
104
+
105
+ const getChatroomNotice = async () => {
106
+ const result = await imChatroom.getNotices()
107
+ const { items } = result
108
+ if (items.length) {
109
+ const currentNotice = items[0]
110
+ setNotice(currentNotice)
111
+ return currentNotice
112
+ }
113
+ setNotice(null)
114
+ return null
115
+ }
116
+
117
+ const setChatroomNotice = async (content) => {
118
+ const result = await imChatroom.addNotice({
119
+ content
120
+ })
121
+ setNotice(result)
122
+ return result
123
+ }
124
+
125
+ actions.setChatroomStickedMessages = setChatroomStickedMessages
126
+ actions.updateChatroomBan = updateChatroomBan
127
+ actions.getChatroomBan = getChatroomBan
128
+ actions.setChatroomBan = setChatroomBan
129
+ actions.updateChatroomBan = updateChatroomBan
130
+
131
+ return {
132
+ userRole,
133
+ room,
134
+ stickedMessages,
135
+ owner,
136
+ admins,
137
+ ban,
138
+ notice,
139
+ loginChatroom,
140
+ setChatroomBan,
141
+ updateChatroomBan,
142
+ setChatroomStickedMessages,
143
+ deleteChatroomStickMessages,
144
+ getChatroom,
145
+ getChatroomAdmins,
146
+ getChatroomBan,
147
+ getChatroomNotice,
148
+ setChatroomNotice
149
+ }
150
+ }
151
+
152
+ export const ChatRoomContext = createContext()
153
+
154
+ export const useChatroom = () => useContext(ChatRoomContext)
@@ -1,28 +1,28 @@
1
- import {
2
- createContext,
3
- useContext,
4
- useState
5
- } from 'react'
6
- import { CONNECT_STATUS } from '../constants'
7
-
8
- export function useConnectRoot() {
9
- const [status, setStatusHook] = useState(CONNECT_STATUS.CONNECTING)
10
- const [times, setTimes] = useState(0)
11
-
12
- const setStatus = (newStatus) => {
13
- setStatusHook(newStatus)
14
- if (newStatus === CONNECT_STATUS.LOGIN_SUCCESS) {
15
- setTimes(times + 1)
16
- }
17
- }
18
-
19
- return {
20
- status,
21
- times,
22
- setStatus
23
- }
24
- }
25
-
26
- export const ConnectContext = createContext()
27
-
28
- export const useConnect = () => useContext(ConnectContext)
1
+ import {
2
+ createContext,
3
+ useContext,
4
+ useState
5
+ } from 'react'
6
+ import { CONNECT_STATUS } from '../constants'
7
+
8
+ export function useConnectRoot() {
9
+ const [status, setStatusHook] = useState(CONNECT_STATUS.CONNECTING)
10
+ const [times, setTimes] = useState(0)
11
+
12
+ const setStatus = (newStatus) => {
13
+ setStatusHook(newStatus)
14
+ if (newStatus === CONNECT_STATUS.LOGIN_SUCCESS) {
15
+ setTimes(times + 1)
16
+ }
17
+ }
18
+
19
+ return {
20
+ status,
21
+ times,
22
+ setStatus
23
+ }
24
+ }
25
+
26
+ export const ConnectContext = createContext()
27
+
28
+ export const useConnect = () => useContext(ConnectContext)
@@ -1,73 +1,73 @@
1
- {
2
- "action": {
3
- "retry": "Try AgainTry Again",
4
- "edit": "Edit",
5
- "save": "Save",
6
- "cancel": "Cancel"
7
- },
8
- "tip": {
9
- "maxInputLength": "Maximum {n} characters.",
10
- "copied": "Copied",
11
- "noMoreMessage": "No more messages"
12
- },
13
- "title": {
14
- "notice": "Notice",
15
- "fontSize": "Font Size",
16
- "chat": "Chat",
17
- "member": "Online Member"
18
- },
19
- "connect": {
20
- "status": {
21
- "0": "Failed to load the chat room information.",
22
- "1": "Connecting to the chat server... Please wait.",
23
- "2": "Network disconnected",
24
- "3": "Chat service connected",
25
- "4": "Failed to connect to chat service",
26
- "5": "You're offline as your account has been logged in on another device.",
27
- "6": "You've been removed from the chat room by the administrator.",
28
- "7": "The chat room has been deleted.",
29
- "8": "Network Error"
30
- }
31
- },
32
- "tag": {
33
- "role": {
34
- "1": "Administrator",
35
- "2": "Creator"
36
- },
37
- "baned": "Muted"
38
- },
39
- "message": {
40
- "stick": {
41
- "cancel": "Cancel sticky"
42
- },
43
- "recallByWS": "Recall",
44
- "delete": "Delete"
45
- },
46
- "editor": {
47
- "disabled": {
48
- "baned": "Muted"
49
- }
50
- },
51
- "fontSize": {
52
- "12": "Extremely small",
53
- "14": "",
54
- "16": "Medium",
55
- "18": "",
56
- "20": "Great"
57
- },
58
- "error": {
59
- "networkError": "Network Error",
60
- "serviceError": "Service request exception",
61
- "IMCORE/RECALL_MESSAGE_TIMEOUT": "Failed to recall the message as it was sent more than 5 min ago.",
62
- "IMCORE/CHATROOM_RECALL_MSG_TIMEOUT": "Failed to recall the message as it was sent more than 5 min ago.",
63
- "IMCORE/DISP_FOUND_SENSITIVE_WORD_LOCATION":"Banned words contained"
64
- },
65
- "modal": {
66
- "title": "Reminder",
67
- "content": {
68
- "deleteMessage": "The message will no longer be visible once deleted. Are you sure to continue?"
69
- },
70
- "cancel": "Cancel",
71
- "ok": "OK"
72
- }
73
- }
1
+ {
2
+ "action": {
3
+ "retry": "Try AgainTry Again",
4
+ "edit": "Edit",
5
+ "save": "Save",
6
+ "cancel": "Cancel"
7
+ },
8
+ "tip": {
9
+ "maxInputLength": "Maximum {n} characters.",
10
+ "copied": "Copied",
11
+ "noMoreMessage": "No more messages"
12
+ },
13
+ "title": {
14
+ "notice": "Notice",
15
+ "fontSize": "Font Size",
16
+ "chat": "Chat",
17
+ "member": "Online Member"
18
+ },
19
+ "connect": {
20
+ "status": {
21
+ "0": "Failed to load the chat room information.",
22
+ "1": "Connecting to the chat server... Please wait.",
23
+ "2": "Network disconnected",
24
+ "3": "Chat service connected",
25
+ "4": "Failed to connect to chat service",
26
+ "5": "You're offline as your account has been logged in on another device.",
27
+ "6": "You've been removed from the chat room by the administrator.",
28
+ "7": "The chat room has been deleted.",
29
+ "8": "Network Error"
30
+ }
31
+ },
32
+ "tag": {
33
+ "role": {
34
+ "1": "Administrator",
35
+ "2": "Creator"
36
+ },
37
+ "baned": "Muted"
38
+ },
39
+ "message": {
40
+ "stick": {
41
+ "cancel": "Cancel sticky"
42
+ },
43
+ "recallByWS": "Recall",
44
+ "delete": "Delete"
45
+ },
46
+ "editor": {
47
+ "disabled": {
48
+ "baned": "Muted"
49
+ }
50
+ },
51
+ "fontSize": {
52
+ "12": "Extremely small",
53
+ "14": "",
54
+ "16": "Medium",
55
+ "18": "",
56
+ "20": "Great"
57
+ },
58
+ "error": {
59
+ "networkError": "Network Error",
60
+ "serviceError": "Service request exception",
61
+ "IMCORE/RECALL_MESSAGE_TIMEOUT": "Failed to recall the message as it was sent more than 5 min ago.",
62
+ "IMCORE/CHATROOM_RECALL_MSG_TIMEOUT": "Failed to recall the message as it was sent more than 5 min ago.",
63
+ "IMCORE/DISP_FOUND_SENSITIVE_WORD_LOCATION":"Banned words contained"
64
+ },
65
+ "modal": {
66
+ "title": "Reminder",
67
+ "content": {
68
+ "deleteMessage": "The message will no longer be visible once deleted. Are you sure to continue?"
69
+ },
70
+ "cancel": "Cancel",
71
+ "ok": "OK"
72
+ }
73
+ }
@@ -1,14 +1,14 @@
1
- import getByPath from 'lodash/get'
2
- import locale from './zh-CN/index.json'
3
-
4
- const i18n = {
5
- get(path) {
6
- const result = getByPath(locale, path)
7
- if (result === undefined || result === null) {
8
- return path
9
- }
10
- return result
11
- }
12
- }
13
-
14
- export default i18n
1
+ import getByPath from 'lodash/get'
2
+ import locale from './zh-CN/index.json'
3
+
4
+ const i18n = {
5
+ get(path) {
6
+ const result = getByPath(locale, path)
7
+ if (result === undefined || result === null) {
8
+ return path
9
+ }
10
+ return result
11
+ }
12
+ }
13
+
14
+ export default i18n
@@ -1,9 +1,9 @@
1
- // 被 node 环境调用,请勿使用 export/import
2
- module.exports = {
3
- 'zh-CN': {
4
- label: '简体中文'
5
- },
6
- en: {
7
- label: 'English'
8
- }
9
- }
1
+ // 被 node 环境调用,请勿使用 export/import
2
+ module.exports = {
3
+ 'zh-CN': {
4
+ label: '简体中文'
5
+ },
6
+ en: {
7
+ label: 'English'
8
+ }
9
+ }