Live video on the AT Protocol

app: add click5 debug menu

See merge request aquareum-tv/aquareum!26

+36 -6
+35 -6
js/app/app/(tabs)/index.tsx
··· 44 44 import { WebView } from "react-native-webview"; 45 45 import { Countdown } from "components"; 46 46 import { ImageBackground } from "react-native"; 47 + import * as env from "constants/env"; 48 + import { useState } from "react"; 47 49 48 50 const WebviewIframe = ({ src }) => { 49 51 if (isWeb) { ··· 60 62 } 61 63 }; 62 64 65 + const TAP_COUNT = 5; 66 + const TAP_WINDOW = 5000; 63 67 export default function TabOneScreen() { 64 68 // const isLive = Date.now() >= 1721149200000; 69 + const [debug, setDebug] = useState(false); 70 + const [presses, setPresses] = useState<number[]>([]); 71 + const handlePress = () => { 72 + const newTaps = [...presses, Date.now()]; 73 + if (newTaps.length > TAP_COUNT) { 74 + newTaps.shift(); 75 + } 76 + if ( 77 + newTaps.length >= TAP_COUNT && 78 + newTaps[newTaps.length - 1] - newTaps[0] <= TAP_WINDOW 79 + ) { 80 + setPresses([]); 81 + setDebug(!debug); 82 + } else { 83 + setPresses(newTaps); 84 + } 85 + }; 65 86 const isLive = false; 66 87 return ( 67 88 <YStack f={1} ai="center" gap="$8" pt="$5" alignItems="stretch"> 68 89 <YStack f={1} alignItems="stretch"> 69 - <View fg={1} flexBasis={0}> 70 - <ImageBackground 71 - source={{ uri: cube }} 72 - style={{ width: "100%", height: "100%" }} 73 - resizeMode="contain" 74 - ></ImageBackground> 90 + <View fg={1} flexBasis={0} onPress={handlePress}> 91 + {!debug && ( 92 + <ImageBackground 93 + source={{ uri: cube }} 94 + style={{ width: "100%", height: "100%" }} 95 + resizeMode="contain" 96 + ></ImageBackground> 97 + )} 98 + {debug && 99 + Object.entries(env).map(([k, v]) => ( 100 + <Text key={k}> 101 + {k}={v} 102 + </Text> 103 + ))} 75 104 </View> 76 105 </YStack> 77 106 <View flexShrink={0} flexGrow={0}>
+1
js/app/constants/env.ts
··· 1 + export const EXPO_PUBLIC_AQUAREUM_URL = process.env.EXPO_PUBLIC_AQUAREUM_URL;