content.tsx 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117
  1. import { SimpleCodeBlock } from 'ui-patterns/SimpleCodeBlock'
  2. import type { ContentFileProps } from '@/components/interfaces/Connect/Connect.types'
  3. import {
  4. ConnectTabContent,
  5. ConnectTabs,
  6. ConnectTabTrigger,
  7. ConnectTabTriggers,
  8. } from '@/components/interfaces/Connect/ConnectTabs'
  9. const ContentFile = ({ projectKeys }: ContentFileProps) => {
  10. return (
  11. <ConnectTabs>
  12. <ConnectTabTriggers>
  13. <ConnectTabTrigger value=".env.local" />
  14. <ConnectTabTrigger value="src/utility/brivenClient.ts" />
  15. <ConnectTabTrigger value="src/App.tsx" />
  16. </ConnectTabTriggers>
  17. <ConnectTabContent value=".env.local">
  18. <SimpleCodeBlock className="bash" parentClassName="min-h-72">
  19. {[
  20. '',
  21. `BRIVEN_URL=${projectKeys.apiUrl ?? 'your-project-url'}`,
  22. `BRIVEN_KEY=${projectKeys?.publishableKey ?? projectKeys?.anonKey ?? 'your-anon-key'}`,
  23. '',
  24. ].join('\n')}
  25. </SimpleCodeBlock>
  26. </ConnectTabContent>
  27. <ConnectTabContent value="src/utility/brivenClient.ts">
  28. <SimpleCodeBlock className="ts" parentClassName="min-h-72">
  29. {`
  30. import { createClient } from "@refinedev/briven";
  31. const BRIVEN_URL = process.env.BRIVEN_URL;
  32. const BRIVEN_KEY = process.env.BRIVEN_KEY;
  33. export const brivenClient = createClient(BRIVEN_URL, BRIVEN_KEY, {
  34. db: {
  35. schema: "public",
  36. },
  37. auth: {
  38. persistSession: true,
  39. },
  40. });
  41. `}
  42. </SimpleCodeBlock>
  43. </ConnectTabContent>
  44. <ConnectTabContent value="src/App.tsx">
  45. <SimpleCodeBlock className="tsx" parentClassName="min-h-72">
  46. {`
  47. import { Refine } from "@refinedev/core";
  48. import { RefineKbar, RefineKbarProvider } from "@refinedev/kbar";
  49. import routerProvider, {
  50. DocumentTitleHandler,
  51. NavigateToResource,
  52. UnsavedChangesNotifier,
  53. } from "@refinedev/react-router";
  54. import { dataProvider, liveProvider } from "@refinedev/briven";
  55. import { BrowserRouter, Route, Routes } from "react-router-dom";
  56. import "./App.css";
  57. import authProvider from "./authProvider";
  58. import { brivenClient } from "./utility";
  59. import { CountriesCreate, CountriesEdit, CountriesList, CountriesShow } from "./pages/countries";
  60. function App() {
  61. return (
  62. <BrowserRouter>
  63. <RefineKbarProvider>
  64. <Refine
  65. dataProvider={dataProvider(brivenClient)}
  66. liveProvider={liveProvider(brivenClient)}
  67. authProvider={authProvider}
  68. routerProvider={routerProvider}
  69. options={{
  70. syncWithLocation: true,
  71. warnWhenUnsavedChanges: true,
  72. }}
  73. resources={[{
  74. name: "countries",
  75. list: "/countries",
  76. create: "/countries/create",
  77. edit: "/countries/edit/:id",
  78. show: "/countries/show/:id"
  79. }]}>
  80. <Routes>
  81. <Route index
  82. element={<NavigateToResource resource="countries" />}
  83. />
  84. <Route path="/countries">
  85. <Route index element={<CountriesList />} />
  86. <Route path="create" element={<CountriesCreate />} />
  87. <Route path="edit/:id" element={<CountriesEdit />} />
  88. <Route path="show/:id" element={<CountriesShow />} />
  89. </Route>
  90. </Routes>
  91. <RefineKbar />
  92. <UnsavedChangesNotifier />
  93. <DocumentTitleHandler />
  94. </Refine>
  95. </RefineKbarProvider>
  96. </BrowserRouter>
  97. );
  98. }
  99. export default App;
  100. `}
  101. </SimpleCodeBlock>
  102. </ConnectTabContent>
  103. </ConnectTabs>
  104. )
  105. }
  106. export default ContentFile