14918.js 17 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290
  1. exports.id = 14918;
  2. exports.ids = [14918];
  3. exports.modules = {
  4. /***/ 14822:
  5. /***/ ((module) => {
  6. // Exports
  7. module.exports = {
  8. "ctaButton": "PlayRadioButton_ctaButton__cEBo8",
  9. "container": "PlayRadioButton_container___GD_P",
  10. "playRadioSection": "PlayRadioButton_playRadioSection__0qUwH",
  11. "stationTitle": "PlayRadioButton_stationTitle__QI0ui",
  12. "editStationButton": "PlayRadioButton_editStationButton__Esi_Y",
  13. "playPauseButton": "PlayRadioButton_playPauseButton__sHEjM"
  14. };
  15. /***/ }),
  16. /***/ 14918:
  17. /***/ ((module, __webpack_exports__, __webpack_require__) => {
  18. "use strict";
  19. __webpack_require__.a(module, async (__webpack_handle_async_dependencies__, __webpack_async_result__) => { try {
  20. __webpack_require__.r(__webpack_exports__);
  21. /* harmony export */ __webpack_require__.d(__webpack_exports__, {
  22. /* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
  23. /* harmony export */ });
  24. /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(20997);
  25. /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__);
  26. /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(16689);
  27. /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
  28. /* harmony import */ var _xstate_react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(59456);
  29. /* harmony import */ var _xstate_react__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_xstate_react__WEBPACK_IMPORTED_MODULE_2__);
  30. /* harmony import */ var next_translate_useTranslation__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(60866);
  31. /* harmony import */ var next_translate_useTranslation__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(next_translate_useTranslation__WEBPACK_IMPORTED_MODULE_3__);
  32. /* harmony import */ var _Radio_curatedStations__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(80701);
  33. /* harmony import */ var _Radio_types__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(16868);
  34. /* harmony import */ var _PlayRadioButton_module_scss__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(14822);
  35. /* harmony import */ var _PlayRadioButton_module_scss__WEBPACK_IMPORTED_MODULE_14___default = /*#__PURE__*/__webpack_require__.n(_PlayRadioButton_module_scss__WEBPACK_IMPORTED_MODULE_14__);
  36. /* harmony import */ var _RadioInformation__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(22390);
  37. /* harmony import */ var _dls_Button_Button__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(50497);
  38. /* harmony import */ var _dls_Spinner_Spinner__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(7190);
  39. /* harmony import */ var _icons_pause_svg__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(51512);
  40. /* harmony import */ var _icons_play_arrow_svg__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(27333);
  41. /* harmony import */ var _utils_eventLogger__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(55943);
  42. /* harmony import */ var src_xstate_actors_audioPlayer_selectors__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(16119);
  43. /* harmony import */ var src_xstate_AudioPlayerMachineContext__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(64564);
  44. var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([_RadioInformation__WEBPACK_IMPORTED_MODULE_6__, _dls_Button_Button__WEBPACK_IMPORTED_MODULE_7__, _utils_eventLogger__WEBPACK_IMPORTED_MODULE_11__, src_xstate_AudioPlayerMachineContext__WEBPACK_IMPORTED_MODULE_13__]);
  45. ([_RadioInformation__WEBPACK_IMPORTED_MODULE_6__, _dls_Button_Button__WEBPACK_IMPORTED_MODULE_7__, _utils_eventLogger__WEBPACK_IMPORTED_MODULE_11__, src_xstate_AudioPlayerMachineContext__WEBPACK_IMPORTED_MODULE_13__] = __webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__);
  46. /* eslint-disable react/no-multi-comp */
  47. const PlayRadioButton = ()=>{
  48. const { t } = next_translate_useTranslation__WEBPACK_IMPORTED_MODULE_3___default()("radio");
  49. const audioService = (0,react__WEBPACK_IMPORTED_MODULE_1__.useContext)(src_xstate_AudioPlayerMachineContext__WEBPACK_IMPORTED_MODULE_13__/* .AudioPlayerMachineContext */ .c);
  50. const isAudioPlaying = (0,_xstate_react__WEBPACK_IMPORTED_MODULE_2__.useSelector)(audioService, (state)=>state.matches("VISIBLE.AUDIO_PLAYER_INITIATED.PLAYING"));
  51. const isRadioMode = (0,_xstate_react__WEBPACK_IMPORTED_MODULE_2__.useSelector)(audioService, (state)=>!!state.context.radioActor);
  52. const isLoading = (0,_xstate_react__WEBPACK_IMPORTED_MODULE_2__.useSelector)(audioService, src_xstate_actors_audioPlayer_selectors__WEBPACK_IMPORTED_MODULE_12__/* .selectIsLoading */ .xU);
  53. // TODO: handle continue radio from last saved session
  54. const onPlayClicked = ()=>{
  55. if (isRadioMode) {
  56. audioService.send("TOGGLE");
  57. return;
  58. }
  59. const randomStationId = (0,_Radio_curatedStations__WEBPACK_IMPORTED_MODULE_4__/* .getRandomCuratedStationId */ .u)();
  60. (0,_utils_eventLogger__WEBPACK_IMPORTED_MODULE_11__/* .logButtonClick */ .MY)("play_radio", {
  61. stationId: randomStationId,
  62. type: _Radio_types__WEBPACK_IMPORTED_MODULE_5__/* .StationType.Curated */ .T.Curated
  63. });
  64. audioService.send({
  65. type: "PLAY_RADIO",
  66. stationId: Number(randomStationId),
  67. stationType: _Radio_types__WEBPACK_IMPORTED_MODULE_5__/* .StationType.Curated */ .T.Curated
  68. });
  69. };
  70. const onPauseClicked = ()=>{
  71. audioService.send("TOGGLE");
  72. };
  73. const { radioActor } = audioService.getSnapshot().context;
  74. return /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("div", {
  75. className: (_PlayRadioButton_module_scss__WEBPACK_IMPORTED_MODULE_14___default().container),
  76. children: /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("div", {
  77. className: (_PlayRadioButton_module_scss__WEBPACK_IMPORTED_MODULE_14___default().playRadioSection),
  78. children: [
  79. isAudioPlaying && isRadioMode ? /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_dls_Button_Button__WEBPACK_IMPORTED_MODULE_7__/* ["default"] */ .ZP, {
  80. prefix: isLoading ? /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_dls_Spinner_Spinner__WEBPACK_IMPORTED_MODULE_8__/* ["default"] */ .Z, {}) : /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_icons_pause_svg__WEBPACK_IMPORTED_MODULE_9__/* ["default"] */ .Z, {}),
  81. onClick: onPauseClicked,
  82. id: "radio-button",
  83. type: _dls_Button_Button__WEBPACK_IMPORTED_MODULE_7__/* .ButtonType.Success */ .L$.Success,
  84. size: _dls_Button_Button__WEBPACK_IMPORTED_MODULE_7__/* .ButtonSize.Small */ .qE.Small,
  85. className: (_PlayRadioButton_module_scss__WEBPACK_IMPORTED_MODULE_14___default().playPauseButton),
  86. children: t("pause-radio")
  87. }) : /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_dls_Button_Button__WEBPACK_IMPORTED_MODULE_7__/* ["default"] */ .ZP, {
  88. prefix: /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_icons_play_arrow_svg__WEBPACK_IMPORTED_MODULE_10__/* ["default"] */ .Z, {}),
  89. onClick: onPlayClicked,
  90. shouldFlipOnRTL: false,
  91. id: "radio-button",
  92. type: _dls_Button_Button__WEBPACK_IMPORTED_MODULE_7__/* .ButtonType.Success */ .L$.Success,
  93. size: _dls_Button_Button__WEBPACK_IMPORTED_MODULE_7__/* .ButtonSize.Small */ .qE.Small,
  94. className: (_PlayRadioButton_module_scss__WEBPACK_IMPORTED_MODULE_14___default().playPauseButton),
  95. children: t("play-radio")
  96. }),
  97. radioActor && /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_RadioInformation__WEBPACK_IMPORTED_MODULE_6__/* ["default"] */ .Z, {
  98. radioActor: radioActor
  99. })
  100. ]
  101. })
  102. });
  103. };
  104. /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (PlayRadioButton);
  105. __webpack_async_result__();
  106. } catch(e) { __webpack_async_result__(e); } });
  107. /***/ }),
  108. /***/ 22390:
  109. /***/ ((module, __webpack_exports__, __webpack_require__) => {
  110. "use strict";
  111. __webpack_require__.a(module, async (__webpack_handle_async_dependencies__, __webpack_async_result__) => { try {
  112. /* harmony export */ __webpack_require__.d(__webpack_exports__, {
  113. /* harmony export */ "Z": () => (__WEBPACK_DEFAULT_EXPORT__)
  114. /* harmony export */ });
  115. /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(20997);
  116. /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__);
  117. /* harmony import */ var _xstate_react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(59456);
  118. /* harmony import */ var _xstate_react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_xstate_react__WEBPACK_IMPORTED_MODULE_1__);
  119. /* harmony import */ var next_translate_useTranslation__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(60866);
  120. /* harmony import */ var next_translate_useTranslation__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(next_translate_useTranslation__WEBPACK_IMPORTED_MODULE_2__);
  121. /* harmony import */ var _dls_Link_Link__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(61239);
  122. /* harmony import */ var _PlayRadioButton_module_scss__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(14822);
  123. /* harmony import */ var _PlayRadioButton_module_scss__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(_PlayRadioButton_module_scss__WEBPACK_IMPORTED_MODULE_6__);
  124. /* harmony import */ var _utils_eventLogger__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(55943);
  125. /* harmony import */ var src_xstate_Radio_useCurrentStationInfo__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(62438);
  126. var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([_utils_eventLogger__WEBPACK_IMPORTED_MODULE_4__, src_xstate_Radio_useCurrentStationInfo__WEBPACK_IMPORTED_MODULE_5__]);
  127. ([_utils_eventLogger__WEBPACK_IMPORTED_MODULE_4__, src_xstate_Radio_useCurrentStationInfo__WEBPACK_IMPORTED_MODULE_5__] = __webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__);
  128. /* eslint-disable i18next/no-literal-string */
  129. const RadioInformation = ({ radioActor })=>{
  130. const [state] = (0,_xstate_react__WEBPACK_IMPORTED_MODULE_1__.useActor)(radioActor);
  131. const stationInfo = (0,src_xstate_Radio_useCurrentStationInfo__WEBPACK_IMPORTED_MODULE_5__/* ["default"] */ .Z)(state.context);
  132. const { t } = next_translate_useTranslation__WEBPACK_IMPORTED_MODULE_2___default()("radio");
  133. const onChangeClicked = ()=>{
  134. (0,_utils_eventLogger__WEBPACK_IMPORTED_MODULE_4__/* .logButtonClick */ .MY)("homepage_change_radio");
  135. };
  136. return /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("div", {
  137. className: (_PlayRadioButton_module_scss__WEBPACK_IMPORTED_MODULE_6___default().stationInfo),
  138. children: [
  139. /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("span", {
  140. className: (_PlayRadioButton_module_scss__WEBPACK_IMPORTED_MODULE_6___default().stationTitle),
  141. children: stationInfo.title
  142. }),
  143. " ",
  144. /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(_dls_Link_Link__WEBPACK_IMPORTED_MODULE_3__/* ["default"] */ .Z, {
  145. onClick: onChangeClicked,
  146. href: "/radio",
  147. className: (_PlayRadioButton_module_scss__WEBPACK_IMPORTED_MODULE_6___default().editStationButton),
  148. children: [
  149. "(",
  150. t("change"),
  151. ")"
  152. ]
  153. })
  154. ]
  155. });
  156. };
  157. /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (RadioInformation);
  158. __webpack_async_result__();
  159. } catch(e) { __webpack_async_result__(e); } });
  160. /***/ }),
  161. /***/ 62438:
  162. /***/ ((module, __webpack_exports__, __webpack_require__) => {
  163. "use strict";
  164. __webpack_require__.a(module, async (__webpack_handle_async_dependencies__, __webpack_async_result__) => { try {
  165. /* harmony export */ __webpack_require__.d(__webpack_exports__, {
  166. /* harmony export */ "Z": () => (__WEBPACK_DEFAULT_EXPORT__)
  167. /* harmony export */ });
  168. /* harmony import */ var next_translate_useTranslation__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(60866);
  169. /* harmony import */ var next_translate_useTranslation__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(next_translate_useTranslation__WEBPACK_IMPORTED_MODULE_0__);
  170. /* harmony import */ var swr_immutable__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(79847);
  171. /* harmony import */ var _components_Radio_curatedStations__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(80701);
  172. /* harmony import */ var _components_Radio_types__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(16868);
  173. /* harmony import */ var _utils_apiPaths__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(46127);
  174. /* harmony import */ var src_api__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(92684);
  175. var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([swr_immutable__WEBPACK_IMPORTED_MODULE_1__]);
  176. swr_immutable__WEBPACK_IMPORTED_MODULE_1__ = (__webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__)[0];
  177. const useCurrentStationInfo = (context)=>{
  178. const { t , lang } = next_translate_useTranslation__WEBPACK_IMPORTED_MODULE_0___default()("radio");
  179. const stationState = context;
  180. const { data: reciterData } = (0,swr_immutable__WEBPACK_IMPORTED_MODULE_1__["default"])(stationState.type === _components_Radio_types__WEBPACK_IMPORTED_MODULE_3__/* .StationType.Reciter */ .T.Reciter ? (0,_utils_apiPaths__WEBPACK_IMPORTED_MODULE_4__/* .makeReciterUrl */ .Sn)(stationState.id, lang) : null, ()=>(0,src_api__WEBPACK_IMPORTED_MODULE_5__/* .getReciterData */ .zm)(stationState.id, lang));
  181. const getCuratedStationInfo = ()=>{
  182. const curatedStation = _components_Radio_curatedStations__WEBPACK_IMPORTED_MODULE_2__/* ["default"] */ .Z[stationState.id];
  183. return {
  184. title: t(`curated-station.${curatedStation.title}`),
  185. description: t(`curated-station.${curatedStation.description}`)
  186. };
  187. };
  188. const getReciterStationInfo = ()=>{
  189. const selectedReciter = reciterData?.reciter;
  190. return {
  191. title: selectedReciter?.translatedName?.name,
  192. description: selectedReciter?.style?.name
  193. };
  194. };
  195. if (stationState.type === _components_Radio_types__WEBPACK_IMPORTED_MODULE_3__/* .StationType.Curated */ .T.Curated) return getCuratedStationInfo();
  196. return getReciterStationInfo();
  197. };
  198. /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (useCurrentStationInfo);
  199. __webpack_async_result__();
  200. } catch(e) { __webpack_async_result__(e); } });
  201. /***/ }),
  202. /***/ 16119:
  203. /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  204. "use strict";
  205. /* harmony export */ __webpack_require__.d(__webpack_exports__, {
  206. /* harmony export */ "BP": () => (/* binding */ selectCurrentAudioReciterId),
  207. /* harmony export */ "XL": () => (/* binding */ selectIsLoadingCurrentChapter),
  208. /* harmony export */ "eU": () => (/* binding */ selectIsVerseLoading),
  209. /* harmony export */ "iX": () => (/* binding */ selectIsUsingDefaultReciter),
  210. /* harmony export */ "sI": () => (/* binding */ selectIsPlayingCurrentChapter),
  211. /* harmony export */ "xU": () => (/* binding */ selectIsLoading)
  212. /* harmony export */ });
  213. /* unused harmony exports selectIsAudioPlaying, selectIsVerseBeingPlayed */
  214. /* harmony import */ var _redux_defaultSettings_defaultSettings__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(11854);
  215. /* harmony import */ var _utils_verse__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(44519);
  216. /* eslint-disable import/prefer-default-export */
  217. const selectIsUsingDefaultReciter = (state)=>state.context.reciterId === _redux_defaultSettings_defaultSettings__WEBPACK_IMPORTED_MODULE_0__/* .DEFAULT_RECITER.id */ .YS.id;
  218. const selectCurrentAudioReciterId = (state)=>state.context.audioData?.reciterId;
  219. const selectIsLoading = (state)=>state.hasTag("loading");
  220. const selectIsAudioPlaying = (state)=>state.matches("VISIBLE.AUDIO_PLAYER_INITIATED.PLAYING");
  221. const selectIsPlayingCurrentChapter = (state, chapterId)=>{
  222. const isAudioPlaying = selectIsAudioPlaying(state);
  223. const currentSurah = state.context.surah;
  224. return isAudioPlaying && currentSurah === chapterId;
  225. };
  226. const selectIsLoadingCurrentChapter = (state, chapterId)=>{
  227. const isLoading = selectIsLoading(state);
  228. const currentSurah = state.context.surah;
  229. return isLoading && currentSurah === chapterId;
  230. };
  231. const selectIsVerseBeingPlayed = (state, verseKey)=>{
  232. const { surah , ayahNumber } = state.context;
  233. return state.matches("VISIBLE.AUDIO_PLAYER_INITIATED.PLAYING") && makeVerseKey(surah, ayahNumber) === verseKey;
  234. };
  235. const selectIsVerseLoading = (state, verseKey)=>{
  236. const { surah , ayahNumber } = state.context;
  237. return selectIsLoading(state) && (0,_utils_verse__WEBPACK_IMPORTED_MODULE_1__/* .makeVerseKey */ .u)(surah, ayahNumber) === verseKey;
  238. };
  239. /***/ })
  240. };
  241. ;
  242. //# sourceMappingURL=14918.js.map