Compare commits
2 Commits
18a02d7490
...
d3e7e3152f
Author | SHA1 | Date | |
---|---|---|---|
d3e7e3152f | |||
034067f796 |
31
app.js
31
app.js
@ -7,7 +7,8 @@ import { useReducer, useState, useEffect, useLayoutEffect, useMemo, useRef } fro
|
||||
import State01 from "./testdata-01.json" assert { type: "json" };
|
||||
import State02 from "./testdata-02.json" assert { type: "json" };
|
||||
|
||||
const Styles = {
|
||||
const Styles =
|
||||
{
|
||||
Broadcast:
|
||||
{
|
||||
position: "relative",
|
||||
@ -50,11 +51,11 @@ const App = props =>
|
||||
/** @type {Boxcast.StateBinding<Array<Boxcast.Broadcast>>} */
|
||||
const [ListGet, ListSet] = useState([]);
|
||||
|
||||
/** @type {Boxcast.StateBinding<string>} */
|
||||
const [SelectedGet, SelectedSet] = useState("");
|
||||
/** @type {Boxcast.StateBinding<Boxcast.Broadcast|null>} */
|
||||
const [SelectedGet, SelectedSet] = useState(null);
|
||||
|
||||
/** @type {Boxcast.StateBinding<string>} */
|
||||
const [LiveGet, LiveSet] = useState("");
|
||||
/** @type {Boxcast.StateBinding<Boxcast.Broadcast|null>} */
|
||||
const [LiveGet, LiveSet] = useState(null);
|
||||
|
||||
/** @type {(inList:Array<Boxcast.Broadcast>)=>Array<Boxcast.Broadcast>} */
|
||||
const SortStart = (inList) => {
|
||||
@ -104,20 +105,20 @@ const App = props =>
|
||||
// on new list
|
||||
useEffect(()=>
|
||||
{
|
||||
let live = "";
|
||||
let live;
|
||||
for(let i=0; i<ListGet.length; i++)
|
||||
{
|
||||
if(ListGet[i].timeframe != "past")
|
||||
{
|
||||
live = ListGet[i].id;
|
||||
live = ListGet[i];
|
||||
break;
|
||||
}
|
||||
}
|
||||
if(LiveGet != live)
|
||||
if(LiveGet?.id != live?.id)
|
||||
{
|
||||
console.log("new video starting")
|
||||
}
|
||||
if(SelectedGet != live)
|
||||
if(SelectedGet?.id != live?.id)
|
||||
{
|
||||
console.log("would you like to switch?");
|
||||
}
|
||||
@ -138,7 +139,7 @@ const App = props =>
|
||||
{
|
||||
Player.current.loadChannel(props.channel,
|
||||
{
|
||||
selectedBroadcastId: SelectedGet,
|
||||
selectedBroadcastId: SelectedGet?.id,
|
||||
showTitle: true,
|
||||
showDescription: true,
|
||||
showCountdown: true,
|
||||
@ -163,9 +164,9 @@ const App = props =>
|
||||
{
|
||||
item: item,
|
||||
previous: ListGet[index-1],
|
||||
priority: item.id == LiveGet,
|
||||
selected: item.id == SelectedGet,
|
||||
select: ()=>SelectedSet(item.id)
|
||||
priority: item.id == LiveGet?.id,
|
||||
selected: item.id == SelectedGet?.id,
|
||||
select: ()=>SelectedSet(item)
|
||||
}
|
||||
))
|
||||
}
|
||||
@ -245,6 +246,7 @@ const DateParse = (inDateString) =>
|
||||
Date: date.getDate(),
|
||||
Hours: date.getHours(),
|
||||
Minutes: date.getMinutes(),
|
||||
Epoch: date.valueOf()
|
||||
};
|
||||
|
||||
obj.Zone = obj.Zone ? obj.Zone[1] : "local time";
|
||||
@ -255,4 +257,5 @@ const DateParse = (inDateString) =>
|
||||
return obj;
|
||||
};
|
||||
|
||||
export default App;
|
||||
/** @type {(inChannel:string, inSelector:string)=>void} */
|
||||
export default (inChannel, inSelector) => render(h(App, {channel:inChannel, interval:50000}), document.querySelector(inSelector));
|
22
index.html
22
index.html
@ -2,25 +2,15 @@
|
||||
<html>
|
||||
<head></head>
|
||||
<body>
|
||||
|
||||
<div style="max-width:500px; margin: 0 auto;">
|
||||
<div id="boxcast"></div>
|
||||
</div>
|
||||
<script type="module">
|
||||
|
||||
const Channel = {
|
||||
Basics: "sfz7ja3rlpoous6usu8a",
|
||||
Sunday: "gzahmhugrzogttfdtbjj",
|
||||
Dev: "r3os2zfdnhlquhuypgtp"
|
||||
};
|
||||
|
||||
import { h, render } from "https://esm.sh/preact";
|
||||
import App from "./app.js";
|
||||
|
||||
render(
|
||||
h(App, {channel:Channel.Basics, interval:50000}),
|
||||
document.querySelector("#boxcast")
|
||||
);
|
||||
|
||||
import Init from "./app.js";
|
||||
const Channel = { Basics: "sfz7ja3rlpoous6usu8a", Sunday: "gzahmhugrzogttfdtbjj", Dev: "r3os2zfdnhlquhuypgtp" };
|
||||
Init(Channel.Basics, "#boxcast");
|
||||
</script>
|
||||
</div>
|
||||
|
||||
</body>
|
||||
</html>
|
3
types.d.ts
vendored
3
types.d.ts
vendored
@ -25,7 +25,8 @@ namespace Boxcast
|
||||
Date: number
|
||||
Hours: number
|
||||
Minutes: string | number
|
||||
M?: "AM" | "PM"
|
||||
M?: "AM" | "PM",
|
||||
Epoch: number
|
||||
}
|
||||
|
||||
type StateBinding<T> = [T, (item:T)=>void];
|
||||
|
Loading…
Reference in New Issue
Block a user