import { api } from "@kevisual/convex"; import { ConvexClient, AuthTokenFetcher, ConvexHttpClient } from "convex/browser"; const url = localStorage.getItem("CONVEX_URL") || 'https://convex.kevisual.cn' const client = new ConvexClient(url!); const httpClient = new ConvexHttpClient(url!); export const initConvex = async () => { const getToken = async () => { const token = localStorage.getItem("token"); if (!token) { return null; } const res = await httpClient.action(api.token.create, { token: token! }); if (res.code === 200) { return res.data.accessToken; } return null; } const authTokenFetcher: AuthTokenFetcher = async ({ forceRefreshToken }: { forceRefreshToken: boolean }) => { console.log("AuthTokenFetcher called, forceRefreshToken:", forceRefreshToken); if (forceRefreshToken) { const token = await getToken(); // console.log("fetch got token:", token); return token; } return null; } client.setAuth(authTokenFetcher, (isAuthenticated) => { console.log("Auth isAuthenticated:", isAuthenticated); }); } export { client, httpClient };