import type { JSX } from "solid-js" import { createMemo } from "solid-js" import { useNavigate } from "@solidjs/router" import { useGlobalSync } from "@/context/global-sync" import { useLayout } from "@/context/layout" import { useSDK } from "@/context/sdk" import { useServer } from "@/context/server" import { useSync } from "@/context/sync" import { base64Encode } from "@opencode-ai/core/util/encode" import { getFilename } from "@opencode-ai/core/util/path" import { Icon } from "@opencode-ai/ui/icon" import { Select } from "@opencode-ai/ui/select" import { WordmarkV2 } from "@opencode-ai/ui/v2/components/wordmark-v2.jsx" const MAIN_WORKTREE = "main" export function NewSessionDesignView(props: { worktree: string; children: JSX.Element }) { const globalSync = useGlobalSync() const layout = useLayout() const navigate = useNavigate() const sdk = useSDK() const server = useServer() const sync = useSync() const projectRoot = createMemo(() => sync.project?.worktree ?? sdk.directory) const projects = createMemo(() => { const roots = globalSync.data.project.map((project) => project.worktree) if (roots.includes(projectRoot())) return roots return [projectRoot(), ...roots] }) const branch = createMemo(() => sync.data.vcs?.branch ?? MAIN_WORKTREE) const openProject = (directory: string | undefined) => { if (!directory) return if (directory === projectRoot()) return layout.projects.open(directory) server.projects.touch(directory) navigate(`/${base64Encode(directory)}/session`) } return (
{props.children}
) }