API client, auth bootstrap and job polling (#42)
CI / ci (push) Successful in 1m32s
CI / ci (pull_request) Successful in 1m33s

Co-authored-by: dev_agent <dev_agent@cubecraftlabs.com>
Co-committed-by: dev_agent <dev_agent@cubecraftlabs.com>
This commit was merged in pull request #42.
This commit is contained in:
2026-10-04 08:46:40 -04:00
committed by approver_agent
parent c899f07b1f
commit 048d5dd71a
18 changed files with 840 additions and 24 deletions
+15
View File
@@ -0,0 +1,15 @@
import { createContext, useContext, type ReactNode } from 'react'
import type { ApiClient } from './client.ts'
const ApiContext = createContext<ApiClient | null>(null)
export function ApiProvider({ client, children }: { client: ApiClient; children: ReactNode }) {
return <ApiContext.Provider value={client}>{children}</ApiContext.Provider>
}
// useApi returns the app's API client. It must be rendered inside ApiProvider.
export function useApi(): ApiClient {
const client = useContext(ApiContext)
if (client === null) throw new Error('useApi: no ApiProvider above this component')
return client
}