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

83 lines
2.5 KiB
TypeScript

import type { ContentFileProps } from 'components/interfaces/Connect/Connect.types'
import {
ConnectTabs,
ConnectTabTriggers,
ConnectTabTrigger,
ConnectTabContent,
} from 'components/interfaces/Connect/ConnectTabs'
import { SimpleCodeBlock } from 'ui'
const ContentFile = ({ projectKeys }: ContentFileProps) => {
return (
<ConnectTabs>
<ConnectTabTriggers>
<ConnectTabTrigger value=".env.local" />
<ConnectTabTrigger value="src/lib/supabaseClient.js" />
<ConnectTabTrigger value="src/routes/+page.server.js" />
<ConnectTabTrigger value="src/routes/+page.svelte" />
</ConnectTabTriggers>
<ConnectTabContent value=".env.local">
<SimpleCodeBlock className="bash" parentClassName="min-h-72">
{[
'',
`PUBLIC_SUPABASE_URL=${projectKeys.apiUrl ?? 'your-project-url'}`,
projectKeys?.publishableKey
? `PUBLIC_SUPABASE_PUBLISHABLE_DEFAULT_KEY=${projectKeys.publishableKey}`
: `PUBLIC_SUPABASE_ANON_KEY=${projectKeys.anonKey ?? 'your-anon-key'}`,
'',
].join('\n')}
</SimpleCodeBlock>
</ConnectTabContent>
<ConnectTabContent value="src/lib/supabaseClient.js">
<SimpleCodeBlock className="js" parentClassName="min-h-72">
{`
import { createClient } from "@supabase/supabase-js";
import { PUBLIC_SUPABASE_URL, ${projectKeys.publishableKey ? 'PUBLIC_SUPABASE_PUBLISHABLE_DEFAULT_KEY' : 'PUBLIC_SUPABASE_ANON_KEY'} } from "$env/static/public"
const supabaseUrl = PUBLIC_SUPABASE_URL;
const supabaseKey = ${projectKeys.publishableKey ? 'PUBLIC_SUPABASE_PUBLISHABLE_DEFAULT_KEY' : 'PUBLIC_SUPABASE_ANON_KEY'};
export const supabase = createClient(supabaseUrl, supabaseKey);
`}
</SimpleCodeBlock>
</ConnectTabContent>
<ConnectTabContent value="src/routes/+page.server.js">
<SimpleCodeBlock className="js" parentClassName="min-h-72">
{`
import { supabase } from "$lib/supabaseClient";
export async function load() {
const { data } = await supabase.from("countries").select();
return {
countries: data ?? [],
};
}
`}
</SimpleCodeBlock>
</ConnectTabContent>
<ConnectTabContent value="src/routes/+page.svelte">
<SimpleCodeBlock className="html" parentClassName="min-h-72">
{`
<script>
export let data;
</script>
<ul>
{#each data.countries as country}
<li>{country.name}</li>
{/each}
</ul>
`}
</SimpleCodeBlock>
</ConnectTabContent>
</ConnectTabs>
)
}
export default ContentFile