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 State01 from "./testdata-01.json" assert { type: "json" }; | ||||||
| import State02 from "./testdata-02.json" assert { type: "json" }; | import State02 from "./testdata-02.json" assert { type: "json" }; | ||||||
| 
 | 
 | ||||||
| const Styles = { | const Styles = | ||||||
|  | { | ||||||
|     Broadcast: |     Broadcast: | ||||||
|     { |     { | ||||||
|         position: "relative", |         position: "relative", | ||||||
| @ -50,11 +51,11 @@ const App = props => | |||||||
|     /** @type {Boxcast.StateBinding<Array<Boxcast.Broadcast>>} */ |     /** @type {Boxcast.StateBinding<Array<Boxcast.Broadcast>>} */ | ||||||
|     const [ListGet, ListSet] = useState([]); |     const [ListGet, ListSet] = useState([]); | ||||||
| 
 | 
 | ||||||
|     /** @type {Boxcast.StateBinding<string>} */ |     /** @type {Boxcast.StateBinding<Boxcast.Broadcast|null>} */ | ||||||
|     const [SelectedGet, SelectedSet] = useState(""); |     const [SelectedGet, SelectedSet] = useState(null); | ||||||
| 
 | 
 | ||||||
|     /** @type {Boxcast.StateBinding<string>} */ |     /** @type {Boxcast.StateBinding<Boxcast.Broadcast|null>} */ | ||||||
|     const [LiveGet, LiveSet] = useState(""); |     const [LiveGet, LiveSet] = useState(null); | ||||||
| 
 | 
 | ||||||
|     /** @type {(inList:Array<Boxcast.Broadcast>)=>Array<Boxcast.Broadcast>} */ |     /** @type {(inList:Array<Boxcast.Broadcast>)=>Array<Boxcast.Broadcast>} */ | ||||||
|     const SortStart = (inList) => { |     const SortStart = (inList) => { | ||||||
| @ -104,20 +105,20 @@ const App = props => | |||||||
|     // on new list
 |     // on new list
 | ||||||
|     useEffect(()=> |     useEffect(()=> | ||||||
|     { |     { | ||||||
|         let live = ""; |         let live; | ||||||
|         for(let i=0; i<ListGet.length; i++) |         for(let i=0; i<ListGet.length; i++) | ||||||
|         { |         { | ||||||
|             if(ListGet[i].timeframe != "past") |             if(ListGet[i].timeframe != "past") | ||||||
|             { |             { | ||||||
|                 live = ListGet[i].id; |                 live = ListGet[i]; | ||||||
|                 break; |                 break; | ||||||
|             } |             } | ||||||
|         } |         } | ||||||
|         if(LiveGet != live) |         if(LiveGet?.id != live?.id) | ||||||
|         { |         { | ||||||
|             console.log("new video starting") |             console.log("new video starting") | ||||||
|         } |         } | ||||||
|         if(SelectedGet != live) |         if(SelectedGet?.id != live?.id) | ||||||
|         { |         { | ||||||
|             console.log("would you like to switch?"); |             console.log("would you like to switch?"); | ||||||
|         } |         } | ||||||
| @ -138,7 +139,7 @@ const App = props => | |||||||
|     { |     { | ||||||
|         Player.current.loadChannel(props.channel, |         Player.current.loadChannel(props.channel, | ||||||
|         { |         { | ||||||
|             selectedBroadcastId: SelectedGet, |             selectedBroadcastId: SelectedGet?.id, | ||||||
|             showTitle: true, |             showTitle: true, | ||||||
|             showDescription: true, |             showDescription: true, | ||||||
|             showCountdown: true, |             showCountdown: true, | ||||||
| @ -163,9 +164,9 @@ const App = props => | |||||||
|                 { |                 { | ||||||
|                     item: item, |                     item: item, | ||||||
|                     previous: ListGet[index-1], |                     previous: ListGet[index-1], | ||||||
|                     priority: item.id == LiveGet, |                     priority: item.id == LiveGet?.id, | ||||||
|                     selected: item.id == SelectedGet, |                     selected: item.id == SelectedGet?.id, | ||||||
|                     select: ()=>SelectedSet(item.id) |                     select: ()=>SelectedSet(item) | ||||||
|                 } |                 } | ||||||
|             )) |             )) | ||||||
|         } |         } | ||||||
| @ -245,6 +246,7 @@ const DateParse = (inDateString) => | |||||||
|         Date: date.getDate(), |         Date: date.getDate(), | ||||||
|         Hours: date.getHours(), |         Hours: date.getHours(), | ||||||
|         Minutes: date.getMinutes(), |         Minutes: date.getMinutes(), | ||||||
|  |         Epoch: date.valueOf() | ||||||
|     }; |     }; | ||||||
| 
 | 
 | ||||||
|     obj.Zone = obj.Zone ? obj.Zone[1] : "local time"; |     obj.Zone = obj.Zone ? obj.Zone[1] : "local time"; | ||||||
| @ -255,4 +257,5 @@ const DateParse = (inDateString) => | |||||||
|     return obj; |     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> | <html> | ||||||
| <head></head> | <head></head> | ||||||
| <body> | <body> | ||||||
|  | 
 | ||||||
| <div style="max-width:500px; margin: 0 auto;"> | <div style="max-width:500px; margin: 0 auto;"> | ||||||
|     <div id="boxcast"></div> |     <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> | </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> | </body> | ||||||
| </html> | </html> | ||||||
							
								
								
									
										3
									
								
								types.d.ts
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										3
									
								
								types.d.ts
									
									
									
									
										vendored
									
									
								
							| @ -25,7 +25,8 @@ namespace Boxcast | |||||||
|         Date: number |         Date: number | ||||||
|         Hours: number |         Hours: number | ||||||
|         Minutes: string | number |         Minutes: string | number | ||||||
|         M?: "AM" | "PM" |         M?: "AM" | "PM", | ||||||
|  |         Epoch: number | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     type StateBinding<T> = [T, (item:T)=>void]; |     type StateBinding<T> = [T, (item:T)=>void]; | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user