import { MultipleCodeBlock } from 'ui-patterns/MultipleCodeBlock' import type { StepContentProps } from '@/components/interfaces/ConnectSheet/Connect.types' const ContentFile = ({ projectKeys }: StepContentProps) => { const files = [ { name: '.env', language: 'bash', code: ` REACT_APP_SUPABASE_URL=${projectKeys.apiUrl ?? 'your-project-url'} REACT_APP_SUPABASE_KEY=${projectKeys.publishableKey ?? ''} `, }, { name: 'src/supabaseClient.tsx', language: 'ts', code: ` import { createClient } from '@supabase/supabase-js' const supabaseUrl = process.env.REACT_APP_SUPABASE_URL const supabaseAnonKey = process.env.REACT_APP_SUPABASE_KEY export const supabase = createClient(supabaseUrl, supabaseAnonKey) `, }, { name: 'src/App.tsx', language: 'ts', code: ` 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 { supabase } from './supabaseClient'; setupIonicReact(); export default function App() { const [todos, setTodos] = useState([]); useEffect(() => { getTodos(); }, []); const getTodos = async () => { try { const { data, error } = await supabase.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 ( <> Todos {todos.map((todo) => ( {todo.name} ))} ); } `, }, ] return } export default ContentFile