Compare commits

..

No commits in common. "d3e7e3152f0707ba1b94b7c0e76ee8105eba3a47" and "18a02d74908e937d1a16097750cccebba527612c" have entirely different histories.

3 changed files with 31 additions and 25 deletions

31
app.js
View File

@ -7,8 +7,7 @@ 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",
@ -51,11 +50,11 @@ const App = props =>
/** @type {Boxcast.StateBinding<Array<Boxcast.Broadcast>>} */
const [ListGet, ListSet] = useState([]);
/** @type {Boxcast.StateBinding<Boxcast.Broadcast|null>} */
const [SelectedGet, SelectedSet] = useState(null);
/** @type {Boxcast.StateBinding<string>} */
const [SelectedGet, SelectedSet] = useState("");
/** @type {Boxcast.StateBinding<Boxcast.Broadcast|null>} */
const [LiveGet, LiveSet] = useState(null);
/** @type {Boxcast.StateBinding<string>} */
const [LiveGet, LiveSet] = useState("");
/** @type {(inList:Array<Boxcast.Broadcast>)=>Array<Boxcast.Broadcast>} */
const SortStart = (inList) => {
@ -105,20 +104,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];
live = ListGet[i].id;
break;
}
}
if(LiveGet?.id != live?.id)
if(LiveGet != live)
{
console.log("new video starting")
}
if(SelectedGet?.id != live?.id)
if(SelectedGet != live)
{
console.log("would you like to switch?");
}
@ -139,7 +138,7 @@ const App = props =>
{
Player.current.loadChannel(props.channel,
{
selectedBroadcastId: SelectedGet?.id,
selectedBroadcastId: SelectedGet,
showTitle: true,
showDescription: true,
showCountdown: true,
@ -164,9 +163,9 @@ const App = props =>
{
item: item,
previous: ListGet[index-1],
priority: item.id == LiveGet?.id,
selected: item.id == SelectedGet?.id,
select: ()=>SelectedSet(item)
priority: item.id == LiveGet,
selected: item.id == SelectedGet,
select: ()=>SelectedSet(item.id)
}
))
}
@ -246,7 +245,6 @@ const DateParse = (inDateString) =>
Date: date.getDate(),
Hours: date.getHours(),
Minutes: date.getMinutes(),
Epoch: date.valueOf()
};
obj.Zone = obj.Zone ? obj.Zone[1] : "local time";
@ -257,5 +255,4 @@ const DateParse = (inDateString) =>
return obj;
};
/** @type {(inChannel:string, inSelector:string)=>void} */
export default (inChannel, inSelector) => render(h(App, {channel:inChannel, interval:50000}), document.querySelector(inSelector));
export default App;

View File

@ -2,15 +2,25 @@
<html>
<head></head>
<body>
<div style="max-width:500px; margin: 0 auto;">
<div id="boxcast"></div>
<script type="module">
import Init from "./app.js";
const Channel = { Basics: "sfz7ja3rlpoous6usu8a", Sunday: "gzahmhugrzogttfdtbjj", Dev: "r3os2zfdnhlquhuypgtp" };
Init(Channel.Basics, "#boxcast");
</script>
</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")
);
</script>
</body>
</html>

3
types.d.ts vendored
View File

@ -25,8 +25,7 @@ namespace Boxcast
Date: number
Hours: number
Minutes: string | number
M?: "AM" | "PM",
Epoch: number
M?: "AM" | "PM"
}
type StateBinding<T> = [T, (item:T)=>void];