summaryrefslogtreecommitdiffhomepage
path: root/cloud/web/src/pages/components/context-api.tsx
diff options
context:
space:
mode:
authorFrank <[email protected]>2025-08-08 13:22:54 -0400
committerFrank <[email protected]>2025-08-08 13:24:32 -0400
commit183e0911b76025a1f2a82e979d9834fec2131d0e (patch)
tree9987c1753bd64d1ce1d174ab397f1a8c681f642c /cloud/web/src/pages/components/context-api.tsx
parentc7bb19ad0712469063eab35589aa5d3602b0c5b1 (diff)
downloadopencode-183e0911b76025a1f2a82e979d9834fec2131d0e.tar.gz
opencode-183e0911b76025a1f2a82e979d9834fec2131d0e.zip
wip: gateway
Diffstat (limited to 'cloud/web/src/pages/components/context-api.tsx')
-rw-r--r--cloud/web/src/pages/components/context-api.tsx24
1 files changed, 24 insertions, 0 deletions
diff --git a/cloud/web/src/pages/components/context-api.tsx b/cloud/web/src/pages/components/context-api.tsx
new file mode 100644
index 000000000..0a348f48f
--- /dev/null
+++ b/cloud/web/src/pages/components/context-api.tsx
@@ -0,0 +1,24 @@
+import { hc } from "hono/client"
+import { ApiType } from "@opencode/cloud-function/src/gateway"
+import { useWorkspace } from "./context-workspace"
+import { useOpenAuth } from "../../components/context-openauth"
+
+export function useApi() {
+ const workspace = useWorkspace()
+ const auth = useOpenAuth()
+ return hc<ApiType>(import.meta.env.VITE_API_URL, {
+ async fetch(...args: Parameters<typeof fetch>): Promise<Response> {
+ const [input, init] = args
+ const request = input instanceof Request ? input : new Request(input, init)
+ const headers = new Headers(request.headers)
+ headers.set("authorization", `Bearer ${await auth.access()}`)
+ headers.set("x-opencode-workspace", workspace.id)
+ return fetch(
+ new Request(request, {
+ ...init,
+ headers,
+ }),
+ )
+ },
+ })
+}