| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102 |
- 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 (
- <ConnectTabs>
- <ConnectTabTriggers>
- <ConnectTabTrigger value=".env.local" />
- <ConnectTabTrigger value="utils/briven.ts" />
- <ConnectTabTrigger value="App.tsx" />
- </ConnectTabTriggers>
- <ConnectTabContent value=".env.local">
- <SimpleCodeBlock className="bash" parentClassName="min-h-72">
- {`
- EXPO_PUBLIC_BRIVEN_URL=${projectKeys.apiUrl ?? 'your-project-url'}
- EXPO_PUBLIC_BRIVEN_KEY=${projectKeys.publishableKey ?? '<prefer publishable key instead of anon key for mobile and desktop apps>'}
- `}
- </SimpleCodeBlock>
- </ConnectTabContent>
- <ConnectTabContent value="utils/briven.ts">
- <SimpleCodeBlock className="ts" parentClassName="min-h-72">
- {`
- 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,
- },
- })
- `}
- </SimpleCodeBlock>
- </ConnectTabContent>
- <ConnectTabContent value="App.tsx">
- <SimpleCodeBlock className="tsx" parentClassName="min-h-72">
- {`
- 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 (
- <View style={{ flex: 1, justifyContent: 'center', alignItems: 'center' }}>
- <Text>Todo List</Text>
- <FlatList
- data={todos}
- keyExtractor={(item) => item.id.toString()}
- renderItem={({ item }) => <Text key={item.id}>{item.title}</Text>}
- />
- </View>
- );
- };
- `}
- </SimpleCodeBlock>
- </ConnectTabContent>
- </ConnectTabs>
- )
- }
- export default ContentFile
|