content.tsx 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  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" />
  14. <ConnectTabTrigger value="src/utils/briven.ts" />
  15. <ConnectTabTrigger value="src/routes/index.tsx" />
  16. </ConnectTabTriggers>
  17. <ConnectTabContent value=".env">
  18. <SimpleCodeBlock className="bash" parentClassName="min-h-72">
  19. {`
  20. VITE_BRIVEN_URL=${projectKeys.apiUrl ?? 'your-project-url'}
  21. VITE_BRIVEN_KEY=${projectKeys.publishableKey ?? projectKeys.anonKey ?? 'your-anon-key'}
  22. `}
  23. </SimpleCodeBlock>
  24. </ConnectTabContent>
  25. <ConnectTabContent value="src/utils/briven.ts">
  26. <SimpleCodeBlock className="ts" parentClassName="min-h-72">
  27. {`
  28. import { createClient } from "@supabase/supabase-js";
  29. export const briven = createClient(
  30. import.meta.env.VITE_BRIVEN_URL,
  31. import.meta.env.VITE_BRIVEN_KEY
  32. );
  33. `}
  34. </SimpleCodeBlock>
  35. </ConnectTabContent>
  36. <ConnectTabContent value="src/routes/index.tsx">
  37. <SimpleCodeBlock className="tsx" parentClassName="min-h-72">
  38. {`
  39. import { createFileRoute } from '@tanstack/react-router'
  40. import { briven } from '../utils/briven'
  41. export const Route = createFileRoute('/')({
  42. loader: async () => {
  43. const { data: todos } = await briven.from('todos').select()
  44. return { todos }
  45. },
  46. component: Home,
  47. })
  48. function Home() {
  49. const { todos } = Route.useLoaderData()
  50. return (
  51. <ul>
  52. {todos?.map((todo) => (
  53. <li key={todo.id}>{todo.name}</li>
  54. ))}
  55. </ul>
  56. )
  57. }
  58. `}
  59. </SimpleCodeBlock>
  60. </ConnectTabContent>
  61. </ConnectTabs>
  62. )
  63. }
  64. export default ContentFile