Files
supabase/apps/studio/components/interfaces/Connect/content/solidjs/supabasejs/content.tsx
T

76 lines
2.1 KiB
TypeScript

import type { ContentFileProps } from 'components/interfaces/Connect/Connect.types'
import {
ConnectTabs,
ConnectTabTrigger,
ConnectTabTriggers,
ConnectTabContent,
} from 'components/interfaces/Connect/ConnectTabs'
import { SimpleCodeBlock } from 'ui'
const ContentFile = ({ projectKeys }: ContentFileProps) => {
return (
<ConnectTabs>
<ConnectTabTriggers>
<ConnectTabTrigger value=".env.local" />
<ConnectTabTrigger value="utils/supabase.ts" />
<ConnectTabTrigger value="src/App.jsx" />
</ConnectTabTriggers>
<ConnectTabContent value=".env.local">
<SimpleCodeBlock className="bash" parentClassName="min-h-72">
{[
'',
`SUPABASE_URL=${projectKeys.apiUrl ?? 'your-project-url'}`,
projectKeys?.publishableKey
? `SUPABASE_PUBLISHABLE_DEFAULT_KEY=${projectKeys.publishableKey}`
: `SUPABASE_ANON_KEY=${projectKeys.anonKey ?? 'your-anon-key'}`,
'',
].join('\n')}
</SimpleCodeBlock>
</ConnectTabContent>
<ConnectTabContent value="utils/supabase.ts">
<SimpleCodeBlock className="ts" parentClassName="min-h-72">
{`
import { createClient } from "@supabase/supabase-js";
const supabaseUrl = process.env.SUPABASE_URL;
const supabaseKey = process.env.${projectKeys.publishableKey ? 'SUPABASE_PUBLISHABLE_DEFAULT_KEY' : 'SUPABASE_ANON_KEY'};
export const supabase = createClient(supabaseUrl!, supabaseKey!);
`}
</SimpleCodeBlock>
</ConnectTabContent>
<ConnectTabContent value="src/App.jsx">
<SimpleCodeBlock className="jsx" parentClassName="min-h-72">
{`
import { supabase } from '../utils/supabase'
import { createResource, For } from "solid-js";
async function getTodos() {
const { data: todos } = await supabase.from("todos").select();
return data;
}
function App() {
const [todos] = createResource(getTodos);
return (
<ul>
<For each={todos()}>{(country) => <li>{todo.name}</li>}</For>
</ul>
);
}
export default App;
`}
</SimpleCodeBlock>
</ConnectTabContent>
</ConnectTabs>
)
}
export default ContentFile