content.tsx 2.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  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. import { IS_PLATFORM } from '@/lib/constants'
  10. const ContentFile = ({ connectionStringPooler }: ContentFileProps) => {
  11. return (
  12. <ConnectTabs>
  13. <ConnectTabTriggers>
  14. <ConnectTabTrigger value=".env.local" />
  15. <ConnectTabTrigger value="prisma/schema.prisma" />
  16. </ConnectTabTriggers>
  17. <ConnectTabContent value=".env.local">
  18. <SimpleCodeBlock className="bash" parentClassName="min-h-72">
  19. {connectionStringPooler.ipv4SupportedForDedicatedPooler &&
  20. connectionStringPooler.transactionDedicated
  21. ? `
  22. # Connect to Briven via connection pooling.
  23. DATABASE_URL="${connectionStringPooler.transactionDedicated}?pgbouncer=true"
  24. # Direct connection to the database. Used for migrations.
  25. DIRECT_URL="${connectionStringPooler.sessionDedicated}"
  26. `
  27. : connectionStringPooler.transactionDedicated &&
  28. !connectionStringPooler.ipv4SupportedForDedicatedPooler
  29. ? `
  30. # Connect to Briven via Shared Connection Pooler
  31. DATABASE_URL="${connectionStringPooler.transactionShared}?pgbouncer=true"
  32. # Direct connection to the database through Shared Pooler (supports IPv4/IPv6). Used for migrations.
  33. DIRECT_URL="${connectionStringPooler.sessionShared}"
  34. # If your network supports IPv6 or you purchased IPv4 addon, use dedicated pooler
  35. # DATABASE_URL="${connectionStringPooler.transactionDedicated}?pgbouncer=true"
  36. # DIRECT_URL="${connectionStringPooler.sessionDedicated}"
  37. `
  38. : `
  39. # Connect to Briven ${IS_PLATFORM ? 'via connection pooling' : ''}
  40. DATABASE_URL="${IS_PLATFORM ? `${connectionStringPooler.transactionShared}?pgbouncer=true` : connectionStringPooler.direct}"
  41. # Direct connection to the database. Used for migrations
  42. DIRECT_URL="${IS_PLATFORM ? connectionStringPooler.sessionShared : connectionStringPooler.direct}"
  43. `}
  44. </SimpleCodeBlock>
  45. </ConnectTabContent>
  46. <ConnectTabContent value="prisma/schema.prisma">
  47. <SimpleCodeBlock className="bash" parentClassName="min-h-72">
  48. {`
  49. generator client {
  50. provider = "prisma-client-js"
  51. }
  52. datasource db {
  53. provider = "postgresql"
  54. url = env("DATABASE_URL")
  55. directUrl = env("DIRECT_URL")
  56. }
  57. `}
  58. </SimpleCodeBlock>
  59. </ConnectTabContent>
  60. </ConnectTabs>
  61. )
  62. }
  63. export default ContentFile