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

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