2024-11-09 14:37:09 +00:00

49 lines
1.4 KiB
TypeScript

import React from "react";
import InteractiveSession from "@/components/containers/interactive-session";
import PagerView from "@/components/ui/pager-view";
import { useTermSession } from "@/stores/terminal-sessions";
import { Button, useMedia } from "tamagui";
import SessionTabs from "./components/session-tabs";
import HostsList from "../hosts/components/hosts-list";
import Drawer from "expo-router/drawer";
import { router } from "expo-router";
import Icons from "@/components/ui/icons";
const TerminalPage = () => {
const { sessions, curSession, setSession } = useTermSession();
const session = sessions[curSession];
const media = useMedia();
return (
<>
<Drawer.Screen
options={{
headerTitle: session?.label || "Terminal",
headerRight: () => (
<Button
bg="$colorTransparent"
icon={<Icons name="view-list" size={24} />}
onPress={() => router.push("/terminal/sessions")}
/>
),
}}
/>
{sessions.length > 0 && media.gtSm ? <SessionTabs /> : null}
<PagerView
style={{ flex: 1 }}
page={curSession}
onChangePage={setSession}
EmptyComponent={() => <HostsList allowEdit={false} />}
>
{sessions.map((session) => (
<InteractiveSession key={session.id} {...session} />
))}
</PagerView>
</>
);
};
export default TerminalPage;