import { SimpleCodeBlock } from 'ui-patterns/SimpleCodeBlock' import type { ContentFileProps } from '@/components/interfaces/Connect/Connect.types' import { ConnectTabContent, ConnectTabs, ConnectTabTrigger, ConnectTabTriggers, } from '@/components/interfaces/Connect/ConnectTabs' const ContentFile = ({ projectKeys }: ContentFileProps) => { return ( {` EXPO_PUBLIC_BRIVEN_URL=${projectKeys.apiUrl ?? 'your-project-url'} EXPO_PUBLIC_BRIVEN_KEY=${projectKeys.publishableKey ?? ''} `} {` import 'react-native-url-polyfill/auto' import AsyncStorage from '@react-native-async-storage/async-storage' import { createClient, processLock } from '@supabase/supabase-js' export const briven = createClient( process.env.EXPO_PUBLIC_BRIVEN_URL!, process.env.EXPO_PUBLIC_BRIVEN_KEY!, { auth: { storage: AsyncStorage, autoRefreshToken: true, persistSession: true, detectSessionInUrl: false, lock: processLock, }, }) `} {` import React, { useState, useEffect } from 'react'; import { View, Text, FlatList } from 'react-native'; import { briven } from '../utils/briven'; export default function App() { const [todos, setTodos] = useState([]); useEffect(() => { const getTodos = async () => { try { const { data: todos, error } = await briven.from('todos').select(); if (error) { console.error('Error fetching todos:', error.message); return; } if (todos && todos.length > 0) { setTodos(todos); } } catch (error) { console.error('Error fetching todos:', error.message); } }; getTodos(); }, []); return ( Todo List item.id.toString()} renderItem={({ item }) => {item.title}} /> ); }; `} ) } export default ContentFile