mirror of
https://github.com/aljazceru/opencode.git
synced 2025-12-29 13:44:19 +01:00
wip: cloud
This commit is contained in:
@@ -1,10 +1,12 @@
|
||||
import { Billing } from "@opencode/cloud-core/billing.js"
|
||||
import { Key } from "@opencode/cloud-core/key.js"
|
||||
import { action, createAsync, revalidate, query, useAction, useSubmission } from "@solidjs/router"
|
||||
import { action, createAsync, revalidate, query, useAction, useSubmission, json } from "@solidjs/router"
|
||||
import { createEffect, createSignal, For, onMount, Show } from "solid-js"
|
||||
import { getActor } from "~/context/auth"
|
||||
import { withActor } from "~/context/auth.withActor"
|
||||
import "./index.css"
|
||||
import { User } from "@opencode/cloud-core/user.js"
|
||||
import { Actor } from "@opencode/cloud-core/actor.js"
|
||||
|
||||
/////////////////////////////////////
|
||||
// Keys related queries and actions
|
||||
@@ -17,12 +19,18 @@ const listKeys = query(async () => {
|
||||
|
||||
const createKey = action(async (name: string) => {
|
||||
"use server"
|
||||
return withActor(() => Key.create({ name }))
|
||||
return json(
|
||||
withActor(() => Key.create({ name })),
|
||||
{ revalidate: "keys" },
|
||||
)
|
||||
}, "createKey")
|
||||
|
||||
const removeKey = action(async (id: string) => {
|
||||
"use server"
|
||||
return withActor(() => Key.remove({ id }))
|
||||
return json(
|
||||
withActor(() => Key.remove({ id })),
|
||||
{ revalidate: "keys" },
|
||||
)
|
||||
}, "removeKey")
|
||||
|
||||
/////////////////////////////////////
|
||||
@@ -32,10 +40,14 @@ const removeKey = action(async (id: string) => {
|
||||
const getBillingInfo = query(async () => {
|
||||
"use server"
|
||||
return withActor(async () => {
|
||||
const billing = await Billing.get()
|
||||
const payments = await Billing.payments()
|
||||
const usage = await Billing.usages()
|
||||
return { billing, payments, usage }
|
||||
const actor = Actor.assert("user")
|
||||
const [user, billing, payments, usage] = await Promise.all([
|
||||
User.fromID(actor.properties.userID),
|
||||
Billing.get(),
|
||||
Billing.payments(),
|
||||
Billing.usages(),
|
||||
])
|
||||
return { user, billing, payments, usage }
|
||||
})
|
||||
}, "billingInfo")
|
||||
|
||||
@@ -130,7 +142,7 @@ const dummyPaymentData = [
|
||||
},
|
||||
]
|
||||
|
||||
export default function() {
|
||||
export default function () {
|
||||
const actor = createAsync(() => getActor())
|
||||
onMount(() => {
|
||||
console.log("MOUNTED", actor())
|
||||
@@ -194,7 +206,6 @@ export default function() {
|
||||
|
||||
try {
|
||||
await createKeyAction(keyName().trim())
|
||||
revalidate("keys")
|
||||
setKeyName("")
|
||||
setShowCreateForm(false)
|
||||
} catch (error) {
|
||||
@@ -209,7 +220,6 @@ export default function() {
|
||||
|
||||
try {
|
||||
await removeKeyAction(keyId)
|
||||
revalidate("keys")
|
||||
} catch (error) {
|
||||
console.error("Failed to delete API key:", error)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user