diff options
| author | Frank <[email protected]> | 2026-03-11 00:39:56 -0400 |
|---|---|---|
| committer | Frank <[email protected]> | 2026-03-11 18:09:40 -0400 |
| commit | ed3bb3ea8f18a3d2818eb17d77e2caad40eb1dee (patch) | |
| tree | c3916c942d7b24ee6a2d0930c76bfd422c24045c /packages/console/app/src/routes/workspace | |
| parent | fac23a1afc6cfbb7767eef05bf6ea018837697ad (diff) | |
| download | opencode-ed3bb3ea8f18a3d2818eb17d77e2caad40eb1dee.tar.gz opencode-ed3bb3ea8f18a3d2818eb17d77e2caad40eb1dee.zip | |
zen: add usage section
Diffstat (limited to 'packages/console/app/src/routes/workspace')
| -rw-r--r-- | packages/console/app/src/routes/workspace/[id].tsx | 6 | ||||
| -rw-r--r-- | packages/console/app/src/routes/workspace/[id]/index.tsx | 6 | ||||
| -rw-r--r-- | packages/console/app/src/routes/workspace/[id]/usage/graph-section.module.css (renamed from packages/console/app/src/routes/workspace/[id]/graph-section.module.css) | 0 | ||||
| -rw-r--r-- | packages/console/app/src/routes/workspace/[id]/usage/graph-section.tsx (renamed from packages/console/app/src/routes/workspace/[id]/graph-section.tsx) | 0 | ||||
| -rw-r--r-- | packages/console/app/src/routes/workspace/[id]/usage/index.tsx | 21 | ||||
| -rw-r--r-- | packages/console/app/src/routes/workspace/[id]/usage/usage-section.module.css (renamed from packages/console/app/src/routes/workspace/[id]/usage-section.module.css) | 0 | ||||
| -rw-r--r-- | packages/console/app/src/routes/workspace/[id]/usage/usage-section.tsx (renamed from packages/console/app/src/routes/workspace/[id]/usage-section.tsx) | 2 |
7 files changed, 28 insertions, 7 deletions
diff --git a/packages/console/app/src/routes/workspace/[id].tsx b/packages/console/app/src/routes/workspace/[id].tsx index fde074e5e..a36368fd0 100644 --- a/packages/console/app/src/routes/workspace/[id].tsx +++ b/packages/console/app/src/routes/workspace/[id].tsx @@ -19,6 +19,9 @@ export default function WorkspaceLayout(props: RouteSectionProps) { <A href={`/workspace/${params.id}`} end activeClass="active" data-nav-button> {i18n.t("workspace.nav.zen")} </A> + <A href={`/workspace/${params.id}/usage`} activeClass="active" data-nav-button> + {i18n.t("workspace.nav.usage")} + </A> <A href={`/workspace/${params.id}/keys`} activeClass="active" data-nav-button> {i18n.t("workspace.nav.apiKeys")} </A> @@ -41,6 +44,9 @@ export default function WorkspaceLayout(props: RouteSectionProps) { <A href={`/workspace/${params.id}`} end activeClass="active" data-nav-button> {i18n.t("workspace.nav.zen")} </A> + <A href={`/workspace/${params.id}/usage`} activeClass="active" data-nav-button> + {i18n.t("workspace.nav.usage")} + </A> <A href={`/workspace/${params.id}/keys`} activeClass="active" data-nav-button> {i18n.t("workspace.nav.apiKeys")} </A> diff --git a/packages/console/app/src/routes/workspace/[id]/index.tsx b/packages/console/app/src/routes/workspace/[id]/index.tsx index c91cfd2bc..ca3c2bc0c 100644 --- a/packages/console/app/src/routes/workspace/[id]/index.tsx +++ b/packages/console/app/src/routes/workspace/[id]/index.tsx @@ -2,10 +2,8 @@ import { Match, Show, Switch, createMemo } from "solid-js" import { createStore } from "solid-js/store" import { createAsync, useParams, useAction, useSubmission } from "@solidjs/router" import { NewUserSection } from "./new-user-section" -import { UsageSection } from "./usage-section" import { ModelSection } from "./model-section" import { ProviderSection } from "./provider-section" -import { GraphSection } from "./graph-section" import { IconLogo } from "~/component/icon" import { querySessionInfo, queryBillingInfo, createCheckoutUrl, formatBalance } from "../common" import { useI18n } from "~/context/i18n" @@ -73,14 +71,10 @@ export default function () { <div data-slot="sections"> <NewUserSection /> - <Show when={userInfo()?.isAdmin}> - <GraphSection /> - </Show> <ModelSection /> <Show when={userInfo()?.isAdmin}> <ProviderSection /> </Show> - <UsageSection /> </div> </div> ) diff --git a/packages/console/app/src/routes/workspace/[id]/graph-section.module.css b/packages/console/app/src/routes/workspace/[id]/usage/graph-section.module.css index 24b85be74..24b85be74 100644 --- a/packages/console/app/src/routes/workspace/[id]/graph-section.module.css +++ b/packages/console/app/src/routes/workspace/[id]/usage/graph-section.module.css diff --git a/packages/console/app/src/routes/workspace/[id]/graph-section.tsx b/packages/console/app/src/routes/workspace/[id]/usage/graph-section.tsx index bb4b4f4cf..bb4b4f4cf 100644 --- a/packages/console/app/src/routes/workspace/[id]/graph-section.tsx +++ b/packages/console/app/src/routes/workspace/[id]/usage/graph-section.tsx diff --git a/packages/console/app/src/routes/workspace/[id]/usage/index.tsx b/packages/console/app/src/routes/workspace/[id]/usage/index.tsx new file mode 100644 index 000000000..3a9c8db29 --- /dev/null +++ b/packages/console/app/src/routes/workspace/[id]/usage/index.tsx @@ -0,0 +1,21 @@ +import { Show } from "solid-js" +import { createAsync, useParams } from "@solidjs/router" +import { GraphSection } from "./graph-section" +import { UsageSection } from "./usage-section" +import { querySessionInfo } from "../../common" + +export default function () { + const params = useParams() + const user = createAsync(() => querySessionInfo(params.id!)) + + return ( + <div data-page="workspace-[id]"> + <div data-slot="sections"> + <Show when={user()?.isAdmin}> + <GraphSection /> + </Show> + <UsageSection /> + </div> + </div> + ) +} diff --git a/packages/console/app/src/routes/workspace/[id]/usage-section.module.css b/packages/console/app/src/routes/workspace/[id]/usage/usage-section.module.css index 00232de88..00232de88 100644 --- a/packages/console/app/src/routes/workspace/[id]/usage-section.module.css +++ b/packages/console/app/src/routes/workspace/[id]/usage/usage-section.module.css diff --git a/packages/console/app/src/routes/workspace/[id]/usage-section.tsx b/packages/console/app/src/routes/workspace/[id]/usage/usage-section.tsx index a20a5bf0d..2cf8ef850 100644 --- a/packages/console/app/src/routes/workspace/[id]/usage-section.tsx +++ b/packages/console/app/src/routes/workspace/[id]/usage/usage-section.tsx @@ -1,7 +1,7 @@ import { Billing } from "@opencode-ai/console-core/billing.js" import { createAsync, query, useParams } from "@solidjs/router" import { createMemo, For, Show, Switch, Match, createEffect, createSignal } from "solid-js" -import { formatDateUTC, formatDateForTable } from "../common" +import { formatDateUTC, formatDateForTable } from "../../common" import { withActor } from "~/context/auth.withActor" import { IconChevronLeft, IconChevronRight, IconBreakdown } from "~/component/icon" import styles from "./usage-section.module.css" |
