summaryrefslogtreecommitdiffhomepage
path: root/cloud/app/src
diff options
context:
space:
mode:
authorDax Raad <[email protected]>2025-08-30 15:20:40 -0400
committerDax Raad <[email protected]>2025-08-30 15:20:51 -0400
commitc676f12306b58a87006e0f2114f5c7f2cb25a49d (patch)
tree326faf9f4209aa11011ea23261c03cdc70b72e54 /cloud/app/src
parentdac821229eba42d8680895db068c3ce1632d046c (diff)
downloadopencode-c676f12306b58a87006e0f2114f5c7f2cb25a49d.tar.gz
opencode-c676f12306b58a87006e0f2114f5c7f2cb25a49d.zip
wip: cloud
Diffstat (limited to 'cloud/app/src')
-rw-r--r--cloud/app/src/context/auth.withActor.ts9
-rw-r--r--cloud/app/src/routes/workspace.tsx2
-rw-r--r--cloud/app/src/routes/workspace/[id].tsx13
3 files changed, 17 insertions, 7 deletions
diff --git a/cloud/app/src/context/auth.withActor.ts b/cloud/app/src/context/auth.withActor.ts
index a61b728ef..ca38be89b 100644
--- a/cloud/app/src/context/auth.withActor.ts
+++ b/cloud/app/src/context/auth.withActor.ts
@@ -1,7 +1,16 @@
import { Actor } from "@opencode/cloud-core/actor.js"
import { getActor } from "./auth"
+import { query } from "@solidjs/router"
export async function withActor<T>(fn: () => T) {
const actor = await getActor()
return Actor.provide(actor.type, actor.properties, fn)
}
+
+export function actorQuery<T>(cb: () => T, name: string) {
+ "use server"
+ return query(async () => {
+ const actor = await getActor()
+ return withActor(cb)
+ }, name)
+}
diff --git a/cloud/app/src/routes/workspace.tsx b/cloud/app/src/routes/workspace.tsx
index 920276e8c..6876ae962 100644
--- a/cloud/app/src/routes/workspace.tsx
+++ b/cloud/app/src/routes/workspace.tsx
@@ -1,6 +1,6 @@
+import "./workspace.css"
import { useAuthSession } from "~/context/auth.session"
import { IconLogo } from "../component/icon"
-import "./workspace.css"
import { action, redirect, RouteSectionProps } from "@solidjs/router"
const logout = action(async () => {
diff --git a/cloud/app/src/routes/workspace/[id].tsx b/cloud/app/src/routes/workspace/[id].tsx
index 416128867..ccdfe42f5 100644
--- a/cloud/app/src/routes/workspace/[id].tsx
+++ b/cloud/app/src/routes/workspace/[id].tsx
@@ -13,26 +13,27 @@ import { Actor } from "@opencode/cloud-core/actor.js"
// Keys related queries and actions
/////////////////////////////////////
-const listKeys = query(async () => {
+
+const listKeys = query(() => {
"use server"
return withActor(() => Key.list())
-}, "keys")
+}, "key.list")
const createKey = action(async (name: string) => {
"use server"
return json(
withActor(() => Key.create({ name })),
- { revalidate: "keys" },
+ { revalidate: listKeys.key },
)
-}, "createKey")
+}, "key.create")
const removeKey = action(async (id: string) => {
"use server"
return json(
withActor(() => Key.remove({ id })),
- { revalidate: "keys" },
+ { revalidate: listKeys.key },
)
-}, "removeKey")
+}, "key.remove")
/////////////////////////////////////
// Billing related queries and actions