Dax Raad 5 месяцев назад
Родитель
Сommit
c676f12306

+ 9 - 0
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)
+}

+ 1 - 1
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 () => {

+ 7 - 6
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