summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorFrank <[email protected]>2025-10-15 01:07:57 -0400
committerFrank <[email protected]>2025-10-15 01:07:57 -0400
commite8751d976e38d0cbfeef1bb05c6014f9591f3973 (patch)
treeb1f2ff230fd3651f868e7fbb13a82db705f6ab93
parent43c9702aa760e34cd434ba04ae6343632ca1b7ac (diff)
downloadopencode-e8751d976e38d0cbfeef1bb05c6014f9591f3973.tar.gz
opencode-e8751d976e38d0cbfeef1bb05c6014f9591f3973.zip
wip: zen
-rw-r--r--packages/console/app/src/component/header.tsx6
-rw-r--r--packages/console/app/src/routes/workspace/common.tsx12
-rw-r--r--packages/console/app/src/routes/zen/index.tsx5
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"