Live video on the AT Protocol

app: add <title> to streams

+15 -3
+11
js/app/hooks/useTitle.tsx
···
··· 1 + import { useNavigation } from "@react-navigation/native"; 2 + import { useEffect } from "react"; 3 + 4 + export default function useTitle(user: string) { 5 + const navigation = useNavigation(); 6 + useEffect(() => { 7 + navigation.setOptions({ 8 + title: `@${user} on Streamplace`, 9 + }); 10 + }, [user, navigation]); 11 + }
+2 -3
js/app/src/screens/mobile-stream.tsx
··· 1 - import { useNavigation } from "@react-navigation/native"; 2 import { theme } from "@streamplace/components"; 3 import { Player } from "components/mobile/player"; 4 import { PlayerProps } from "components/player/props"; 5 import { FullscreenProvider } from "contexts/FullscreenContext"; 6 import { isWeb } from "tamagui"; 7 import { queryToProps } from "./util"; 8 9 export default function MobileStream({ route }) { 10 const { user, protocol, url } = route.params; 11 - const navigation = useNavigation(); 12 let extraProps: Partial<PlayerProps> = {}; 13 if (isWeb) { 14 extraProps = queryToProps(new URLSearchParams(window.location.search)); ··· 18 src = url; 19 } 20 21 - console.log(src); 22 23 return ( 24 <theme.ThemeProvider>
··· 1 import { theme } from "@streamplace/components"; 2 import { Player } from "components/mobile/player"; 3 import { PlayerProps } from "components/player/props"; 4 import { FullscreenProvider } from "contexts/FullscreenContext"; 5 + import useTitle from "hooks/useTitle"; 6 import { isWeb } from "tamagui"; 7 import { queryToProps } from "./util"; 8 9 export default function MobileStream({ route }) { 10 const { user, protocol, url } = route.params; 11 let extraProps: Partial<PlayerProps> = {}; 12 if (isWeb) { 13 extraProps = queryToProps(new URLSearchParams(window.location.search)); ··· 17 src = url; 18 } 19 20 + useTitle(user); 21 22 return ( 23 <theme.ThemeProvider>
+2
js/app/src/screens/stream.tsx
··· 1 import Livestream from "components/livestream/livestream"; 2 import { PlayerProps } from "components/player/props"; 3 import { FullscreenProvider } from "contexts/FullscreenContext"; 4 import { isWeb } from "tamagui"; 5 import { queryToProps } from "./util"; 6 ··· 14 if (user === "stream") { 15 src = url; 16 } 17 return ( 18 <FullscreenProvider> 19 <Livestream src={src} {...extraProps} />
··· 1 import Livestream from "components/livestream/livestream"; 2 import { PlayerProps } from "components/player/props"; 3 import { FullscreenProvider } from "contexts/FullscreenContext"; 4 + import useTitle from "hooks/useTitle"; 5 import { isWeb } from "tamagui"; 6 import { queryToProps } from "./util"; 7 ··· 15 if (user === "stream") { 16 src = url; 17 } 18 + useTitle(user); 19 return ( 20 <FullscreenProvider> 21 <Livestream src={src} {...extraProps} />