@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,74 +1,74 @@
1
- import config from '@/config/env'
2
-
3
- const { env } = config
4
-
5
- const likesCacheKey = `x-edu-web-open-live_${env}`
6
-
7
- const likesCountCacheKey = `x-edu-web-open-liveCount_${env}`
8
-
9
- // 缓存点赞数据
10
- export function saveLocalSend(resId, data) {
11
- try {
12
- const likesLocalData = JSON.parse(localStorage.getItem(likesCacheKey)) || {}
13
- likesLocalData[resId] = data
14
- localStorage.setItem(likesCacheKey, JSON.stringify(likesLocalData))
15
- } catch (e) {
16
- return null
17
- }
18
- }
19
-
20
- // 获取本地点赞数据
21
- export function getLocalSend(resId) {
22
- try {
23
- const likesLocalData = JSON.parse(localStorage.getItem(likesCacheKey)) || {}
24
- return likesLocalData[resId]
25
- } catch (e) {
26
- return null
27
- }
28
- }
29
-
30
- export function saveCacheCount(resId, count) {
31
- try {
32
- const likesCountLocalData = JSON.parse(localStorage.getItem(likesCountCacheKey)) || {}
33
- likesCountLocalData[resId] = count
34
- localStorage.setItem(likesCountCacheKey, JSON.stringify(likesCountLocalData))
35
- } catch (e) {
36
- return null
37
- }
38
- }
39
-
40
- // 获取本地点赞数据
41
- export function getCacheCount(resId) {
42
- try {
43
- const likesCountLocalData = JSON.parse(localStorage.getItem(likesCountCacheKey)) || {}
44
- return likesCountLocalData[resId]
45
- } catch (e) {
46
- return null
47
- }
48
- }
49
-
50
- /**
51
- * 格式化点赞数
52
- * a. < 10000 => 原样输出
53
- * b. >= 10000 => 以万(w)为单位,保留一位小数 10000-10999 => 1w+ 11000-11999 => 1.1w+
54
- * c. >= 100000 => 10w+
55
- * @param {number} count 点赞数量
56
- * @param {number} point 保留小数点位数(情况b)
57
- * @return {string} 格式化后的点赞数
58
- */
59
- export function formatCount(count, point = 1) {
60
- const countStr = count.toString()
61
- const baseNum = Number('1'.padEnd(countStr.length, '0'))
62
-
63
- if (countStr.length < 5) {
64
- return countStr
65
- } else if (countStr.length < 6) {
66
- // 整数
67
- const int = parseFloat(parseInt(count / baseNum, 10))
68
- // 截取几位小数(非四舍五入)
69
- const decimal = Number(countStr.substring(1, 1 + point))
70
- return `${int}${decimal ? `.${decimal}` : ''}w+`
71
- } else {
72
- return '10w+'
73
- }
74
- }
1
+ import config from '@/config/env'
2
+
3
+ const { env } = config
4
+
5
+ const likesCacheKey = `x-edu-web-open-live_${env}`
6
+
7
+ const likesCountCacheKey = `x-edu-web-open-liveCount_${env}`
8
+
9
+ // 缓存点赞数据
10
+ export function saveLocalSend(resId, data) {
11
+ try {
12
+ const likesLocalData = JSON.parse(localStorage.getItem(likesCacheKey)) || {}
13
+ likesLocalData[resId] = data
14
+ localStorage.setItem(likesCacheKey, JSON.stringify(likesLocalData))
15
+ } catch (e) {
16
+ return null
17
+ }
18
+ }
19
+
20
+ // 获取本地点赞数据
21
+ export function getLocalSend(resId) {
22
+ try {
23
+ const likesLocalData = JSON.parse(localStorage.getItem(likesCacheKey)) || {}
24
+ return likesLocalData[resId]
25
+ } catch (e) {
26
+ return null
27
+ }
28
+ }
29
+
30
+ export function saveCacheCount(resId, count) {
31
+ try {
32
+ const likesCountLocalData = JSON.parse(localStorage.getItem(likesCountCacheKey)) || {}
33
+ likesCountLocalData[resId] = count
34
+ localStorage.setItem(likesCountCacheKey, JSON.stringify(likesCountLocalData))
35
+ } catch (e) {
36
+ return null
37
+ }
38
+ }
39
+
40
+ // 获取本地点赞数据
41
+ export function getCacheCount(resId) {
42
+ try {
43
+ const likesCountLocalData = JSON.parse(localStorage.getItem(likesCountCacheKey)) || {}
44
+ return likesCountLocalData[resId]
45
+ } catch (e) {
46
+ return null
47
+ }
48
+ }
49
+
50
+ /**
51
+ * 格式化点赞数
52
+ * a. < 10000 => 原样输出
53
+ * b. >= 10000 => 以万(w)为单位,保留一位小数 10000-10999 => 1w+ 11000-11999 => 1.1w+
54
+ * c. >= 100000 => 10w+
55
+ * @param {number} count 点赞数量
56
+ * @param {number} point 保留小数点位数(情况b)
57
+ * @return {string} 格式化后的点赞数
58
+ */
59
+ export function formatCount(count, point = 1) {
60
+ const countStr = count.toString()
61
+ const baseNum = Number('1'.padEnd(countStr.length, '0'))
62
+
63
+ if (countStr.length < 5) {
64
+ return countStr
65
+ } else if (countStr.length < 6) {
66
+ // 整数
67
+ const int = parseFloat(parseInt(count / baseNum, 10))
68
+ // 截取几位小数(非四舍五入)
69
+ const decimal = Number(countStr.substring(1, 1 + point))
70
+ return `${int}${decimal ? `.${decimal}` : ''}w+`
71
+ } else {
72
+ return '10w+'
73
+ }
74
+ }
@@ -1,88 +1,88 @@
1
- /* eslint-disable no-nested-ternary */
2
- import React, { useState } from 'react'
3
- import dayjs from 'dayjs'
4
- import useInterval from '@/hook/useInterval'
5
- import style from './index.module.less'
6
- import usePullSource from '../hook/usePullSource'
7
- import { SUB_TYPE } from '@/config/publicLive'
8
-
9
- export default function AnchorOnTheWay({
10
- liveInfo,
11
- isStreamLive,
12
- hasPlayed,
13
- reload,
14
- onStatusChange
15
- }) {
16
- const [isAfterEndTime, setIsAfterEndTime] = useState(
17
- dayjs().isAfter(dayjs(liveInfo.end_time))
18
- )
19
-
20
- useInterval(() => {
21
- setIsAfterEndTime(dayjs().isAfter(dayjs(liveInfo.end_time)))
22
- }, 1000)
23
-
24
- usePullSource({
25
- liveInfo,
26
- reload,
27
- onStatusChange,
28
- shouldStartPull: isStreamLive
29
- })
30
-
31
- const hasMultiLines = liveInfo?.imInfo?.param?.lines?.length > 1
32
- const isNDMeeting = liveInfo.sub_type === SUB_TYPE.NET_DRAGON
33
- return (
34
- <>
35
- {isAfterEndTime && !isNDMeeting
36
- ? (
37
- <div className={style['status-completed']}>
38
- <div className={style.icon} />
39
- <div className={style.text}>已结束</div>
40
- </div>
41
- ) : (
42
- <div className={style['status-exception']}>
43
- <div className={style.icon} />
44
- <div className={style.text}>
45
- {
46
- isStreamLive
47
- ? (hasPlayed
48
- ? (
49
- <>
50
- <div>
51
- {isNDMeeting
52
- ? '主播正在赶来的路上...'
53
- : '加载中...'}
54
- </div>
55
- {
56
- hasMultiLines ? (
57
- <div
58
- style={{
59
- fontSize: '20px',
60
- fontWeight: 'normal',
61
- margin: '10px 0'
62
- }}
63
- >
64
- 尝试切换线路看看吧~
65
- </div>
66
- )
67
- : <></>
68
- }
69
- </>
70
- )
71
- : (
72
- <>
73
- <div>
74
- {isNDMeeting
75
- ? '主播正在赶来的路上...'
76
- : '等待开播中...'}
77
- </div>
78
- </>
79
- )
80
- )
81
- : '主播正在赶来的路上...'
82
- }
83
- </div>
84
- </div>
85
- )}
86
- </>
87
- )
88
- }
1
+ /* eslint-disable no-nested-ternary */
2
+ import React, { useState } from 'react'
3
+ import dayjs from 'dayjs'
4
+ import useInterval from '@/hook/useInterval'
5
+ import style from './index.module.less'
6
+ import usePullSource from '../hook/usePullSource'
7
+ import { SUB_TYPE } from '@/config/publicLive'
8
+
9
+ export default function AnchorOnTheWay({
10
+ liveInfo,
11
+ isStreamLive,
12
+ hasPlayed,
13
+ reload,
14
+ onStatusChange
15
+ }) {
16
+ const [isAfterEndTime, setIsAfterEndTime] = useState(
17
+ dayjs().isAfter(dayjs(liveInfo.end_time))
18
+ )
19
+
20
+ useInterval(() => {
21
+ setIsAfterEndTime(dayjs().isAfter(dayjs(liveInfo.end_time)))
22
+ }, 1000)
23
+
24
+ usePullSource({
25
+ liveInfo,
26
+ reload,
27
+ onStatusChange,
28
+ shouldStartPull: isStreamLive
29
+ })
30
+
31
+ const hasMultiLines = liveInfo?.imInfo?.param?.lines?.length > 1
32
+ const isNDMeeting = liveInfo.sub_type === SUB_TYPE.NET_DRAGON
33
+ return (
34
+ <>
35
+ {isAfterEndTime && !isNDMeeting
36
+ ? (
37
+ <div className={style['status-completed']}>
38
+ <div className={style.icon} />
39
+ <div className={style.text}>已结束</div>
40
+ </div>
41
+ ) : (
42
+ <div className={style['status-exception']}>
43
+ <div className={style.icon} />
44
+ <div className={style.text}>
45
+ {
46
+ isStreamLive
47
+ ? (hasPlayed
48
+ ? (
49
+ <>
50
+ <div>
51
+ {isNDMeeting
52
+ ? '主播正在赶来的路上...'
53
+ : '加载中...'}
54
+ </div>
55
+ {
56
+ hasMultiLines ? (
57
+ <div
58
+ style={{
59
+ fontSize: '20px',
60
+ fontWeight: 'normal',
61
+ margin: '10px 0'
62
+ }}
63
+ >
64
+ 尝试切换线路看看吧~
65
+ </div>
66
+ )
67
+ : <></>
68
+ }
69
+ </>
70
+ )
71
+ : (
72
+ <>
73
+ <div>
74
+ {isNDMeeting
75
+ ? '主播正在赶来的路上...'
76
+ : '等待开播中...'}
77
+ </div>
78
+ </>
79
+ )
80
+ )
81
+ : '主播正在赶来的路上...'
82
+ }
83
+ </div>
84
+ </div>
85
+ )}
86
+ </>
87
+ )
88
+ }