import { ClerkProvider, useAuth, ClerkLoaded } from "@clerk/clerk-expo";
import { ConvexProviderWithClerk } from "convex/react-clerk";
import { ConvexReactClient } from "convex/react";
const convex = new ConvexReactClient(
process.env.EXPO_PUBLIC_CONVEX_URL as string,
);
const tokenCache = {
async getToken(key: string) {
try {
const item = await SecureStore.getItemAsync(key);
if (item) {
console.log(`${key} was used 🔐 \n`); // this log gets printed infinitetly
} else {
console.log("No values stored under key: " + key);
}
return item;
} catch (error) {
console.error("SecureStore get item error: ", error);
await SecureStore.deleteItemAsync(key);
return null;
}
},
async saveToken(key: string, value: string) {
try {
return SecureStore.setItemAsync(key, value);
} catch (err) {
console.error("SecureStore set item error: ", err);
return;
}
},
};
export default function RootLayout() {
return (
<ClerkProvider
publishableKey={process.env.EXPO_PUBLIC_CLERK_PUBLISHABLE_KEY as string}
tokenCache={tokenCache}
>
<ClerkLoaded>
<ConvexProviderWithClerk client={convex} useAuth={useAuth}>
<Stack />
</ConvexProviderWithClerk>
</ClerkLoaded>
</ClerkProvider>
)
}
import { ClerkProvider, useAuth, ClerkLoaded } from "@clerk/clerk-expo";
import { ConvexProviderWithClerk } from "convex/react-clerk";
import { ConvexReactClient } from "convex/react";
const convex = new ConvexReactClient(
process.env.EXPO_PUBLIC_CONVEX_URL as string,
);
const tokenCache = {
async getToken(key: string) {
try {
const item = await SecureStore.getItemAsync(key);
if (item) {
console.log(`${key} was used 🔐 \n`); // this log gets printed infinitetly
} else {
console.log("No values stored under key: " + key);
}
return item;
} catch (error) {
console.error("SecureStore get item error: ", error);
await SecureStore.deleteItemAsync(key);
return null;
}
},
async saveToken(key: string, value: string) {
try {
return SecureStore.setItemAsync(key, value);
} catch (err) {
console.error("SecureStore set item error: ", err);
return;
}
},
};
export default function RootLayout() {
return (
<ClerkProvider
publishableKey={process.env.EXPO_PUBLIC_CLERK_PUBLISHABLE_KEY as string}
tokenCache={tokenCache}
>
<ClerkLoaded>
<ConvexProviderWithClerk client={convex} useAuth={useAuth}>
<Stack />
</ConvexProviderWithClerk>
</ClerkLoaded>
</ClerkProvider>
)
}