tangled
alpha
login
or
join now
stream.place
/
streamplace
Live video on the AT Protocol
74
fork
atom
overview
issues
1
pulls
pipelines
app: add <title> to streams
Eli Mallon
7 months ago
ba6852fa
1b9ec962
+15
-3
3 changed files
expand all
collapse all
unified
split
js
app
hooks
useTitle.tsx
src
screens
mobile-stream.tsx
stream.tsx
+11
js/app/hooks/useTitle.tsx
···
0
0
0
0
0
0
0
0
0
0
0
···
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";
0
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>
···
0
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;
0
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";
0
4
import { isWeb } from "tamagui";
5
import { queryToProps } from "./util";
6
···
14
if (user === "stream") {
15
src = url;
16
}
0
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} />