@soul-refiner/design-system 2.7.30 → 2.8.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/media/video-player/misc.js +16 -0
- package/dist/components/media/video-player/playlist-item.js +4 -3
- package/dist/components/media/video-player/video.js +80 -17
- package/dist/src/components/media/common.d.ts +6 -0
- package/dist/src/components/media/video-player/misc.d.ts +14 -0
- package/dist/src/components/media/video-player/video.d.ts +3 -10
- package/dist/src/utils/local-storage.d.ts +1 -0
- package/dist/utils/local-storage.js +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
"use strict";var React=require("react"),styled=require("styled-components"),button=require("../../actions/button/button.js"),playlistItem=require("./playlist-item.js");function _interopDefaultCompat(t){return t&&"object"==typeof t&&"default"in t?t:{default:t}}var React__default=_interopDefaultCompat(React);const TrailerListItem=({trailer:t,title:e,handleSetPlayingTrailer:l})=>React__default.default.createElement(playlistItem.PlaylistItem,{onClick:()=>l(!0),playable:!0,thumbnail:t.thumbnail,title:e+" Trailer"}),ButtonViewAll=({showingAll:t,toggleShowingAll:e})=>React__default.default.createElement(ButtonViewAllWrapper,null,React__default.default.createElement(button.Button,{onClick:e,size:"small",type:"text"},t?"Collapse":"View all")),ButtonViewAllWrapper=styled.styled.span`
|
|
3
|
+
margin-left: auto;
|
|
4
|
+
button {
|
|
5
|
+
background-color: var(--color-grey-2);
|
|
6
|
+
border: 1px solid var(--color-white) !important;
|
|
7
|
+
border-radius: 32px;
|
|
8
|
+
color: var(--color-white) !important;
|
|
9
|
+
height: 32px;
|
|
10
|
+
padding: 6px 16px;
|
|
11
|
+
&:hover {
|
|
12
|
+
background-color: var(--color-grey-4);
|
|
13
|
+
color: var(--color-white);
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
`;exports.ButtonViewAll=ButtonViewAll,exports.TrailerListItem=TrailerListItem;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";var React=require("react"),Image=require("next/image"),styled=require("styled-components"),box=require("../../atoms/box/box.js"),seconds_to_duration=require("../../atoms/seconds_to_duration/seconds_to_duration.js"),paragraph=require("../../atoms/typography/paragraph.js"),lock=require("../../../icons/security/lock.js"),play_solid=require("../../../icons/audio_video/play_solid.js"),tooltip=(require("../../feedback/badge/badge.js"),require("../../feedback/banner/banner.js"),require("../../feedback/loader/loader.js"),require("../../feedback/notification/notification.js"),require("../../feedback/progress/progress.js"),require("../../feedback/toast/toast.js"),require("../../feedback/tooltip/tooltip.js"));function _interopDefaultCompat(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}require("../../feedback/animated_toast/animated_toast.js");var React__default=_interopDefaultCompat(React),Image__default=_interopDefaultCompat(Image);const PlaylistItem=React__default.default.forwardRef(({duration:e,onClick:t,playable:a,progress:l=0,shortDescription:r,thumbnail:o,nowplaying:i,playlistItemId:n,title:s},d)=>React__default.default.createElement(Wrapper,{ref:d,onClick:a?t:void 0,$playable:a
|
|
1
|
+
"use strict";var React=require("react"),Image=require("next/image"),styled=require("styled-components"),box=require("../../atoms/box/box.js"),seconds_to_duration=require("../../atoms/seconds_to_duration/seconds_to_duration.js"),paragraph=require("../../atoms/typography/paragraph.js"),lock=require("../../../icons/security/lock.js"),play_solid=require("../../../icons/audio_video/play_solid.js"),tooltip=(require("../../feedback/badge/badge.js"),require("../../feedback/banner/banner.js"),require("../../feedback/loader/loader.js"),require("../../feedback/notification/notification.js"),require("../../feedback/progress/progress.js"),require("../../feedback/toast/toast.js"),require("../../feedback/tooltip/tooltip.js"));function _interopDefaultCompat(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}require("../../feedback/animated_toast/animated_toast.js");var React__default=_interopDefaultCompat(React),Image__default=_interopDefaultCompat(Image);const PlaylistItem=React__default.default.forwardRef(({duration:e,onClick:t,playable:a,progress:l=0,shortDescription:r,thumbnail:o,nowplaying:i,playlistItemId:n,title:s},d)=>React__default.default.createElement(Wrapper,{ref:d,onClick:a?t:void 0,$playable:a,$playlistItemId:n,$nowplaying:i},a?React__default.default.createElement(play_solid.PlaySolid,{color:"white",size:16,sx:"position: absolute; left: 10px; bottom: 10px;"}):React__default.default.createElement(lock.Lock,{color:"white",size:16,sx:"position: absolute; left: 10px; bottom: 10px;"}),React__default.default.createElement(Image__default.default,{alt:"thumbnail for "+s,height:75,quality:100,src:o,width:133}),l&&e?React__default.default.createElement(ProgressBar,{progressPercent:l/e}):null,React__default.default.createElement(box.Box,{$dir:"column",$gap:4,sx:"margin-left: 16px; margin-right: auto; flex: 0 1 auto; flex-basis: content;"},React__default.default.createElement(paragraph.P,{$color:"grey-10",$semiBold:!0},s),React__default.default.createElement(box.Box,{$gap:4,$align:"flex-end"},r&&React__default.default.createElement(paragraph.P,{$color:"grey-9",$fontSize:14,$lineHeight:20,$textClampLines:2,sx:"max-width: min(500px, 100%);"},r),r&&70<r?.length&&React__default.default.createElement(box.Box,{$justify:"flex-start",sx:"div{ text-align: left !important; z-index: 99; } .opaque { opacity: 1 !important;} margin-right: 16px; "},React__default.default.createElement(tooltip.Tooltip,{content:r,place:"left"},React__default.default.createElement(paragraph.P,{$fontSize:14,$color:"white"},"More"))))),e&&React__default.default.createElement(paragraph.P,{$color:"grey-8",$fontSize:14,$lineHeight:20,sx:"flex-shrink: 0;"},React__default.default.createElement(seconds_to_duration.SecToDuration,{seconds:e})))),Wrapper=styled.styled.div`
|
|
2
2
|
width: 100%;
|
|
3
3
|
flex: 0 1 auto;
|
|
4
4
|
padding: 6px;
|
|
@@ -6,12 +6,13 @@
|
|
|
6
6
|
align-items: center;
|
|
7
7
|
position: relative;
|
|
8
8
|
&:hover {
|
|
9
|
-
${({playlistItemId:e
|
|
9
|
+
${({$playlistItemId:e,$nowplaying:t})=>e===t?"":"background: var(--color-grey-1);"}
|
|
10
10
|
}
|
|
11
11
|
box-sizing: border-box;
|
|
12
12
|
cursor: pointer;
|
|
13
|
+
user-select: none;
|
|
13
14
|
${({$playable:e})=>e?"":"pointer-events: none; cursor: initial;"}
|
|
14
|
-
${({playlistItemId:e
|
|
15
|
+
${({$playlistItemId:e,$nowplaying:t})=>null!=t&&e===t?"background-color: #4a4f55;":"background-color: initial;"}
|
|
15
16
|
`,ProgressBar=({progressPercent:e})=>React__default.default.createElement(ProgressBarSvg,{viewBox:"0 0 133 2",fill:"none",xmlns:"http://www.w3.org/2000/svg"},React__default.default.createElement("rect",{width:133*e,height:"2",fill:"var(--color-primary-blue-2)"}),React__default.default.createElement("rect",{x:133*e,width:133-133*e,height:"2",fill:"var(--color-grey-8)"})),ProgressBarSvg=styled.styled.svg`
|
|
16
17
|
width: 133px;
|
|
17
18
|
position: absolute;
|
|
@@ -1,5 +1,14 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
"use strict";var React=require("react"),Image=require("next/image"),ReactPlayer=require("react-player"),styled=require("styled-components"),box=require("../../atoms/box/box.js"),tabs=(require("../../navigation/breadcrumb/breadcrumb.js"),require("../../navigation/inner/inner.js"),require("../../navigation/tabs/tabs.js")),
|
|
2
|
+
"use strict";var React=require("react"),Image=require("next/image"),ReactPlayer=require("react-player"),styled=require("styled-components"),button=require("../../actions/button/button.js"),box=require("../../atoms/box/box.js"),tabs=(require("../../navigation/breadcrumb/breadcrumb.js"),require("../../navigation/inner/inner.js"),require("../../navigation/tabs/tabs.js")),select_item=require("../../../icons/basic/select_item.js"),heading=require("../../atoms/typography/heading.js"),paragraph=require("../../atoms/typography/paragraph.js"),lock_circle=require("../../../icons/security/lock_circle.js"),play_solid=require("../../../icons/audio_video/play_solid.js"),localStorage=require("../../../utils/local-storage.js"),playlistItem=require("./playlist-item.js"),misc=require("./misc.js");function _interopDefaultCompat(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var React__default=_interopDefaultCompat(React),Image__default=_interopDefaultCompat(Image),ReactPlayer__default=_interopDefaultCompat(ReactPlayer);const RESOLUTION=1280/720,MIN_PIP_HEIGHT=200,MIN_PIP_WIDTH=RESOLUTION*MIN_PIP_HEIGHT,VideoPlayer=({activeIndex:e,pip:t,playable:a,playlist:l,onClickPreview:i,onPipChange:r,onProgress:o,onStart:n,orientation:d,setMediaItem:c,forwardedRef:s,subtitle:u,title:p,trailer:g,volume:D=1})=>{const f="undefined"!=typeof window?window:{innerHeight:0,innerWidth:600};var h=f.innerHeight/3,x=RESOLUTION*(f.innerHeight/3),m=React__default.default.useRef(null);const b=s||m,_=React__default.default.useRef({});s=React__default.default.useRef(null);const y=React__default.default.useRef(null),[w,R]=React__default.default.useState(0),[v,L]=React__default.default.useState(!1),[I,E]=React__default.default.useState(!a),[P,$]=React__default.default.useState(l?.[e].id||null),[M,q]=localStorage.useLocalStorage("videoPipHeight",h),[N,A]=localStorage.useLocalStorage("videoPipWidth",x),[k,O]=localStorage.useLocalStorage("videoPipRight",16),[S,B]=localStorage.useLocalStorage("videoPipBottom",16),[z,H]=React__default.default.useState([0,0]),[T,V]=React__default.default.useState([0,0]),C=I?g:l?.[e];React__default.default.useEffect(()=>{const e=()=>{const e=_.current[P];e&&setTimeout(()=>{e.scrollIntoView({behavior:"smooth",block:"center"})},0)};return l?.length&&P&&("undefined"!=typeof window&&window.addEventListener("load",e),e()),()=>{"undefined"!=typeof window&&window.removeEventListener("load",e)}},[l,P]);const W=e=>{E(!1),c(e)};m=()=>L(e=>!e);const j=(e,t)=>{var a;!y?.current||(a=y.current.getBoundingClientRect()).x<16||a.y<16||e>=2*f.innerWidth/3||t>=2*f.innerHeight/3||e<MIN_PIP_WIDTH||t<MIN_PIP_HEIGHT||(A(e),q(t))};h=()=>{var e;y?.current&&(e=y.current.getBoundingClientRect(),V([e.width,e.height]))},x=e=>{var t,a,l,i;y?.current&&(t=e.currentTarget.getAttribute("class")?.split(" ")||[],a=window.innerWidth-e.clientX,i=window.innerHeight-e.clientY,e.clientX<0||e.clientY<0||(e.stopPropagation(),e.preventDefault(),t.includes("top")?(e=Math.round(i-z[1]+T[1]),l=Math.round(e*RESOLUTION),j(l,e)):t.includes("bottom")?(l=Math.round(z[1]-i+T[1]),e=Math.round(l*RESOLUTION),j(e,l)):t.includes("left")?(i=Math.round(a-z[0]+T[0]),e=Math.round(i/RESOLUTION),j(i,e)):t.includes("right")&&(l=Math.round(z[0]-a+T[0]),i=Math.round(l/RESOLUTION),j(l,i))))};return C?React__default.default.createElement(Wrapper,{$orientation:d},React__default.default.createElement(InnerWrapper,{$orientation:d,$playable:a||I},"vertical"===d&&React__default.default.createElement(box.Box,{$dir:"column",$gap:4,sx:"margin: 24px;"},React__default.default.createElement(heading.H,{as:"h2",$bold:!0,$color:"white",$fontSize:28,$lineHeight:36},p),React__default.default.createElement(paragraph.P,{as:"h3",$bold:!0,$color:"grey-8"},u)),t&&React__default.default.createElement(ClosePip,null),React__default.default.createElement(PipWrapper,{$pip:!!t,draggable:"false",onDrag:e=>{var t,a,l,i;e.clientX<0||e.clientY<0||(t=window.innerWidth-e.clientX,e=window.innerHeight-e.clientY,a=k+(t-z[0]),l=S+(e-z[1]),y?.current&&(i=y.current.getBoundingClientRect(),a&&16<=a&&a<=f.innerWidth-16-i.width&&O(a),l)&&16<=l&&l<=f.innerHeight-16-i.height&&B(l),H([t,e]))},onMouseDown:e=>{H([window.innerWidth-e.clientX,window.innerHeight-e.clientY])},ref:y,style:t?{bottom:S,height:M,right:k,width:N}:void 0},t&&React__default.default.createElement(button.Button,{className:"close-pip",icon:React__default.default.createElement(select_item.SelectItem,{color:"grey-0"}),onClick:e=>{e.stopPropagation(),r&&r(!1)},size:"large",sx:`
|
|
3
|
+
display: none;
|
|
4
|
+
position: absolute;
|
|
5
|
+
top: 8px;
|
|
6
|
+
right: 8px;
|
|
7
|
+
z-index: 10;
|
|
8
|
+
svg {
|
|
9
|
+
fill: var(--color-white);
|
|
10
|
+
}
|
|
11
|
+
`,type:"text"}),React__default.default.createElement(ReactPlayer__default.default,{className:"player",config:{file:{attributes:{crossOrigin:"true",disablePictureInPicture:"true",draggable:"true"},forceHLS:!0,hlsOptions:{autoStartLoad:!0},tracks:(C?.subtitles||[]).map(e=>({kind:"subtitles",label:e.label,src:e.src,srcLang:e.locale}))}},controls:!0,height:"100%",light:React__default.default.createElement(Image__default.default,{alt:"thumbnail for "+p,layout:"fill",priority:!0,quality:100,style:{objectFit:"contain"},src:C.thumbnail}),progressInterval:4e3,onDisablePIP:()=>r&&r(!1),onEnablePIP:()=>r&&r(!0),onProgress:o,onStart:n,onClickPreview:i,onReady:()=>{I||0===b?.current?.getCurrentTime()&&0!==C?.progress&&b.current.seekTo(C.progress)},pip:t,playIcon:a||I?React__default.default.createElement(play_solid.PlaySolid,{color:"white",size:24,sx:"position: absolute; width: 54px; height: 54px;"}):React__default.default.createElement(lock_circle.LockCircle,{color:"white",size:24,sx:"position: absolute; width: 54px; height: 54px;"}),playing:a,ref:b,url:C.src,width:"100%",volume:D}),React__default.default.createElement(Resizer,{className:"top horizontal",draggable:"false",onDrag:x,onMouseDown:h,tabIndex:0}),React__default.default.createElement(Resizer,{className:"bottom horizontal",draggable:"false",onDrag:x,onMouseDown:h,tabIndex:0}),React__default.default.createElement(Resizer,{className:"right vertical",draggable:"false",onDrag:x,onMouseDown:h,tabIndex:0}),React__default.default.createElement(Resizer,{className:"left vertical",draggable:"false",onDrag:x,onMouseDown:h,tabIndex:0})),"horizontal"===d&&React__default.default.createElement(Side,null,React__default.default.createElement(ScalableContainerWrapper,{$showingAll:v},React__default.default.createElement(box.Box,{$dir:"column",$gap:4},React__default.default.createElement(heading.H,{as:"h2",$bold:!0,$color:"white",$fontSize:28,$lineHeight:36},p),React__default.default.createElement(paragraph.P,{as:"h3",$bold:!0,$color:"grey-8"},u)),React__default.default.createElement(box.Box,{$align:"center"},React__default.default.createElement(tabs.Tabs,{activeIndex:w,onChange:e=>R(e),items:[{label:"All lessons",color:"dark"},{label:"Trailer",color:"dark"}],size:"medium",sx:"justify-content: flex-start;"}),React__default.default.createElement(misc.ButtonViewAll,{showingAll:v,toggleShowingAll:m})),[React__default.default.createElement(HorizontalPlaylistWrapper,{ref:s,$showingAll:v},l.map((t,e)=>React__default.default.createElement(playlistItem.PlaylistItem,{nowplaying:P,key:t.id,ref:e=>{_.current[t.id]=e},playlistItemId:t.id,duration:t.duration,onClick:()=>{W(e),$(t.id)},playable:!0,progress:t.progress,shortDescription:t.shortDescription,thumbnail:t.thumbnail,title:t.title}))),!!g&&React__default.default.createElement(misc.TrailerListItem,{title:p,handleSetPlayingTrailer:E,trailer:g})][w])),"vertical"===d&&React__default.default.createElement(box.Box,{$dir:"column",$gap:24,sx:v?"z-index: 3; position:relative;":"height: auto"},React__default.default.createElement(ScalableContainerWrapperVertical,{$showingAll:v},React__default.default.createElement(box.Box,{sx:"padding: 0 1.5rem;",$align:"center"},React__default.default.createElement(tabs.Tabs,{activeIndex:w,onChange:e=>R(e),items:[{label:"All lessons",color:"dark"},{label:"Trailer",color:"dark"}],size:"medium",sx:"justify-content: flex-start;"}),React__default.default.createElement(misc.ButtonViewAll,{showingAll:v,toggleShowingAll:m})),[React__default.default.createElement(VerticalPlaylistWrapper,{ref:s,$showingAll:v},l.map((t,e)=>React__default.default.createElement(playlistItem.PlaylistItem,{nowplaying:P,playlistItemId:t.id,duration:t.duration,key:t.id,ref:e=>{_.current[t.id]=e},onClick:()=>{W(e),$(t.id)},playable:a,progress:t.progress,shortDescription:t.shortDescription,thumbnail:t.thumbnail,title:t.title}))),!!g&&React__default.default.createElement(box.Box,{$dir:"column",$gap:8,sx:"margin: 0px 24px;"},React__default.default.createElement(misc.TrailerListItem,{title:p,handleSetPlayingTrailer:E,trailer:g}))][w])))):null},Wrapper=styled.styled.div`
|
|
3
12
|
display: flex;
|
|
4
13
|
justify-content: center;
|
|
5
14
|
background-color: var(--color-grey-0);
|
|
@@ -9,7 +18,75 @@
|
|
|
9
18
|
}
|
|
10
19
|
|
|
11
20
|
${({$orientation:e})=>"vertical"===e?"max-width: 960px; height: max-content;":""}
|
|
12
|
-
`,
|
|
21
|
+
`,PipWrapper=styled.styled.div`
|
|
22
|
+
background-color: var(--color-grey-0);
|
|
23
|
+
max-height: 720px;
|
|
24
|
+
max-width: 100%;
|
|
25
|
+
min-height: 480px;
|
|
26
|
+
overflow: hidden;
|
|
27
|
+
position: relative;
|
|
28
|
+
width: 100%;
|
|
29
|
+
height: 100%;
|
|
30
|
+
border-radius: 16px;
|
|
31
|
+
${({$pip:e})=>e?`
|
|
32
|
+
position: fixed;
|
|
33
|
+
z-index: 1000;
|
|
34
|
+
aspect-ratio: 1280 / 720;
|
|
35
|
+
min-height: unset;
|
|
36
|
+
max-height: calc(100vh - 32px);
|
|
37
|
+
max-width: calc(100vw - 32px);
|
|
38
|
+
background-color: transparent;
|
|
39
|
+
overflow: visible;
|
|
40
|
+
& * {
|
|
41
|
+
border-radius: 16px;
|
|
42
|
+
}
|
|
43
|
+
& img,
|
|
44
|
+
& video {
|
|
45
|
+
user-select: none;
|
|
46
|
+
}
|
|
47
|
+
&:hover .close-pip {
|
|
48
|
+
display: flex;
|
|
49
|
+
}`:""}
|
|
50
|
+
`,ClosePip=styled.styled.div`
|
|
51
|
+
width: 100%;
|
|
52
|
+
height: 100%;
|
|
53
|
+
display: flex;
|
|
54
|
+
align-items: center;
|
|
55
|
+
justify-content: center;
|
|
56
|
+
max-height: 720px;
|
|
57
|
+
max-width: 100%;
|
|
58
|
+
aspect-ratio: unset !important;
|
|
59
|
+
`,Resizer=styled.styled.div`
|
|
60
|
+
position: absolute;
|
|
61
|
+
z-index: 100;
|
|
62
|
+
margin: 0px;
|
|
63
|
+
padding: 0px;
|
|
64
|
+
background-color: transparent;
|
|
65
|
+
&.horizontal {
|
|
66
|
+
width: 100%;
|
|
67
|
+
height: 12px;
|
|
68
|
+
cursor: ns-resize;
|
|
69
|
+
}
|
|
70
|
+
&.vertical {
|
|
71
|
+
width: 12px;
|
|
72
|
+
height: 100%;
|
|
73
|
+
cursor: ew-resize;
|
|
74
|
+
}
|
|
75
|
+
&.top {
|
|
76
|
+
top: -8px;
|
|
77
|
+
}
|
|
78
|
+
&.bottom {
|
|
79
|
+
bottom: -8px;
|
|
80
|
+
}
|
|
81
|
+
&.left {
|
|
82
|
+
left: -8px;
|
|
83
|
+
top: 0px;
|
|
84
|
+
}
|
|
85
|
+
&.right {
|
|
86
|
+
right: -8px;
|
|
87
|
+
top: 0px;
|
|
88
|
+
}
|
|
89
|
+
`,InnerWrapper=styled.styled.div`
|
|
13
90
|
flex: 1;
|
|
14
91
|
display: flex;
|
|
15
92
|
justify-content: flex-end;
|
|
@@ -32,7 +109,7 @@
|
|
|
32
109
|
& > div:last-of-type {
|
|
33
110
|
flex: 3;
|
|
34
111
|
}`}
|
|
35
|
-
|
|
112
|
+
`,Side=styled.styled.div`
|
|
36
113
|
position: relative;
|
|
37
114
|
flex: 1;
|
|
38
115
|
box-sizing: border-box;
|
|
@@ -110,18 +187,4 @@
|
|
|
110
187
|
}
|
|
111
188
|
|
|
112
189
|
${({$showingAll:e})=>e?"height: 100%; overflow-y:auto;":"max-height: 350px;"}
|
|
113
|
-
`,ButtonViewAllWrapper=styled.styled.span`
|
|
114
|
-
margin-left: auto;
|
|
115
|
-
button {
|
|
116
|
-
background-color: var(--color-grey-2);
|
|
117
|
-
border: 1px solid var(--color-white) !important;
|
|
118
|
-
border-radius: 32px;
|
|
119
|
-
color: var(--color-white) !important;
|
|
120
|
-
height: 32px;
|
|
121
|
-
padding: 6px 16px;
|
|
122
|
-
&:hover {
|
|
123
|
-
background-color: var(--color-grey-4);
|
|
124
|
-
color: var(--color-white);
|
|
125
|
-
}
|
|
126
|
-
}
|
|
127
190
|
`;exports.VideoPlayer=VideoPlayer;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { Trailer } from '../common';
|
|
3
|
+
type TrailerListItemProps = {
|
|
4
|
+
trailer: Trailer;
|
|
5
|
+
title: string;
|
|
6
|
+
handleSetPlayingTrailer: React.Dispatch<React.SetStateAction<boolean>>;
|
|
7
|
+
};
|
|
8
|
+
type ButtonViewAllProps = {
|
|
9
|
+
showingAll: boolean;
|
|
10
|
+
toggleShowingAll: React.MouseEventHandler<HTMLButtonElement>;
|
|
11
|
+
};
|
|
12
|
+
export declare const TrailerListItem: ({ trailer, title, handleSetPlayingTrailer, }: TrailerListItemProps) => React.JSX.Element;
|
|
13
|
+
export declare const ButtonViewAll: ({ showingAll, toggleShowingAll, }: ButtonViewAllProps) => React.JSX.Element;
|
|
14
|
+
export {};
|
|
@@ -1,11 +1,5 @@
|
|
|
1
|
-
import React
|
|
2
|
-
import { MediaItem,
|
|
3
|
-
interface Trailer {
|
|
4
|
-
id: number;
|
|
5
|
-
src: string;
|
|
6
|
-
subtitles: Subtitle[];
|
|
7
|
-
thumbnail: string;
|
|
8
|
-
}
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { MediaItem, Trailer } from '../common';
|
|
9
3
|
export interface VideoPlayerProps {
|
|
10
4
|
/**
|
|
11
5
|
* @param activeIndex the media item frm the playlist currently playing
|
|
@@ -70,11 +64,10 @@ export interface VideoPlayerProps {
|
|
|
70
64
|
/**
|
|
71
65
|
* @param forwardedRef the reference to the video player
|
|
72
66
|
*/
|
|
73
|
-
forwardedRef?: MutableRefObject<any>;
|
|
67
|
+
forwardedRef?: React.MutableRefObject<any>;
|
|
74
68
|
}
|
|
75
69
|
/**
|
|
76
70
|
* ReactPlayer props reference -> https://www.npmjs.com/package/react-player#props
|
|
77
71
|
* HLS Option props reference -> https://github.com/video-dev/hls.js/blob/master/docs/API.md#fine-tuning
|
|
78
72
|
*/
|
|
79
73
|
export declare const VideoPlayer: ({ activeIndex, pip, playable, playlist, onClickPreview, onPipChange, onProgress, onStart, orientation, setMediaItem, forwardedRef, subtitle, title, trailer, volume, }: VideoPlayerProps) => React.JSX.Element | null;
|
|
80
|
-
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const useLocalStorage: <T = unknown>(key: string, defaultValue?: T | undefined) => [T, (state: T) => void, () => void];
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";var React=require("react");function _interopDefaultCompat(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var React__default=_interopDefaultCompat(React);const setLocalStorageItem=(e,t)=>{"undefined"!=typeof window&&(t=JSON.stringify(t),window.localStorage.setItem(e,t))},removeLocalStorageItem=e=>{"undefined"!=typeof window&&window.localStorage.removeItem(e)},getLocalStorageItem=e=>{if("undefined"!=typeof window)return"string"==typeof(e=window.localStorage.getItem(e))?JSON.parse(e):e},useLocalStorage=(t,a)=>{const[e,o]=React__default.default.useState(()=>{var e=getLocalStorageItem(t);return null!==e?e:a});var r=React__default.default.useCallback(()=>{o(void 0),removeLocalStorageItem(t)},[t]);return React__default.default.useEffect(()=>{null===getLocalStorageItem(t)&&void 0!==a&&setLocalStorageItem(t,a)},[t,a]),[e,e=>{o(e),setLocalStorageItem(t,e)},r]};exports.useLocalStorage=useLocalStorage;
|