mirror of
https://github.com/supabase/supabase.git
synced 2026-10-14 21:59:16 +03:00
76 lines
2.1 KiB
TypeScript
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
|