ContentFile() — supabase Function Reference
Architecture documentation for the ContentFile() function in content.tsx from the supabase codebase.
Entity Profile
Relationship Graph
Source Code
apps/studio/components/interfaces/Connect/content/remix/supabasejs/content.tsx lines 11–104
const ContentFile = ({ projectKeys }: ContentFileProps) => {
return (
<ConnectTabs>
<ConnectTabTriggers>
<ConnectTabTrigger value=".env" />
<ConnectTabTrigger value="app/utils/supabase.server.ts" />
<ConnectTabTrigger value="app/routes/_index.tsx" />
</ConnectTabTriggers>
<ConnectTabContent value=".env">
<SimpleCodeBlock className="bash" parentClassName="min-h-72">
{[
'',
`VITE_SUPABASE_URL=${projectKeys.apiUrl ?? 'your-project-url'}`,
projectKeys?.publishableKey
? `VITE_SUPABASE_PUBLISHABLE_DEFAULT_KEY=${projectKeys.publishableKey}`
: `VITE_SUPABASE_ANON_KEY=${projectKeys.anonKey ?? 'your-anon-key'}`,
'',
].join('\n')}
</SimpleCodeBlock>
</ConnectTabContent>
<ConnectTabContent value="app/utils/supabase.server.ts">
<SimpleCodeBlock className="ts" parentClassName="min-h-72">
{`
import {
createServerClient,
parseCookieHeader,
serializeCookieHeader,
} from "@supabase/ssr";
export function createClient(request: Request) {
const headers = new Headers();
const supabase = createServerClient(
process.env.VITE_SUPABASE_URL!,
process.env.VITE_${projectKeys.publishableKey ? 'SUPABASE_PUBLISHABLE_DEFAULT_KEY' : 'SUPABASE_ANON_KEY'};,
{
cookies: {
getAll() {
return parseCookieHeader(request.headers.get("Cookie") ?? "") as {
name: string;
value: string;
}[];
},
setAll(cookiesToSet) {
cookiesToSet.forEach(({ name, value, options }) =>
headers.append(
"Set-Cookie",
serializeCookieHeader(name, value, options)
)
);
},
},
}
);
return { supabase, headers };
}
`}
</SimpleCodeBlock>
</ConnectTabContent>
<ConnectTabContent value="app/routes/_index.tsx">
<SimpleCodeBlock className="tsx" parentClassName="min-h-72">
{`
import type { Route } from "./+types/home";
import { createClient } from "~/utils/supabase.server";
export async function loader({ request }: Route.LoaderArgs) {
const { supabase } = createClient(request);
const { data: todos } = await supabase.from("todos").select();
return { todos };
}
export default function Home({ loaderData }: Route.ComponentProps) {
return (
<>
<ul>
{loaderData.todos?.map((todo) => (
<li key={todo.id}>{todo.name}</li>
))}
</ul>
</>
);
}
`}
</SimpleCodeBlock>
</ConnectTabContent>
</ConnectTabs>
)
}
Domain
Subdomains
Source
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free