diff options
| author | Frank <[email protected]> | 2025-10-15 01:07:57 -0400 |
|---|---|---|
| committer | Frank <[email protected]> | 2025-10-15 01:07:57 -0400 |
| commit | e8751d976e38d0cbfeef1bb05c6014f9591f3973 (patch) | |
| tree | b1f2ff230fd3651f868e7fbb13a82db705f6ab93 | |
| parent | 43c9702aa760e34cd434ba04ae6343632ca1b7ac (diff) | |
| download | opencode-e8751d976e38d0cbfeef1bb05c6014f9591f3973.tar.gz opencode-e8751d976e38d0cbfeef1bb05c6014f9591f3973.zip | |
wip: zen
| -rw-r--r-- | packages/console/app/src/component/header.tsx | 6 | ||||
| -rw-r--r-- | packages/console/app/src/routes/workspace/common.tsx | 12 | ||||
| -rw-r--r-- | packages/console/app/src/routes/zen/index.tsx | 5 |
3 files changed, 20 insertions, 3 deletions
diff --git a/packages/console/app/src/component/header.tsx b/packages/console/app/src/component/header.tsx index 29b35bfa4..d6b3e2a43 100644 --- a/packages/console/app/src/component/header.tsx +++ b/packages/console/app/src/component/header.tsx @@ -4,9 +4,11 @@ import { A, createAsync } from "@solidjs/router" import { createMemo, Match, Show, Switch } from "solid-js" import { createStore } from "solid-js/store" import { github } from "~/lib/github" +import { queryIsLoggedIn } from "~/routes/workspace/common" export function Header(props: { zen?: boolean }) { const githubData = createAsync(() => github()) + const isLoggedIn = createAsync(() => queryIsLoggedIn()) const starCount = createMemo(() => githubData()?.stars ? new Intl.NumberFormat("en-US", { @@ -39,7 +41,7 @@ export function Header(props: { zen?: boolean }) { <li> <Switch> <Match when={props.zen}> - <a href="/auth">Login</a> + <a href="/auth">{isLoggedIn() ? "Workspace" : "Login"}</a> </Match> <Match when={!props.zen}> <A href="/zen">Zen</A> @@ -110,7 +112,7 @@ export function Header(props: { zen?: boolean }) { <li> <Switch> <Match when={props.zen}> - <a href="/auth">Login</a> + <a href="/auth">{isLoggedIn() ? "Workspace" : "Login"}</a> </Match> <Match when={!props.zen}> <A href="/zen">Zen</A> diff --git a/packages/console/app/src/routes/workspace/common.tsx b/packages/console/app/src/routes/workspace/common.tsx index fef1b3cd9..625693223 100644 --- a/packages/console/app/src/routes/workspace/common.tsx +++ b/packages/console/app/src/routes/workspace/common.tsx @@ -30,6 +30,18 @@ export function formatDateUTC(date: Date) { return date.toLocaleDateString("en-US", options) } +export const queryIsLoggedIn = query(async () => { + "use server" + return withActor(() => { + try { + Actor.assert("account") + return true + } catch { + return false + } + }) +}, "isLoggedIn.get") + export const querySessionInfo = query(async (workspaceID: string) => { "use server" return withActor(() => { diff --git a/packages/console/app/src/routes/zen/index.tsx b/packages/console/app/src/routes/zen/index.tsx index 05c523235..080070d4f 100644 --- a/packages/console/app/src/routes/zen/index.tsx +++ b/packages/console/app/src/routes/zen/index.tsx @@ -1,4 +1,5 @@ import "./index.css" +import { createAsync } from "@solidjs/router" import { Title, Meta, Link } from "@solidjs/meta" import { HttpHeader } from "@solidjs/start" import zenLogoLight from "../../asset/zen-ornate-light.svg" @@ -15,8 +16,10 @@ import { Faq } from "~/component/faq" import { Legal } from "~/component/legal" import { Footer } from "~/component/footer" import { Header } from "~/component/header" +import { queryIsLoggedIn } from "~/routes/workspace/common" export default function Home() { + const isLoggedIn = createAsync(() => queryIsLoggedIn()) return ( <main data-page="zen"> <HttpHeader name="Cache-Control" value="public, max-age=1, s-maxage=3600, stale-while-revalidate=86400" /> @@ -102,7 +105,7 @@ export default function Home() { </div> </div> <a href="/auth"> - <span>Get started with Zen </span> + <span>{isLoggedIn() ? "Go to workspace " : "Get started with Zen "}</span> <svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M6.5 12L17 12M13 16.5L17.5 12L13 7.5" |
