usePlaylist hook created

This commit is contained in:
nklhrstv 2021-07-20 18:41:08 +03:00
parent 9e014b6489
commit e6d213f541
2 changed files with 18 additions and 10 deletions

View file

@ -14,6 +14,7 @@ const InfoMenu = require('./InfoMenu');
const SubtitlesMenu = require('./SubtitlesMenu');
const Video = require('./Video');
const usePlayer = require('./usePlayer');
const usePlaylist = require('./usePlaylist');
const useSettings = require('./useSettings');
const styles = require('./styles');
@ -23,21 +24,12 @@ const Player = ({ urlParams, queryParams }) => {
return queryParams.has('forceTranscoding');
}, [queryParams]);
const [player, updateLibraryItemState, pushToLibrary] = usePlayer(urlParams);
const playlist = usePlaylist(player);
const [settings, updateSettings] = useSettings();
const streamingServer = useStreamingServer();
const routeFocused = useRouteFocused();
const toast = useToast();
const [, , , toggleFullscreen] = useFullscreen();
const playlist = React.useMemo(() => {
if (player.selected === null || typeof player.selected.stream.url !== 'string') {
return null;
}
const name = `${player.title}.m3u`;
const m3u = `#EXTM3U\n\n#EXTINF:0,${encodeURIComponent(player.title)}\n${encodeURI(player.selected.stream.url)}`;
const href = `data:application/octet-stream;charset=utf-8;base64,${window.btoa(m3u)}`;
return { name, href };
}, [player]);
const [casting, setCasting] = React.useState(() => {
return chromecast.active && chromecast.transport.getCastState() === cast.framework.CastState.CONNECTED;
});

View file

@ -0,0 +1,16 @@
const React = require('react');
const usePlaylist = (player) => {
return React.useMemo(() => {
if (player.selected === null || typeof player.selected.stream.url !== 'string') {
return null;
}
const name = `${player.title}.m3u`;
const m3u = `#EXTM3U\n\n#EXTINF:0,${encodeURIComponent(player.title)}\n${encodeURI(player.selected.stream.url)}`;
const href = `data:application/octet-stream;charset=utf-8;base64,${window.btoa(m3u)}`;
return { name, href };
}, [player]);
};
module.exports = usePlaylist;