mirror of
https://github.com/supabase/supabase.git
synced 2026-10-15 06:09:08 +03:00
118 lines
3.5 KiB
TypeScript
118 lines
3.5 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="src/utility/supabaseClient.ts" />
|
|
<ConnectTabTrigger value="src/App.tsx" />
|
|
</ConnectTabTriggers>
|
|
|
|
<ConnectTabContent value=".env.local">
|
|
<SimpleCodeBlock className="bash" parentClassName="min-h-72">
|
|
{[
|
|
'',
|
|
`SUPABASE_URL=${projectKeys.apiUrl ?? 'your-project-url'}`,
|
|
`SUPABASE_KEY=${projectKeys?.publishableKey ?? projectKeys?.anonKey ?? 'your-anon-key'}`,
|
|
'',
|
|
].join('\n')}
|
|
</SimpleCodeBlock>
|
|
</ConnectTabContent>
|
|
|
|
<ConnectTabContent value="src/utility/supabaseClient.ts">
|
|
<SimpleCodeBlock className="ts" parentClassName="min-h-72">
|
|
{`
|
|
import { createClient } from "@refinedev/supabase";
|
|
|
|
const SUPABASE_URL = process.env.SUPABASE_URL;
|
|
const SUPABASE_KEY = process.env.SUPABASE_KEY;
|
|
|
|
export const supabaseClient = createClient(SUPABASE_URL, SUPABASE_KEY, {
|
|
db: {
|
|
schema: "public",
|
|
},
|
|
auth: {
|
|
persistSession: true,
|
|
},
|
|
});
|
|
`}
|
|
</SimpleCodeBlock>
|
|
</ConnectTabContent>
|
|
|
|
<ConnectTabContent value="src/App.tsx">
|
|
<SimpleCodeBlock className="tsx" parentClassName="min-h-72">
|
|
{`
|
|
import { Refine, WelcomePage } from "@refinedev/core";
|
|
import { RefineKbar, RefineKbarProvider } from "@refinedev/kbar";
|
|
import routerBindings, {
|
|
DocumentTitleHandler,
|
|
NavigateToResource,
|
|
UnsavedChangesNotifier,
|
|
} from "@refinedev/react-router-v6";
|
|
import { dataProvider, liveProvider } from "@refinedev/supabase";
|
|
import { BrowserRouter, Route, Routes } from "react-router-dom";
|
|
|
|
import "./App.css";
|
|
import authProvider from "./authProvider";
|
|
import { supabaseClient } from "./utility";
|
|
import { CountriesCreate, CountriesEdit, CountriesList, CountriesShow } from "./pages/countries";
|
|
|
|
function App() {
|
|
return (
|
|
<BrowserRouter>
|
|
<RefineKbarProvider>
|
|
<Refine
|
|
dataProvider={dataProvider(supabaseClient)}
|
|
liveProvider={liveProvider(supabaseClient)}
|
|
authProvider={authProvider}
|
|
routerProvider={routerBindings}
|
|
options={{
|
|
syncWithLocation: true,
|
|
warnWhenUnsavedChanges: true,
|
|
}}
|
|
resources={[{
|
|
name: "countries",
|
|
list: "/countries",
|
|
create: "/countries/create",
|
|
edit: "/countries/edit/:id",
|
|
show: "/countries/show/:id"
|
|
}]}>
|
|
<Routes>
|
|
<Route index
|
|
element={<NavigateToResource resource="countries" />}
|
|
/>
|
|
<Route path="/countries">
|
|
<Route index element={<CountriesList />} />
|
|
<Route path="create" element={<CountriesCreate />} />
|
|
<Route path="edit/:id" element={<CountriesEdit />} />
|
|
<Route path="show/:id" element={<CountriesShow />} />
|
|
</Route>
|
|
</Routes>
|
|
<RefineKbar />
|
|
<UnsavedChangesNotifier />
|
|
<DocumentTitleHandler />
|
|
</Refine>
|
|
</RefineKbarProvider>
|
|
</BrowserRouter>
|
|
);
|
|
}
|
|
|
|
export default App;
|
|
`}
|
|
</SimpleCodeBlock>
|
|
</ConnectTabContent>
|
|
</ConnectTabs>
|
|
)
|
|
}
|
|
|
|
export default ContentFile
|