import { useContext, useState } from "react"; import Dropdown from "@moduletrace/twui/elements/Dropdown"; import Paper from "@moduletrace/twui/elements/Paper"; import Button from "@moduletrace/twui/layout/Button"; import Span from "@moduletrace/twui/layout/Span"; import Stack from "@moduletrace/twui/layout/Stack"; import { ChevronDown, Monitor } from "lucide-react"; import type { BotWithLastMessage } from "@/src/types"; import { BotComputersContext } from "../(data)/bot-computers-context"; import BotComputerOption from "./bot-computer-option"; type Props = { bot: BotWithLastMessage; }; /** * The header's computer button, beside the model button: shows the * computer the bot is on and, with more than one, switches it. */ export default function BotComputerSelect({ bot }: Props) { const { computers, switching_id, error, switchComputer } = useContext(BotComputersContext); const [open, setOpen] = useState(false); const current = computers[0]; if (!current?.id) return null; const name = bot.name || "This bot"; const can_switch = computers.length > 1; const target = ( ); if (!can_switch) { return {target}; } return ( {computers.map((computer, index) => ( { setOpen(false); await switchComputer({ computer_id: computer.id || 0 }); }} /> ))} {error ? ( {error} ) : null} ); }