PageSourceSearch

https://podtoo.com/_next/static/chunks/pages/player/[username]/[episodeID]-dbbeaca75285c7b3.js

js podtoo.com collected 2026-09-25 00:48:54 UTC 40,928 bytes, 1,013 lines download raw bytes

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.