@x-edu/live-player 0.0.32 → 0.0.33

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 (304) 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 +11429 -892
  9. package/dist/XEduLivePlayerPre.common.js +11416 -879
  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 +98 -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 +32 -32
  155. package/src/component/Pagination/index.module.less +117 -117
  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 +190 -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 +68 -68
  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 +483 -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 +109 -109
  249. package/src/list/ListItem/Action/index.module.less +25 -25
  250. package/src/list/ListItem/img/dianzan.svg +4 -4
  251. package/src/list/ListItem/img/like-fill.svg +8 -8
  252. package/src/list/ListItem/img/play.svg +15 -15
  253. package/src/list/ListItem/img/view-fill.svg +8 -8
  254. package/src/list/ListItem/img/yiguankan.svg +3 -3
  255. package/src/list/ListItem/index.module.less +158 -158
  256. package/src/list/index.jsx +241 -240
  257. package/src/list/index.module.less +38 -38
  258. package/src/service/common.js +73 -73
  259. package/src/service/content-mgr.js +73 -73
  260. package/src/service/im-group.js +12 -12
  261. package/src/service/im.js +7 -7
  262. package/src/service/imBroadcasts.js +33 -33
  263. package/src/service/like.js +134 -134
  264. package/src/service/live.js +293 -293
  265. package/src/service/manageApi.js +7 -7
  266. package/src/service/managePortal.js +6 -6
  267. package/src/service/myStudyRecord.js +93 -93
  268. package/src/service/navigation.js +47 -47
  269. package/src/service/ndMeeting.js +10 -10
  270. package/src/service/ndr.js +122 -122
  271. package/src/service/news.js +93 -93
  272. package/src/service/personalCenter.js +270 -270
  273. package/src/service/qualityCourse.js +31 -31
  274. package/src/service/recommend.js +81 -81
  275. package/src/service/school.js +323 -323
  276. package/src/service/search.js +170 -170
  277. package/src/service/site-config.js +7 -7
  278. package/src/service/socialCensor.js +45 -45
  279. package/src/service/specialEdu.js +31 -31
  280. package/src/service/suggestion.js +85 -85
  281. package/src/service/syncClassroom.js +321 -321
  282. package/src/service/tCourse.js +204 -204
  283. package/src/service/tchTraining.js +37 -37
  284. package/src/service/uc.js +45 -45
  285. package/src/util/app.js +1 -1
  286. package/src/util/array.js +3 -3
  287. package/src/util/auth/func.js +57 -57
  288. package/src/util/date.js +53 -53
  289. package/src/util/env.js +9 -9
  290. package/src/util/getTimestamp.js +10 -10
  291. package/src/util/hof.js +105 -105
  292. package/src/util/live/index.js +42 -42
  293. package/src/util/liveCountUtil.js +52 -52
  294. package/src/util/netUrl.js +35 -35
  295. package/src/util/object.js +13 -13
  296. package/src/util/push/index.js +58 -58
  297. package/src/util/request.js +227 -227
  298. package/src/util/type.js +17 -17
  299. package/src/util/url.js +203 -203
  300. package/src/util/video.js +26 -26
  301. package/test/setup.js +21 -21
  302. package/test/unit/component/header/logo.spec.jsx +8 -8
  303. package/test/unit/helper.jsx +25 -25
  304. package/test/unit/util/date.spec.js +40 -40
@@ -1,109 +1,109 @@
1
- import React, { useState } from 'react'
2
- import classNames from 'classnames'
3
- import { message } from 'fish'
4
- import { find } from 'lodash'
5
- import { openLiveSubscribe } from '@/service/live'
6
- import style from './index.module.less'
7
-
8
- const Actions = {
9
- 1: '进入直播', // 直播中 或者开播前15min
10
- 2: '观看回放', // 回放
11
- 3: '预约', // 预告 且开播时间大于 15min
12
- 4: '已预约'
13
- }
14
-
15
- export default function Action({
16
- data,
17
- subscription,
18
- onActionDetailClick,
19
- handleLogin,
20
- isLogin,
21
- onSubscribe,
22
- setIsSubscribe,
23
- status
24
- }) {
25
- const { live_id: liveId, begin_time: beginTime } = data
26
- const [curAction, setCurAction] = useState(() => {
27
- let actionNum
28
- if (status === 1 || status === 3) {
29
- actionNum = 1
30
- } else if (status === 2) {
31
- actionNum = 2
32
- } else { // status = 0
33
- // 如果超过了开播时间,不管有没有预约,都直接进入直播
34
- const now = new Date().getTime()
35
- const begin = new Date(beginTime).getTime()
36
- if (now > begin) {
37
- actionNum = 1
38
- return actionNum
39
- }
40
- // 开播前15分钟,只提供进入直播按钮
41
- if (begin > now && (begin - now) < 15 * 60 * 1000) {
42
- actionNum = 1
43
- return actionNum
44
- }
45
- // 开播前15分钟之外
46
- const subscriptionItem = find(subscription, {
47
- live_id: liveId
48
- })
49
- if (subscriptionItem?.is_subscribe) { // 已预约
50
- actionNum = 4
51
- } else { // 未预约
52
- actionNum = 3
53
- }
54
- }
55
- return actionNum
56
- })
57
-
58
- const handleBtnClick = async (e) => {
59
- e.stopPropagation()
60
- if (curAction === 3) {
61
- try {
62
- if (!isLogin) {
63
- handleLogin(data)
64
- return
65
- }
66
-
67
- await openLiveSubscribe({
68
- liveId
69
- })
70
- message.success('预约成功')
71
- const now = new Date().getTime()
72
- const begin = new Date(beginTime).getTime()
73
- setIsSubscribe(true)
74
- if (begin > now && (begin - now) < 15 * 60 * 1000) {
75
- setCurAction(1)
76
- } else {
77
- setCurAction(4)
78
- }
79
- onSubscribe({
80
- ...data,
81
- is_subscribe: true
82
- })
83
- } catch (error) {
84
- onSubscribe({
85
- ...data,
86
- is_subscribe: false
87
- })
88
- if (error?.response?.data?.message === '直播开始前15分钟无法预约') {
89
- setCurAction(3)
90
- }
91
- message.error(error?.response?.data?.message || '预约失败,请稍后重试')
92
- }
93
- } else {
94
- onActionDetailClick()
95
- }
96
- }
97
-
98
- return (
99
- <div
100
- className={classNames(style.action, {
101
- [style['action-subscribe']]: curAction === 3,
102
- [style['action-has-subscribe']]: curAction === 4
103
- })}
104
- onClick={handleBtnClick}
105
- >
106
- {Actions[curAction]}
107
- </div>
108
- )
109
- }
1
+ import React, { useState } from 'react'
2
+ import classNames from 'classnames'
3
+ import { message } from 'fish'
4
+ import { find } from 'lodash'
5
+ import { openLiveSubscribe } from '@/service/live'
6
+ import style from './index.module.less'
7
+
8
+ const Actions = {
9
+ 1: '进入直播', // 直播中 或者开播前15min
10
+ 2: '观看回放', // 回放
11
+ 3: '预约', // 预告 且开播时间大于 15min
12
+ 4: '已预约'
13
+ }
14
+
15
+ export default function Action({
16
+ data,
17
+ subscription,
18
+ onActionDetailClick,
19
+ handleLogin,
20
+ isLogin,
21
+ onSubscribe,
22
+ setIsSubscribe,
23
+ status
24
+ }) {
25
+ const { live_id: liveId, begin_time: beginTime } = data
26
+ const [curAction, setCurAction] = useState(() => {
27
+ let actionNum
28
+ if (status === 1 || status === 3) {
29
+ actionNum = 1
30
+ } else if (status === 2) {
31
+ actionNum = 2
32
+ } else { // status = 0
33
+ // 如果超过了开播时间,不管有没有预约,都直接进入直播
34
+ const now = new Date().getTime()
35
+ const begin = new Date(beginTime).getTime()
36
+ if (now > begin) {
37
+ actionNum = 1
38
+ return actionNum
39
+ }
40
+ // 开播前15分钟,只提供进入直播按钮
41
+ if (begin > now && (begin - now) < 15 * 60 * 1000) {
42
+ actionNum = 1
43
+ return actionNum
44
+ }
45
+ // 开播前15分钟之外
46
+ const subscriptionItem = find(subscription, {
47
+ live_id: liveId
48
+ })
49
+ if (subscriptionItem?.is_subscribe) { // 已预约
50
+ actionNum = 4
51
+ } else { // 未预约
52
+ actionNum = 3
53
+ }
54
+ }
55
+ return actionNum
56
+ })
57
+
58
+ const handleBtnClick = async (e) => {
59
+ e.stopPropagation()
60
+ if (curAction === 3) {
61
+ try {
62
+ if (!isLogin) {
63
+ handleLogin(data)
64
+ return
65
+ }
66
+
67
+ await openLiveSubscribe({
68
+ liveId
69
+ })
70
+ message.success('预约成功')
71
+ const now = new Date().getTime()
72
+ const begin = new Date(beginTime).getTime()
73
+ setIsSubscribe(true)
74
+ if (begin > now && (begin - now) < 15 * 60 * 1000) {
75
+ setCurAction(1)
76
+ } else {
77
+ setCurAction(4)
78
+ }
79
+ onSubscribe({
80
+ ...data,
81
+ is_subscribe: true
82
+ })
83
+ } catch (error) {
84
+ onSubscribe({
85
+ ...data,
86
+ is_subscribe: false
87
+ })
88
+ if (error?.response?.data?.message === '直播开始前15分钟无法预约') {
89
+ setCurAction(3)
90
+ }
91
+ message.error(error?.response?.data?.message || '预约失败,请稍后重试')
92
+ }
93
+ } else {
94
+ onActionDetailClick()
95
+ }
96
+ }
97
+
98
+ return (
99
+ <div
100
+ className={classNames(style.action, {
101
+ [style['action-subscribe']]: curAction === 3,
102
+ [style['action-has-subscribe']]: curAction === 4
103
+ })}
104
+ onClick={handleBtnClick}
105
+ >
106
+ {Actions[curAction]}
107
+ </div>
108
+ )
109
+ }
@@ -1,26 +1,26 @@
1
- .action {
2
- font-size: 14px;
3
- line-height: 22px;
4
- color: #1E62EC;
5
- border-radius: 144.889px;
6
- border: 1px solid #1E62EC;
7
- width: 88px;
8
- height: 32px;
9
- display: flex;
10
- align-items: center;
11
- justify-content: center;
12
- margin-top: 8px;
13
-
14
- &:hover {
15
- color: #4079EF;
16
- border: 1px solid #4079EF;
17
-
18
- }
19
- }
20
-
21
-
22
-
23
- .action-has-subscribe {
24
- border: 1px solid #B7CCF9 !important;
25
- color: #B7CCF9 !important;
1
+ .action {
2
+ font-size: 14px;
3
+ line-height: 22px;
4
+ color: #1E62EC;
5
+ border-radius: 144.889px;
6
+ border: 1px solid #1E62EC;
7
+ width: 88px;
8
+ height: 32px;
9
+ display: flex;
10
+ align-items: center;
11
+ justify-content: center;
12
+ margin-top: 8px;
13
+
14
+ &:hover {
15
+ color: #4079EF;
16
+ border: 1px solid #4079EF;
17
+
18
+ }
19
+ }
20
+
21
+
22
+
23
+ .action-has-subscribe {
24
+ border: 1px solid #B7CCF9 !important;
25
+ color: #B7CCF9 !important;
26
26
  }
@@ -1,4 +1,4 @@
1
- <svg width="14" height="14" viewBox="0 0 14 14" fill="none" xmlns="http://www.w3.org/2000/svg">
2
- <path d="M7.89813 1.82793L4.50419 5.22187C4.40473 5.3213 4.34884 5.45616 4.34881 5.5968V11.7409C4.34881 12.0338 4.58623 12.2712 4.87911 12.2712H10.6223C10.8372 12.2713 11.0309 12.1416 11.1128 11.9429L12.7541 7.95771C12.8068 7.8295 12.8338 7.69222 12.8337 7.55361V6.43786C12.8337 5.8521 12.3588 5.37725 11.7731 5.37725H8.37911L8.99055 2.97498C9.06988 2.6637 8.95419 2.33526 8.69729 2.1424L8.24495 1.80301C8.13927 1.72378 7.99139 1.7344 7.89813 1.82793Z" fill="#CCCCCC"/>
3
- <path d="M3.2882 5.90755H1.6973C1.40442 5.90755 1.16699 6.14498 1.16699 6.43786V11.7409C1.16699 12.0338 1.40442 12.2712 1.6973 12.2712H3.2882V5.90755Z" fill="#CCCCCC"/>
4
- </svg>
1
+ <svg width="14" height="14" viewBox="0 0 14 14" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path d="M7.89813 1.82793L4.50419 5.22187C4.40473 5.3213 4.34884 5.45616 4.34881 5.5968V11.7409C4.34881 12.0338 4.58623 12.2712 4.87911 12.2712H10.6223C10.8372 12.2713 11.0309 12.1416 11.1128 11.9429L12.7541 7.95771C12.8068 7.8295 12.8338 7.69222 12.8337 7.55361V6.43786C12.8337 5.8521 12.3588 5.37725 11.7731 5.37725H8.37911L8.99055 2.97498C9.06988 2.6637 8.95419 2.33526 8.69729 2.1424L8.24495 1.80301C8.13927 1.72378 7.99139 1.7344 7.89813 1.82793Z" fill="#CCCCCC"/>
3
+ <path d="M3.2882 5.90755H1.6973C1.40442 5.90755 1.16699 6.14498 1.16699 6.43786V11.7409C1.16699 12.0338 1.40442 12.2712 1.6973 12.2712H3.2882V5.90755Z" fill="#CCCCCC"/>
4
+ </svg>
@@ -1,8 +1,8 @@
1
- <svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
2
- <g id="icon_planar/web_icon_&#231;&#130;&#185;&#232;&#181;&#158;_fill">
3
- <g id="&#232;&#183;&#175;&#229;&#190;&#132;">
4
- <path d="M9.02622 2.08907L5.14744 5.96785C5.03377 6.08149 4.96989 6.23561 4.96986 6.39634V13.4182C4.96986 13.7529 5.2412 14.0242 5.57592 14.0242H12.1396C12.3852 14.0243 12.6066 13.8762 12.7002 13.6491L14.5759 9.09452C14.6361 8.948 14.667 8.7911 14.6668 8.6327V7.35755C14.6668 6.68812 14.1241 6.14543 13.4547 6.14543H9.57592L10.2747 3.39998C10.3654 3.04423 10.2332 2.66887 9.93956 2.44846L9.42259 2.06058C9.30181 1.97003 9.13281 1.98218 9.02622 2.08907Z" fill="#CCCCCC"/>
5
- <path d="M3.75774 6.75149H1.93956C1.60484 6.75149 1.3335 7.02283 1.3335 7.35755V13.4182C1.3335 13.7529 1.60484 14.0242 1.93956 14.0242H3.75774V6.75149Z" fill="#CCCCCC"/>
6
- </g>
7
- </g>
8
- </svg>
1
+ <svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <g id="icon_planar/web_icon_&#231;&#130;&#185;&#232;&#181;&#158;_fill">
3
+ <g id="&#232;&#183;&#175;&#229;&#190;&#132;">
4
+ <path d="M9.02622 2.08907L5.14744 5.96785C5.03377 6.08149 4.96989 6.23561 4.96986 6.39634V13.4182C4.96986 13.7529 5.2412 14.0242 5.57592 14.0242H12.1396C12.3852 14.0243 12.6066 13.8762 12.7002 13.6491L14.5759 9.09452C14.6361 8.948 14.667 8.7911 14.6668 8.6327V7.35755C14.6668 6.68812 14.1241 6.14543 13.4547 6.14543H9.57592L10.2747 3.39998C10.3654 3.04423 10.2332 2.66887 9.93956 2.44846L9.42259 2.06058C9.30181 1.97003 9.13281 1.98218 9.02622 2.08907Z" fill="#CCCCCC"/>
5
+ <path d="M3.75774 6.75149H1.93956C1.60484 6.75149 1.3335 7.02283 1.3335 7.35755V13.4182C1.3335 13.7529 1.60484 14.0242 1.93956 14.0242H3.75774V6.75149Z" fill="#CCCCCC"/>
6
+ </g>
7
+ </g>
8
+ </svg>
@@ -1,16 +1,16 @@
1
- <svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px"
2
- y="0px" width="24px" height="24px" viewBox="0 0 24 24" style="enable-background:new 0 0 50 50;" xml:space="preserve">
3
- <rect x="0" y="0" width="4" height="7" fill="#fff">
4
- <animateTransform attributeType="xml" attributeName="transform" type="scale" values="1,1; 1,3; 1,1" begin="0s"
5
- dur="0.6s" repeatCount="indefinite" />
6
- </rect>
7
-
8
- <rect x="10" y="0" width="4" height="7" fill="#fff">
9
- <animateTransform attributeType="xml" attributeName="transform" type="scale" values="1,1; 1,3; 1,1" begin="0.2s"
10
- dur="0.6s" repeatCount="indefinite" />
11
- </rect>
12
- <rect x="20" y="0" width="4" height="7" fill="#fff">
13
- <animateTransform attributeType="xml" attributeName="transform" type="scale" values="1,1; 1,3; 1,1" begin="0.4s"
14
- dur="0.6s" repeatCount="indefinite" />
15
- </rect>
1
+ <svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px"
2
+ y="0px" width="24px" height="24px" viewBox="0 0 24 24" style="enable-background:new 0 0 50 50;" xml:space="preserve">
3
+ <rect x="0" y="0" width="4" height="7" fill="#fff">
4
+ <animateTransform attributeType="xml" attributeName="transform" type="scale" values="1,1; 1,3; 1,1" begin="0s"
5
+ dur="0.6s" repeatCount="indefinite" />
6
+ </rect>
7
+
8
+ <rect x="10" y="0" width="4" height="7" fill="#fff">
9
+ <animateTransform attributeType="xml" attributeName="transform" type="scale" values="1,1; 1,3; 1,1" begin="0.2s"
10
+ dur="0.6s" repeatCount="indefinite" />
11
+ </rect>
12
+ <rect x="20" y="0" width="4" height="7" fill="#fff">
13
+ <animateTransform attributeType="xml" attributeName="transform" type="scale" values="1,1; 1,3; 1,1" begin="0.4s"
14
+ dur="0.6s" repeatCount="indefinite" />
15
+ </rect>
16
16
  </svg>
@@ -1,8 +1,8 @@
1
- <svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
2
- <g id="icon_planar/web_icon_&#230;&#181;&#143;&#232;&#167;&#136;&#233;&#135;&#143;_fill">
3
- <g id="&#232;&#183;&#175;&#229;&#190;&#132;">
4
- <path fill-rule="evenodd" clip-rule="evenodd" d="M8.0002 13C5.55571 13 3.37488 11.4573 1.46255 8.44367C1.29048 8.17291 1.29048 7.82709 1.46255 7.55633C3.37488 4.54267 5.55571 3 8.0002 3C10.4447 3 12.6255 4.54267 14.5379 7.55633C14.7099 7.82709 14.7099 8.17291 14.5379 8.44367C12.6255 11.4573 10.4447 13 8.0002 13ZM5.33352 8C5.33352 9.47276 6.52743 10.6667 8.00018 10.6667C9.47294 10.6667 10.6669 9.47276 10.6669 8C10.6669 6.52724 9.47294 5.33333 8.00018 5.33333C6.52743 5.33333 5.33352 6.52724 5.33352 8Z" fill="#CCCCCC"/>
5
- <path d="M9.34553 8C9.34553 8.73633 8.7432 9.33333 8.0002 9.33333C7.2572 9.33333 6.65487 8.73633 6.65487 8C6.65487 7.26367 7.2572 6.66667 8.0002 6.66667C8.7432 6.66667 9.34553 7.26367 9.34553 8Z" fill="#CCCCCC"/>
6
- </g>
7
- </g>
8
- </svg>
1
+ <svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <g id="icon_planar/web_icon_&#230;&#181;&#143;&#232;&#167;&#136;&#233;&#135;&#143;_fill">
3
+ <g id="&#232;&#183;&#175;&#229;&#190;&#132;">
4
+ <path fill-rule="evenodd" clip-rule="evenodd" d="M8.0002 13C5.55571 13 3.37488 11.4573 1.46255 8.44367C1.29048 8.17291 1.29048 7.82709 1.46255 7.55633C3.37488 4.54267 5.55571 3 8.0002 3C10.4447 3 12.6255 4.54267 14.5379 7.55633C14.7099 7.82709 14.7099 8.17291 14.5379 8.44367C12.6255 11.4573 10.4447 13 8.0002 13ZM5.33352 8C5.33352 9.47276 6.52743 10.6667 8.00018 10.6667C9.47294 10.6667 10.6669 9.47276 10.6669 8C10.6669 6.52724 9.47294 5.33333 8.00018 5.33333C6.52743 5.33333 5.33352 6.52724 5.33352 8Z" fill="#CCCCCC"/>
5
+ <path d="M9.34553 8C9.34553 8.73633 8.7432 9.33333 8.0002 9.33333C7.2572 9.33333 6.65487 8.73633 6.65487 8C6.65487 7.26367 7.2572 6.66667 8.0002 6.66667C8.7432 6.66667 9.34553 7.26367 9.34553 8Z" fill="#CCCCCC"/>
6
+ </g>
7
+ </g>
8
+ </svg>
@@ -1,3 +1,3 @@
1
- <svg width="15" height="14" viewBox="0 0 15 14" fill="none" xmlns="http://www.w3.org/2000/svg">
2
- <path fill-rule="evenodd" clip-rule="evenodd" d="M12.75 1.75033C12.75 1.42833 12.4887 1.16699 12.1667 1.16699H2.83333C2.51133 1.16699 2.25 1.42833 2.25 1.75033V12.2503C2.25 12.5723 2.51133 12.8337 2.83333 12.8337H12.1667C12.4887 12.8337 12.75 12.5723 12.75 12.2503V8.89149L9.97392 11.6676L7.49708 11.6641L7.50058 9.19191L12.75 3.94191V1.75033ZM14.0287 5.96316L13.2038 5.13833L8.66667 9.67549L8.6655 10.4992L9.4915 10.5003L14.0287 5.96316ZM7.5 7.00033H4.58333V8.16699H7.5V7.00033ZM4.58333 4.66699H9.25V5.83366H4.58333V4.66699Z" fill="#CCCCCC"/>
3
- </svg>
1
+ <svg width="15" height="14" viewBox="0 0 15 14" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path fill-rule="evenodd" clip-rule="evenodd" d="M12.75 1.75033C12.75 1.42833 12.4887 1.16699 12.1667 1.16699H2.83333C2.51133 1.16699 2.25 1.42833 2.25 1.75033V12.2503C2.25 12.5723 2.51133 12.8337 2.83333 12.8337H12.1667C12.4887 12.8337 12.75 12.5723 12.75 12.2503V8.89149L9.97392 11.6676L7.49708 11.6641L7.50058 9.19191L12.75 3.94191V1.75033ZM14.0287 5.96316L13.2038 5.13833L8.66667 9.67549L8.6655 10.4992L9.4915 10.5003L14.0287 5.96316ZM7.5 7.00033H4.58333V8.16699H7.5V7.00033ZM4.58333 4.66699H9.25V5.83366H4.58333V4.66699Z" fill="#CCCCCC"/>
3
+ </svg>