1!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{};var n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="54b5968b-61a0-49c1-9cb3-9c33be0cbadc",e._sentryDebugIdIdentifier="sentry-dbid-54b5968b-61a0-49c1-9cb3-9c33be0cbadc");}catch(e){}}(); 2(self["webpackChunk_N_E"] = self["webpackChunk_N_E"] || []).push([[9551],{ 3 4/***/ 89609: 5/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { 6 7"use strict"; 8 9// EXPORTS 10__webpack_require__.d(__webpack_exports__, { 11 Z: function() { return /* binding */ Box_Box; } 12}); 13 14// EXTERNAL MODULE: ./node_modules/@mui/utils/esm/ClassNameGenerator/ClassNameGenerator.js 15var ClassNameGenerator = __webpack_require__(37078); 16// EXTERNAL MODULE: ./node_modules/@mui/system/esm/createBox.js 17var createBox = __webpack_require__(61354); 18// EXTERNAL MODULE: ./node_modules/@mui/utils/esm/generateUtilityClasses/generateUtilityClasses.js 19var generateUtilityClasses = __webpack_require__(1588); 20;// CONCATENATED MODULE: ./node_modules/@mui/system/esm/Box/boxClasses.js 21 22const boxClasses = (0,generateUtilityClasses/* default */.Z)('MuiBox', ['root']); 23/* harmony default export */ var Box_boxClasses = (boxClasses); 24;// CONCATENATED MODULE: ./node_modules/@mui/system/esm/Box/Box.js 25'use client'; 26 27 28 29 30 31const Box = (0,createBox/* default */.Z)({ 32 defaultClassName: Box_boxClasses.root, 33 generateClassName: ClassNameGenerator/* default */.Z.generate 34}); 35 false ? 0 : void 0; 36/* harmony default export */ var Box_Box = (Box); 37 38/***/ }), 39 40/***/ 10518: 41/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 42 43 44 (window.__NEXT_P = window.__NEXT_P || []).push([ 45 "/player/[username]/[episodeID]", 46 function () { 47 return __webpack_require__(88338); 48 } 49 ]); 50 if(false) {} 51 52 53/***/ }), 54 55/***/ 80564: 56/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { 57 58"use strict"; 59/* harmony import */ var _utils_createSvgIcon__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(30139); 60/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(85893); 61/* __next_internal_client_entry_do_not_use__ default auto */ 62 63/* harmony default export */ __webpack_exports__.Z = ((0,_utils_createSvgIcon__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .Z)(/*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("path", { 64 d: "M8 6.82v10.36c0 .79.87 1.27 1.54.84l8.14-5.18c.62-.39.62-1.29 0-1.69L9.54 5.98C8.87 5.55 8 6.03 8 6.82" 65}), "PlayArrowRounded")); 66 67 68/***/ }), 69 70/***/ 60762: 71/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { 72 73"use strict"; 74 75// EXPORTS 76__webpack_require__.d(__webpack_exports__, { 77 Z: function() { return /* binding */ Card_Card; } 78}); 79 80// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/extends.js 81var esm_extends = __webpack_require__(87462); 82// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js 83var objectWithoutPropertiesLoose = __webpack_require__(63366); 84// EXTERNAL MODULE: ./node_modules/react/index.js 85var react = __webpack_require__(67294); 86// EXTERNAL MODULE: ./node_modules/clsx/dist/clsx.mjs 87var clsx = __webpack_require__(90512); 88// EXTERNAL MODULE: ./node_modules/@mui/utils/esm/composeClasses/composeClasses.js 89var composeClasses = __webpack_require__(94780); 90// EXTERNAL MODULE: ./node_modules/@mui/material/styles/styled.js 91var styled = __webpack_require__(77527); 92// EXTERNAL MODULE: ./node_modules/@mui/material/DefaultPropsProvider/DefaultPropsProvider.js 93var DefaultPropsProvider = __webpack_require__(44001); 94// EXTERNAL MODULE: ./node_modules/@mui/material/Paper/Paper.js + 2 modules 95var Paper = __webpack_require__(93454); 96// EXTERNAL MODULE: ./node_modules/@mui/utils/esm/generateUtilityClasses/generateUtilityClasses.js 97var generateUtilityClasses = __webpack_require__(1588); 98// EXTERNAL MODULE: ./node_modules/@mui/utils/esm/generateUtilityClass/generateUtilityClass.js 99var generateUtilityClass = __webpack_require__(34867); 100;// CONCATENATED MODULE: ./node_modules/@mui/material/Card/cardClasses.js 101 102 103function getCardUtilityClass(slot) { 104 return (0,generateUtilityClass/* default */.ZP)("MuiCard", slot); 105} 106const cardClasses = (0,generateUtilityClasses/* default */.Z)("MuiCard", [ 107 "root" 108]); 109/* harmony default export */ var Card_cardClasses = ((/* unused pure expression or super */ null && (cardClasses))); 110 111// EXTERNAL MODULE: ./node_modules/react/jsx-runtime.js 112var jsx_runtime = __webpack_require__(85893); 113;// CONCATENATED MODULE: ./node_modules/@mui/material/Card/Card.js 114/* __next_internal_client_entry_do_not_use__ default auto */ 115 116const _excluded = [ 117 "className", 118 "raised" 119]; 120 121 122 123 124 125 126 127 128 129 130const useUtilityClasses = (ownerState)=>{ 131 const { classes } = ownerState; 132 const slots = { 133 root: [ 134 "root" 135 ] 136 }; 137 return (0,composeClasses/* default */.Z)(slots, getCardUtilityClass, classes); 138}; 139const CardRoot = (0,styled/* default */.ZP)(Paper/* default */.Z, { 140 name: "MuiCard", 141 slot: "Root", 142 overridesResolver: (props, styles)=>styles.root 143})(()=>{ 144 return { 145 overflow: "hidden" 146 }; 147}); 148const Card = /*#__PURE__*/ react.forwardRef(function Card(inProps, ref) { 149 const props = (0,DefaultPropsProvider/* useDefaultProps */.i)({ 150 props: inProps, 151 name: "MuiCard" 152 }); 153 const { className, raised = false } = props, other = (0,objectWithoutPropertiesLoose/* default */.Z)(props, _excluded); 154 const ownerState = (0,esm_extends/* default */.Z)({}, props, { 155 raised 156 }); 157 const classes = useUtilityClasses(ownerState); 158 return /*#__PURE__*/ (0,jsx_runtime.jsx)(CardRoot, (0,esm_extends/* default */.Z)({ 159 className: (0,clsx/* default */.Z)(classes.root, className), 160 elevation: raised ? 8 : undefined, 161 ref: ref, 162 ownerState: ownerState 163 }, other)); 164}); 165 false ? 0 : void 0; 166/* harmony default export */ var Card_Card = (Card); 167 168 169/***/ }), 170 171/***/ 71919: 172/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { 173 174"use strict"; 175 176// EXPORTS 177__webpack_require__.d(__webpack_exports__, { 178 Z: function() { return /* binding */ CardContent_CardContent; } 179}); 180 181// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/extends.js 182var esm_extends = __webpack_require__(87462); 183// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js 184var objectWithoutPropertiesLoose = __webpack_require__(63366); 185// EXTERNAL MODULE: ./node_modules/react/index.js 186var react = __webpack_require__(67294); 187// EXTERNAL MODULE: ./node_modules/clsx/dist/clsx.mjs 188var clsx = __webpack_require__(90512); 189// EXTERNAL MODULE: ./node_modules/@mui/utils/esm/composeClasses/composeClasses.js 190var composeClasses = __webpack_require__(94780); 191// EXTERNAL MODULE: ./node_modules/@mui/material/styles/styled.js 192var styled = __webpack_require__(77527); 193// EXTERNAL MODULE: ./node_modules/@mui/material/DefaultPropsProvider/DefaultPropsProvider.js 194var DefaultPropsProvider = __webpack_require__(44001); 195// EXTERNAL MODULE: ./node_modules/@mui/utils/esm/generateUtilityClasses/generateUtilityClasses.js 196var generateUtilityClasses = __webpack_require__(1588); 197// EXTERNAL MODULE: ./node_modules/@mui/utils/esm/generateUtilityClass/generateUtilityClass.js 198var generateUtilityClass = __webpack_require__(34867); 199;// CONCATENATED MODULE: ./node_modules/@mui/material/CardContent/cardContentClasses.js 200 201 202function getCardContentUtilityClass(slot) { 203 return (0,generateUtilityClass/* default */.ZP)("MuiCardContent", slot); 204} 205const cardContentClasses = (0,generateUtilityClasses/* default */.Z)("MuiCardContent", [ 206 "root" 207]); 208/* harmony default export */ var CardContent_cardContentClasses = ((/* unused pure expression or super */ null && (cardContentClasses))); 209 210// EXTERNAL MODULE: ./node_modules/react/jsx-runtime.js 211var jsx_runtime = __webpack_require__(85893); 212;// CONCATENATED MODULE: ./node_modules/@mui/material/CardContent/CardContent.js 213/* __next_internal_client_entry_do_not_use__ default auto */ 214 215const _excluded = [ 216 "className", 217 "component" 218]; 219 220 221 222 223 224 225 226 227const useUtilityClasses = (ownerState)=>{ 228 const { classes } = ownerState; 229 const slots = { 230 root: [ 231 "root" 232 ] 233 }; 234 return (0,composeClasses/* default */.Z)(slots, getCardContentUtilityClass, classes); 235}; 236const CardContentRoot = (0,styled/* default */.ZP)("div", { 237 name: "MuiCardContent", 238 slot: "Root", 239 overridesResolver: (props, styles)=>styles.root 240})(()=>{ 241 return { 242 padding: 16, 243 "&:last-child": { 244 paddingBottom: 24 245 } 246 }; 247}); 248const CardContent = /*#__PURE__*/ react.forwardRef(function CardContent(inProps, ref) { 249 const props = (0,DefaultPropsProvider/* useDefaultProps */.i)({ 250 props: inProps, 251 name: "MuiCardContent" 252 }); 253 const { className, component = "div" } = props, other = (0,objectWithoutPropertiesLoose/* default */.Z)(props, _excluded); 254 const ownerState = (0,esm_extends/* default */.Z)({}, props, { 255 component 256 }); 257 const classes = useUtilityClasses(ownerState); 258 return /*#__PURE__*/ (0,jsx_runtime.jsx)(CardContentRoot, (0,esm_extends/* default */.Z)({ 259 as: component, 260 className: (0,clsx/* default */.Z)(classes.root, className), 261 ownerState: ownerState, 262 ref: ref 263 }, other)); 264}); 265 false ? 0 : void 0; 266/* harmony default export */ var CardContent_CardContent = (CardContent); 267 268 269/***/ }), 270 271/***/ 37093: 272/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { 273 274"use strict"; 275 276// EXPORTS 277__webpack_require__.d(__webpack_exports__, { 278 Z: function() { return /* binding */ CardMedia_CardMedia; } 279}); 280 281// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js 282var objectWithoutPropertiesLoose = __webpack_require__(63366); 283// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/extends.js 284var esm_extends = __webpack_require__(87462); 285// EXTERNAL MODULE: ./node_modules/react/index.js 286var react = __webpack_require__(67294); 287// EXTERNAL MODULE: ./node_modules/clsx/dist/clsx.mjs 288var clsx = __webpack_require__(90512); 289// EXTERNAL MODULE: ./node_modules/@mui/utils/esm/composeClasses/composeClasses.js 290var composeClasses = __webpack_require__(94780); 291// EXTERNAL MODULE: ./node_modules/@mui/material/DefaultPropsProvider/DefaultPropsProvider.js 292var DefaultPropsProvider = __webpack_require__(44001); 293// EXTERNAL MODULE: ./node_modules/@mui/material/styles/styled.js 294var styled = __webpack_require__(77527); 295// EXTERNAL MODULE: ./node_modules/@mui/utils/esm/generateUtilityClasses/generateUtilityClasses.js 296var generateUtilityClasses = __webpack_require__(1588); 297// EXTERNAL MODULE: ./node_modules/@mui/utils/esm/generateUtilityClass/generateUtilityClass.js 298var generateUtilityClass = __webpack_require__(34867); 299;// CONCATENATED MODULE: ./node_modules/@mui/material/CardMedia/cardMediaClasses.js 300 301 302function getCardMediaUtilityClass(slot) { 303 return (0,generateUtilityClass/* default */.ZP)("MuiCardMedia", slot); 304} 305const cardMediaClasses = (0,generateUtilityClasses/* default */.Z)("MuiCardMedia", [ 306 "root", 307 "media", 308 "img" 309]); 310/* harmony default export */ var CardMedia_cardMediaClasses = ((/* unused pure expression or super */ null && (cardMediaClasses))); 311 312// EXTERNAL MODULE: ./node_modules/react/jsx-runtime.js 313var jsx_runtime = __webpack_require__(85893); 314;// CONCATENATED MODULE: ./node_modules/@mui/material/CardMedia/CardMedia.js 315/* __next_internal_client_entry_do_not_use__ default auto */ 316 317const _excluded = [ 318 "children", 319 "className", 320 "component", 321 "image", 322 "src", 323 "style" 324]; 325 326 327 328 329 330 331 332 333 334const useUtilityClasses = (ownerState)=>{ 335 const { classes, isMediaComponent, isImageComponent } = ownerState; 336 const slots = { 337 root: [ 338 "root", 339 isMediaComponent && "media", 340 isImageComponent && "img" 341 ] 342 }; 343 return (0,composeClasses/* default */.Z)(slots, getCardMediaUtilityClass, classes); 344}; 345const CardMediaRoot = (0,styled/* default */.ZP)("div", { 346 name: "MuiCardMedia", 347 slot: "Root", 348 overridesResolver: (props, styles)=>{ 349 const { ownerState } = props; 350 const { isMediaComponent, isImageComponent } = ownerState; 351 return [ 352 styles.root, 353 isMediaComponent && styles.media, 354 isImageComponent && styles.img 355 ]; 356 } 357})((param)=>{ 358 let { ownerState } = param; 359 return (0,esm_extends/* default */.Z)({ 360 display: "block", 361 backgroundSize: "cover", 362 backgroundRepeat: "no-repeat", 363 backgroundPosition: "center" 364 }, ownerState.isMediaComponent && { 365 width: "100%" 366 }, ownerState.isImageComponent && { 367 // â ï¸ object-fit is not supported by IE11. 368 objectFit: "cover" 369 }); 370}); 371const MEDIA_COMPONENTS = [ 372 "video", 373 "audio", 374 "picture", 375 "iframe", 376 "img" 377]; 378const IMAGE_COMPONENTS = [ 379 "picture", 380 "img" 381]; 382const CardMedia = /*#__PURE__*/ react.forwardRef(function CardMedia(inProps, ref) { 383 const props = (0,DefaultPropsProvider/* useDefaultProps */.i)({ 384 props: inProps, 385 name: "MuiCardMedia" 386 }); 387 const { children, className, component = "div", image, src, style } = props, other = (0,objectWithoutPropertiesLoose/* default */.Z)(props, _excluded); 388 const isMediaComponent = MEDIA_COMPONENTS.indexOf(component) !== -1; 389 const composedStyle = !isMediaComponent && image ? (0,esm_extends/* default */.Z)({ 390 backgroundImage: 'url("'.concat(image, '")') 391 }, style) : style; 392 const ownerState = (0,esm_extends/* default */.Z)({}, props, { 393 component, 394 isMediaComponent, 395 isImageComponent: IMAGE_COMPONENTS.indexOf(component) !== -1 396 }); 397 const classes = useUtilityClasses(ownerState); 398 return /*#__PURE__*/ (0,jsx_runtime.jsx)(CardMediaRoot, (0,esm_extends/* default */.Z)({ 399 className: (0,clsx/* default */.Z)(classes.root, className), 400 as: component, 401 role: !isMediaComponent && image ? "img" : undefined, 402 ref: ref, 403 style: composedStyle, 404 ownerState: ownerState, 405 src: isMediaComponent ? image || src : undefined 406 }, other, { 407 children: children 408 })); 409}); 410 false ? 0 : void 0; 411/* harmony default export */ var CardMedia_CardMedia = (CardMedia); 412 413 414/***/ }), 415 416/***/ 88338: 417/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { 418 419"use strict";
420// ESM COMPAT FLAG 421__webpack_require__.r(__webpack_exports__); 422 423// EXPORTS 424__webpack_require__.d(__webpack_exports__, { 425 __N_SSP: function() { return /* binding */ __N_SSP; }, 426 "default": function() { return /* binding */ _episodeID_; } 427}); 428 429// EXTERNAL MODULE: ./node_modules/react/jsx-runtime.js 430var jsx_runtime = __webpack_require__(85893); 431// EXTERNAL MODULE: ./node_modules/react/index.js 432var react = __webpack_require__(67294); 433// EXTERNAL MODULE: ./src/hocs/withTheme.tsx + 15 modules 434var withTheme = __webpack_require__(23818); 435// EXTERNAL MODULE: ./node_modules/next/head.js 436var head = __webpack_require__(9008); 437var head_default = /*#__PURE__*/__webpack_require__.n(head); 438// EXTERNAL MODULE: ./node_modules/next/image.js 439var next_image = __webpack_require__(25675); 440var image_default = /*#__PURE__*/__webpack_require__.n(next_image); 441// EXTERNAL MODULE: ./src/contexts/MediaContext.tsx 442var MediaContext = __webpack_require__(74119); 443// EXTERNAL MODULE: ./node_modules/@mui/system/esm/Box/Box.js + 1 modules 444var Box = __webpack_require__(89609); 445// EXTERNAL MODULE: ./node_modules/@mui/system/esm/Container/createContainer.js 446var createContainer = __webpack_require__(35266); 447;// CONCATENATED MODULE: ./node_modules/@mui/system/esm/Container/Container.js 448'use client'; 449 450 451 452 453/** 454 * 455 * Demos: 456 * 457 * - [Container (Material UI)](https://mui.com/material-ui/react-container/) 458 * - [Container (MUI System)](https://mui.com/system/react-container/) 459 * 460 * API: 461 * 462 * - [Container API](https://mui.com/system/api/container/) 463 */ 464const Container = (0,createContainer/* default */.Z)(); 465 false ? 0 : void 0; 466/* harmony default export */ var Container_Container = (Container); 467// EXTERNAL MODULE: ./node_modules/@mui/material/Typography/Typography.js 468var Typography = __webpack_require__(21485); 469// EXTERNAL MODULE: ./node_modules/@mui/material/Grid/Grid.js + 2 modules 470var Grid = __webpack_require__(68573); 471// EXTERNAL MODULE: ./node_modules/@mui/material/Box/Box.js + 1 modules 472var Box_Box = __webpack_require__(3314); 473// EXTERNAL MODULE: ./node_modules/@mui/material/CircularProgress/CircularProgress.js + 1 modules 474var CircularProgress = __webpack_require__(97182); 475// EXTERNAL MODULE: ./node_modules/@mui/material/Button/Button.js + 1 modules 476var Button = __webpack_require__(51015); 477// EXTERNAL MODULE: ./node_modules/@mui/material/Card/Card.js + 1 modules 478var Card = __webpack_require__(60762); 479// EXTERNAL MODULE: ./node_modules/@mui/material/CardMedia/CardMedia.js + 1 modules 480var CardMedia = __webpack_require__(37093); 481// EXTERNAL MODULE: ./node_modules/@mui/material/CardContent/CardContent.js + 1 modules 482var CardContent = __webpack_require__(71919); 483// EXTERNAL MODULE: ./node_modules/@mui/material/IconButton/IconButton.js + 1 modules 484var IconButton = __webpack_require__(52857); 485// EXTERNAL MODULE: ./node_modules/@mui/icons-material/esm/PlayArrowRounded.js 486var PlayArrowRounded = __webpack_require__(80564); 487// EXTERNAL MODULE: ./node_modules/next/link.js 488var next_link = __webpack_require__(41664); 489var link_default = /*#__PURE__*/__webpack_require__.n(next_link); 490// EXTERNAL MODULE: ./node_modules/axios/lib/axios.js + 48 modules 491var axios = __webpack_require__(87066); 492// EXTERNAL MODULE: ./node_modules/moment/moment.js 493var moment = __webpack_require__(30381); 494var moment_default = /*#__PURE__*/__webpack_require__.n(moment); 495;// CONCATENATED MODULE: ./src/components/mainSite/player/sideepisodes.tsx 496 497 498 499 500 501 502 503const SideProfileEpisodes = (param)=>{ 504 let { username, show_id, type, icons, episode_id } = param; 505 const [episodes, setEpisodes] = (0,react.useState)([]); 506 const [loading, setLoading] = (0,react.useState)(true); 507 const [error, setError] = (0,react.useState)(null); 508 const profileImageUrl = icons["500"] ? icons["500"].url : ""; 509 const formatDuration = (seconds)=>{ 510 const hours = Math.floor(seconds / 3600); 511 const minutes = Math.floor(seconds % 3600 / 60); 512 const secs = Math.floor(seconds % 60); 513 return "".concat(hours > 0 ? "".concat(String(hours).padStart(2, "0"), ":") : "").concat(String(minutes).padStart(2, "0"), ":").concat(String(secs).padStart(2, "0")); 514 }; 515 const fetchEpisodes = async ()=>{ 516 try { 517 var _response_data_episodes_;
518 setLoading(true); 519 setError(null); 520 const response = await axios/* default */.Z.post("/api/mainSite/fetchAllShowsByID", { 521 show_id, 522 type 523 }); 524 // Debugging - log the first episode's ID 525 console.log("First episode ID:", (_response_data_episodes_ = response.data.episodes[0]) === null || _response_data_episodes_ === void 0 ? void 0 : _response_data_episodes_._id); 526 console.log("Current episode ID to exclude:", episode_id); 527 // Create new array without the current episode 528 const filteredEpisodes = response.data.episodes.filter((episode)=>episode._id !== episode_id); 529 console.log("Filtered episodes count:", filteredEpisodes.length); 530 setEpisodes(filteredEpisodes); 531 } catch (err) { 532 var _err_response_data, _err_response; 533 console.error("API Error:", err); 534 setError(((_err_response = err.response) === null || _err_response === void 0 ? void 0 : (_err_response_data = _err_response.data) === null || _err_response_data === void 0 ? void 0 : _err_response_data.message) || err.message || "Failed to load episodes"); 535 } finally{ 536 setLoading(false); 537 } 538 }; 539 (0,react.useEffect)(()=>{ 540 fetchEpisodes(); 541 }, [ 542 show_id, 543 type, 544 episode_id 545 ]); 546 // Loading state 547 if (loading) { 548 return /*#__PURE__*/ (0,jsx_runtime.jsx)(Box_Box/* default */.Z, { 549 sx: { 550 height: "500px", 551 display: "flex", 552 justifyContent: "center", 553 alignItems: "center" 554 }, 555 children: /*#__PURE__*/ (0,jsx_runtime.jsx)(CircularProgress/* default */.Z, {}) 556 }); 557 } 558 // Error state 559 if (error) { 560 return /*#__PURE__*/ (0,jsx_runtime.jsxs)(Box_Box/* default */.Z, { 561 sx: { 562 height: "500px", 563 display: "flex", 564 flexDirection: "column", 565 justifyContent: "center", 566 alignItems: "center", 567 gap: 2, 568 p: 2 569 }, 570 children: [ 571 /*#__PURE__*/ (0,jsx_runtime.jsx)(Typography/* default */.Z, { 572 color: "error", 573 children: error 574 }), 575 /*#__PURE__*/ (0,jsx_runtime.jsx)(Button/* default */.Z, { 576 variant: "contained", 577 onClick: fetchEpisodes, 578 children: "Retry" 579 }) 580 ] 581 }); 582 } 583 // Empty state 584 if (episodes.length === 0) { 585 return /*#__PURE__*/ (0,jsx_runtime.jsx)(Box_Box/* default */.Z, { 586 sx: { 587 height: "500px", 588 display: "flex", 589 justifyContent: "center", 590 alignItems: "center" 591 }, 592 children: /*#__PURE__*/ (0,jsx_runtime.jsx)(Typography/* default */.Z, { 593 children: "No episodes available" 594 }) 595 }); 596 } 597 // Success state 598 return /*#__PURE__*/ (0,jsx_runtime.jsx)(Box_Box/* default */.Z, { 599 sx: { 600 height: "500px", 601 overflowY: "auto", 602 p: 1, 603 "&::-webkit-scrollbar": { 604 width: "6px" 605 }, 606 "&::-webkit-scrollbar-track": { 607 background: "#f1f1f1" 608 }, 609 "&::-webkit-scrollbar-thumb": { 610 background: "#888", 611 borderRadius: "3px" 612 } 613 }, 614 children: /*#__PURE__*/ (0,jsx_runtime.jsx)(Grid/* default */.ZP, { 615 container: true, 616 spacing: 2, 617 children: episodes.map((episode)=>/*#__PURE__*/ (0,jsx_runtime.jsx)(Grid/* default */.ZP, { 618 item: true, 619 xs: 12, 620 children: /*#__PURE__*/ (0,jsx_runtime.jsxs)(Card/* default */.Z, { 621 sx: { 622 display: "flex", 623 height: "100%", 624 "&:hover": { 625 boxShadow: 3, 626 transform: "translateY(-2px)", 627 transition: "all 0.3s ease" 628 } 629 }, 630 children: [ 631 /*#__PURE__*/ (0,jsx_runtime.jsx)(CardMedia/* default */.Z, { 632 component: "img", 633 image: episode.thumbnailUrl || profileImageUrl, 634 alt: episode.title, 635 sx: { 636 width: "150px", 637 height: "100%", 638 objectFit: "cover" 639 } 640 }), 641 /*#__PURE__*/ (0,jsx_runtime.jsxs)(CardContent/* default */.Z, { 642 sx: { 643 flex: 1, 644 display: "flex", 645 flexDirection: "column", 646 p: 2 647 }, 648 children: [ 649 /*#__PURE__*/ (0,jsx_runtime.jsx)(Typography/* default */.Z, { 650 variant: "h6", 651 sx: { 652 display: "-webkit-box", 653 WebkitLineClamp: 2, 654 WebkitBoxOrient: "vertical", 655 overflow: "hidden", 656 fontSize: "18px", 657 fontWeight: "400", 658 mb: 1 659 }, 660 children: episode.title 661 }), 662 /*#__PURE__*/ (0,jsx_runtime.jsxs)(Box_Box/* default */.Z, { 663 sx: { 664 display: "flex", 665 alignItems: "center", 666 justifyContent: "space-between", 667 mt: "auto" 668 }, 669 children: [ 670 /*#__PURE__*/ (0,jsx_runtime.jsxs)(Typography/* default */.Z, { 671 variant: "body2", 672 color: "text.secondary", 673 children: [ 674 moment_default()(episode.pubdate).fromNow(), 675 " ⢠", 676 formatDuration(episode.mediafiles.full_episode.duration) 677 ] 678 }), 679 /*#__PURE__*/ (0,jsx_runtime.jsx)(IconButton/* default */.Z, { 680 color: "primary", 681 component: (link_default()), 682 href: "/@".concat(username, "/").concat(episode._id), 683 size: "small", 684 children: /*#__PURE__*/ (0,jsx_runtime.jsx)(PlayArrowRounded/* default */.Z, {}) 685 }) 686 ] 687 }) 688 ] 689 }) 690 ] 691 }) 692 }, episode._id)) 693 }) 694 }); 695}; 696/* harmony default export */ var sideepisodes = (SideProfileEpisodes); 697 698;// CONCATENATED MODULE: ./src/pages/player/[username]/[episodeID]/index.tsx 699 700 701 702 703 704 705 706 707 708/** 709 * Helper to decide if a file is 'audio' or 'video' by extension. 710 */ function getMediaTypeFromUrl(fileUrl) { 711 var _fileUrl_split_pop; 712 const ext = (_fileUrl_split_pop = fileUrl.split(".").pop()) === null || _fileUrl_split_pop === void 0 ? void 0 : _fileUrl_split_pop.toLowerCase(); 713 const videoExtensions = [ 714 "mp4", 715 "mov", 716 "avi", 717 "mkv", 718 "webm" 719 ]; 720 const audioExtensions = [ 721 "mp3", 722 "wav", 723 "ogg", 724 "flac", 725 "m4a" 726 ]; 727 if (ext && videoExtensions.includes(ext)) { 728 return "video"; 729 } else if (ext && audioExtensions.includes(ext)) { 730 return "audio"; 731 } else { 732 // Fallback if we can't detect an extension 733 return "audio"; 734 } 735} 736const EpisodePage = (param)=>{ 737 let { data, episodeID } = param; 738 const { playMedia } = (0,react.useContext)(MediaContext/* MediaContext */.Y); 739 const { fileUrl, username, title, cover, description, show } = data; 740 const contentStyle = { 741 marginRight: "0", 742 marginBottom: "1em" 743 }; 744 // Called when the user clicks the "Play Episode" button 745 const handlePlay = ()=>{ 746 const mediaType = getMediaTypeFromUrl(fileUrl); 747 // Pass the cover image as the 3rd param 748 playMedia(fileUrl, mediaType, cover); 749 }; 750 (0,react.useEffect)(()=>{ 751 handlePlay(); 752 }, [ 753 fileUrl 754 ]); 755 return /*#__PURE__*/ (0,jsx_runtime.jsx)(jsx_runtime.Fragment, { 756 children: /*#__PURE__*/ (0,jsx_runtime.jsxs)(Box/* default */.Z, { 757 pt: 0, 758 sx: contentStyle, 759 children: [ 760 /*#__PURE__*/ (0,jsx_runtime.jsxs)((head_default()), { 761 children: [ 762 /*#__PURE__*/ (0,jsx_runtime.jsx)("title", {
763 children: title 764 }), 765 /*#__PURE__*/ (0,jsx_runtime.jsx)("meta", { 766 name: "description", 767 content: description || "" 768 }) 769 ] 770 }), 771 /*#__PURE__*/ (0,jsx_runtime.jsxs)(Box/* default */.Z, { 772 sx: { 773 width: "100%", 774 maxHeight: { 775 xs: "300px", 776 md: "700px" 777 }, 778 margin: "66px auto 20px", 779 position: "relative", 780 zIndex: 0, 781 display: "flex", 782 flexDirection: { 783 xs: "column", 784 md: "row" 785 }, 786 gap: "20px", 787 backgroundColor: "background.paper", 788 overflow: "hidden" 789 }, 790 children: [ 791 /*#__PURE__*/ (0,jsx_runtime.jsx)(Box/* default */.Z, { 792 sx: { 793 flex: { 794 md: 1, 795 lg: 2 796 }, 797 aspectRatio: "16/9", 798 minHeight: { 799 xs: "200px", 800 md: "auto" 801 } 802 }, 803 children: /*#__PURE__*/ (0,jsx_runtime.jsx)(Box/* default */.Z, { 804 id: "podPlayer", 805 sx: { 806 width: "100%", 807 height: "100%", 808 display: "flex", 809 justifyContent: "center", 810 alignItems: "center", 811 "& > *": { 812 width: "100%", 813 height: "100%", 814 objectFit: "contain" 815 } 816 } 817 }) 818 }), 819 /*#__PURE__*/ (0,jsx_runtime.jsx)(Box/* default */.Z, { 820 sx: { 821 flex: 1, 822 maxHeight: { 823 lg: "700px" 824 }, 825 overflowY: "auto", 826 padding: "10px", 827 display: { 828 xs: "none", 829 lg: "block" 830 } 831 }, 832 children: /*#__PURE__*/ (0,jsx_runtime.jsx)(sideepisodes, { 833 username: username, 834 show_id: show._id, 835 episode_id: episodeID, 836 icons: show.icons, 837 type: "syndication" 838 }) 839 }) 840 ] 841 }), 842 /*#__PURE__*/ (0,jsx_runtime.jsx)(Box/* default */.Z, { 843 children: /*#__PURE__*/ (0,jsx_runtime.jsxs)(Box/* default */.Z, { 844 sx: { 845 display: "flex", 846 flexDirection: { 847 xs: "column", 848 md: "row" 849 }, 850 alignItems: { 851 xs: "center", 852 md: "flex-start" 853 }, 854 justifyContent: { 855 xs: "center", 856 md: "flex-start" 857 }, 858 //marginTop: { xs: '-125px', md: '-125px' }, // Adjust margin for image placement 859 paddingLeft: { 860 xs: "0px", 861 md: "50px" 862 }, 863 width: "100%", 864 zIndex: 1 865 }, 866 children: [ 867 /*#__PURE__*/ (0,jsx_runtime.jsxs)(Box/* default */.Z, { 868 sx: { 869 flexShrink: 0, 870 width: { 871 xs: "150px", 872 md: "250px" 873 }, 874 height: { 875 xs: "150px", 876 md: "250px" 877 }, 878 border: "2px solid #ddd", 879 borderRadius: "12px", 880 overflow: "hidden", 881 boxShadow: "0 0 10px rgba(0, 0, 0, 0.2)", 882 position: "relative", 883 zIndex: 1, 884 marginRight: { 885 md: "20px" 886 } 887 }, 888 children: [ 889 /*#__PURE__*/ (0,jsx_runtime.jsx)((image_default()), { 890 src: show.icons["250"].url, 891 alt: "Profile Image", 892 layout: "fill", 893 objectFit: "cover" 894 }), 895 /*#__PURE__*/ (0,jsx_runtime.jsx)(Box/* default */.Z, { 896 sx: { 897 position: "absolute", 898 top: 0, 899 left: 0, 900 width: "100%", 901 height: "100%", 902 background: "linear-gradient(rgba(255, 255, 255, 0.6), transparent 50%)", 903 opacity: 0.7, 904 pointerEvents: "none" 905 } 906 }) 907 ] 908 }), 909 /*#__PURE__*/ (0,jsx_runtime.jsxs)(Box/* default */.Z, { 910 sx: { 911 display: "flex", 912 flexDirection: "column", 913 justifyContent: "center", 914 marginTop: { 915 xs: "10px", 916 md: "10px" 917 }, 918 paddingRight: { 919 xs: "0", 920 md: "1em" 921 }, 922 width: { 923 xs: "calc(100% - 20px)", 924 md: "calc(100% - 250px)" 925 } 926 }, 927 children: [ 928 /*#__PURE__*/ (0,jsx_runtime.jsx)(Typography/* default */.Z, { 929 variant: "h1", 930 sx: { 931 fontSize: { 932 xs: "1.5rem", 933 md: "2rem" 934 }, 935 fontWeight: "bold", 936 marginBottom: { 937 xs: "0", 938 md: "0" 939 }, 940 textAlign: { 941 xs: "center", 942 md: "left" 943 } 944 }, 945 children: show.episodes[0].title 946 }), 947 /*#__PURE__*/ (0,jsx_runtime.jsx)(Typography/* default */.Z, { 948 variant: "body1", 949 sx: { 950 lineHeight: "1.5", 951 textAlign: { 952 xs: "center", 953 md: "left" 954 } 955 }, 956 dangerouslySetInnerHTML: { 957 __html: show.episodes[0].description 958 } 959 }) 960 ] 961 }) 962 ] 963 }) 964 }), 965 /*#__PURE__*/ (0,jsx_runtime.jsx)(Container_Container, { 966 maxWidth: "xl", 967 sx: { 968 display: { 969 sm: "block", 970 md: "none" 971 }, 972 marginBottom: { 973 xs: "300px", 974 sm: "300px" 975 } 976 }, 977 children: /*#__PURE__*/ (0,jsx_runtime.jsx)(Grid/* default */.ZP, { 978 container: true, 979 children: /*#__PURE__*/ (0,jsx_runtime.jsx)(Grid/* default */.ZP, { 980 item: true, 981 sx: { 982 width: { 983 xs: "100%" 984 }, 985 flexGrow: 1 986 }, 987 children: /*#__PURE__*/ (0,jsx_runtime.jsx)(sideepisodes, { 988 username: username, 989 show_id: show._id, 990 icons: show.icons, 991 type: "syndication" 992 }) 993 }) 994 }) 995 }) 996 ] 997 }) 998 }); 999}; 1000var __N_SSP = true; 1001/* harmony default export */ var _episodeID_ = ((0,withTheme/* default */.Z)(EpisodePage, "main", false)); 1002 1003 1004/***/ }) 1005 1006}, 1007/******/ function(__webpack_require__) { // webpackRuntimeModules 1008/******/ var __webpack_exec__ = function(moduleId) { return __webpack_require__(__webpack_require__.s = moduleId); } 1009/******/ __webpack_require__.O(0, [4885,7466,1664,9120,7066,3818,2888,9774,179], function() { return __webpack_exec__(10518); }); 1010/******/ var __webpack_exports__ = __webpack_require__.O(); 1011/******/ _N_E = __webpack_exports__; 1012/******/ } 1013]);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.