| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115 |
- 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" />
- <ConnectTabTrigger value="src/brivenClient.tsx" />
- <ConnectTabTrigger value="src/App.tsx" />
- </ConnectTabTriggers>
- <ConnectTabContent value=".env">
- <SimpleCodeBlock className="bash" parentClassName="min-h-72">
- {`
- REACT_APP_BRIVEN_URL=${projectKeys.apiUrl ?? 'your-project-url'}
- REACT_APP_BRIVEN_KEY=${projectKeys.publishableKey ?? '<prefer publishable key instead of anon key for mobile or desktop apps>'}
- `}
- </SimpleCodeBlock>
- </ConnectTabContent>
- <ConnectTabContent value="src/brivenClient.tsx">
- <SimpleCodeBlock className="ts" parentClassName="min-h-72">
- {`
- import { createClient } from '@supabase/supabase-js'
- const brivenUrl = process.env.REACT_APP_BRIVEN_URL
- const brivenKey = process.env.REACT_APP_BRIVEN_KEY
- export const briven = createClient(brivenUrl, brivenAnonKey)
- `}
- </SimpleCodeBlock>
- </ConnectTabContent>
- <ConnectTabContent value="src/App.tsx">
- <SimpleCodeBlock className="ts" parentClassName="min-h-72">
- {`
- import React, { useEffect, useState } from 'react';
- import { setupIonicReact, IonApp } from '@ionic/react';
- import {
- IonContent,
- IonHeader,
- IonTitle,
- IonToolbar,
- IonList,
- IonItem,
- } from '@ionic/react';
- /* Core CSS required for Ionic components to work properly */
- import '@ionic/react/css/core.css';
- /* Theme variables */
- import './theme/variables.css';
- import { briven } from './brivenClient';
- setupIonicReact();
- export default function App() {
- const [todos, setTodos] = useState([]);
- useEffect(() => {
- getTodos();
- }, []);
- const getTodos = async () => {
- try {
- const { data, error } = await briven.from('todos').select();
- if (error) {
- console.error('Error fetching todos:', error.message);
- return;
- }
- if (data) {
- setTodos(data);
- }
- } catch (error) {
- console.error('Error fetching todos:', error.message);
- }
- };
- return (
- <IonApp>
- <>
- <IonHeader>
- <IonToolbar>
- <IonTitle>Todos</IonTitle>
- </IonToolbar>
- </IonHeader>
- <IonContent>
- <IonList>
- {todos.map((todo) => (
- <IonItem key={todo.id}>{todo.title}</IonItem>
- ))}
- </IonList>
- </IonContent>
- </>
- </IonApp>
- );
- }
- `}
- </SimpleCodeBlock>
- </ConnectTabContent>
- </ConnectTabs>
- )
- }
- export default ContentFile
|