content.tsx 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  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="utils/briven.ts" />
  15. <ConnectTabTrigger value="App.tsx" />
  16. </ConnectTabTriggers>
  17. <ConnectTabContent value=".env">
  18. <SimpleCodeBlock className="bash" parentClassName="min-h-72">
  19. {[
  20. '',
  21. `VITE_BRIVEN_URL=${projectKeys.apiUrl ?? 'your-project-url'}`,
  22. projectKeys?.publishableKey
  23. ? `VITE_BRIVEN_PUBLISHABLE_KEY=${projectKeys.publishableKey}`
  24. : `VITE_BRIVEN_ANON_KEY=${projectKeys.anonKey ?? 'your-anon-key'}`,
  25. '',
  26. ].join('\n')}
  27. </SimpleCodeBlock>
  28. </ConnectTabContent>
  29. <ConnectTabContent value="utils/briven.ts">
  30. <SimpleCodeBlock className="ts" parentClassName="min-h-72">
  31. {`
  32. import { createClient } from '@supabase/supabase-js';
  33. const brivenUrl = import.meta.env.VITE_BRIVEN_URL;
  34. const brivenKey = import.meta.env.${projectKeys.publishableKey ? 'VITE_BRIVEN_PUBLISHABLE_KEY' : 'VITE_BRIVEN_ANON_KEY'};
  35. const briven = createClient(brivenUrl, brivenKey);
  36. export default briven
  37. `}
  38. </SimpleCodeBlock>
  39. </ConnectTabContent>
  40. <ConnectTabContent value="App.tsx">
  41. <SimpleCodeBlock className="tsx" parentClassName="min-h-72">
  42. {`
  43. import { useState, useEffect } from 'react'
  44. import { briven } from '../utils/briven'
  45. function Page() {
  46. const [todos, setTodos] = useState([])
  47. useEffect(() => {
  48. function getTodos() {
  49. const { data: todos } = await briven.from('todos').select()
  50. if (todos.length > 1) {
  51. setTodos(todos)
  52. }
  53. }
  54. getTodos()
  55. }, [])
  56. return (
  57. <div>
  58. {todos.map((todo) => (
  59. <li key={todo}>{todo}</li>
  60. ))}
  61. </div>
  62. )
  63. }
  64. export default Page
  65. `}
  66. </SimpleCodeBlock>
  67. </ConnectTabContent>
  68. </ConnectTabs>
  69. )
  70. }
  71. export default ContentFile