From b3a21af940a0d1e415adeade9b1a4933bc9266a3 Mon Sep 17 00:00:00 2001
From: "Natalie B." <22222885+espeon@users.noreply.github.com>
Date: Mon, 23 Mar 2026 18:08:01 -0500
Subject: [PATCH] Add stage switching for AtMoCo
---
js/app/components/mobile/bottom-metadata.tsx | 43 ++++++++++++++++++++
1 file changed, 43 insertions(+)
diff --git a/js/app/components/mobile/bottom-metadata.tsx b/js/app/components/mobile/bottom-metadata.tsx
index ac2677cbb..924a47d29 100644
--- a/js/app/components/mobile/bottom-metadata.tsx
+++ b/js/app/components/mobile/bottom-metadata.tsx
@@ -12,8 +12,10 @@ import {
useDID,
useLivestreamInfo,
useLivestreamStore,
+ useTheme,
zero,
} from "@streamplace/components";
+import AQLink from "components/aqlink";
import FollowButton from "components/follow-button";
import { Image } from "expo-image";
import { ChevronLeft, ChevronRight } from "lucide-react-native";
@@ -21,6 +23,41 @@ import { Linking, Pressable, View } from "react-native";
import { KebabMenu } from "./desktop-ui/kebab";
const { gap, px, py, colors } = zero;
+const ATMOCO_STREAMS = [
+ { handle: "stream1.atmosphereconf.org", label: "Great Hall" },
+ { handle: "stream2.atmosphereconf.org", label: "Performance Theatre" },
+ { handle: "stream3.atmosphereconf.org", label: "Room 2301" },
+];
+
+function AtMoCoNav({ currentHandle }: { currentHandle: string }) {
+ const z = useTheme();
+ return (
+
+ Switch streams:
+ {ATMOCO_STREAMS.map((stream) => {
+ const isActive = currentHandle === stream.handle;
+ return (
+
+ {stream.label}
+
+ );
+ })}
+
+ );
+}
+
export function BottomMetadata({
setShowChat,
showChat,
@@ -152,6 +189,12 @@ export function BottomMetadata({
)}
)}
+
+ {/* Atmosphere Conference inter-stream navigation. TODO: remove after conf haha */}
+ {profile?.handle &&
+ ATMOCO_STREAMS.some((s) => s.handle === profile.handle) && (
+
+ )}
);
}
--
2.51.2