import { useNavigation } from "@react-navigation/native";
import {
KeepAwake,
LivestreamProvider,
PlayerProvider,
Text,
useLivestreamStore,
} from "@streamplace/components";
import { Player } from "components/mobile/player";
import { PlayerProps } from "components/player/props";
import { FullscreenProvider } from "contexts/FullscreenContext";
import useTitle from "hooks/useTitle";
import { Platform, View } from "react-native";
import { queryToProps } from "./util";
const isWeb = Platform.OS === "web";
function StreamError({ message }: { message: string }) {
return (
{message}
);
}
function MobileStreamInner({
user,
src,
extraProps,
onTeleport,
}: {
user: string;
src: string;
extraProps: Partial;
onTeleport?: (targetHandle: string, targetDID: string) => void;
}) {
const problems = useLivestreamStore((x) => x.problems);
const userNotFoundError = problems.find((p) => p.code === "user_not_found");
useTitle(user);
if (userNotFoundError) {
return ;
}
return (
<>
>
);
}
export default function MobileStream({ route }) {
const { user, protocol, url } = route?.params ?? {};
let navi = useNavigation();
let extraProps: Partial = {};
if (isWeb) {
extraProps = queryToProps(new URLSearchParams(window.location.search));
}
let src = user;
if (user === "stream") {
src = url;
}
const handleTeleport = (targetHandle: string, targetDID?: string) => {
if (!navi || (!targetHandle && !targetDID)) {
console.error("Navigation or target info missing for teleport");
return;
}
navi.navigate("Stream", {
user: targetHandle,
});
};
return (
);
}