wip: cloud

This commit is contained in:
Dax Raad
2025-08-30 15:20:40 -04:00
parent dac821229e
commit c676f12306
3 changed files with 17 additions and 7 deletions

View File

@@ -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)
}

View File

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

View File

@@ -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