content.tsx 2.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  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/lib/brivenClient.js" />
  15. <ConnectTabTrigger value="src/routes/+page.server.js" />
  16. <ConnectTabTrigger value="src/routes/+page.svelte" />
  17. </ConnectTabTriggers>
  18. <ConnectTabContent value=".env.local">
  19. <SimpleCodeBlock className="bash" parentClassName="min-h-72">
  20. {[
  21. '',
  22. `PUBLIC_BRIVEN_URL=${projectKeys.apiUrl ?? 'your-project-url'}`,
  23. projectKeys?.publishableKey
  24. ? `PUBLIC_BRIVEN_PUBLISHABLE_KEY=${projectKeys.publishableKey}`
  25. : `PUBLIC_BRIVEN_ANON_KEY=${projectKeys.anonKey ?? 'your-anon-key'}`,
  26. '',
  27. ].join('\n')}
  28. </SimpleCodeBlock>
  29. </ConnectTabContent>
  30. <ConnectTabContent value="src/lib/brivenClient.js">
  31. <SimpleCodeBlock className="js" parentClassName="min-h-72">
  32. {`
  33. import { createClient } from "@supabase/supabase-js";
  34. import { PUBLIC_BRIVEN_URL, ${projectKeys.publishableKey ? 'PUBLIC_BRIVEN_PUBLISHABLE_KEY' : 'PUBLIC_BRIVEN_ANON_KEY'} } from "$env/static/public"
  35. const brivenUrl = PUBLIC_BRIVEN_URL;
  36. const brivenKey = ${projectKeys.publishableKey ? 'PUBLIC_BRIVEN_PUBLISHABLE_KEY' : 'PUBLIC_BRIVEN_ANON_KEY'};
  37. export const briven = createClient(brivenUrl, brivenKey);
  38. `}
  39. </SimpleCodeBlock>
  40. </ConnectTabContent>
  41. <ConnectTabContent value="src/routes/+page.server.js">
  42. <SimpleCodeBlock className="js" parentClassName="min-h-72">
  43. {`
  44. import { briven } from "$lib/brivenClient";
  45. export async function load() {
  46. const { data } = await briven.from("countries").select();
  47. return {
  48. countries: data ?? [],
  49. };
  50. }
  51. `}
  52. </SimpleCodeBlock>
  53. </ConnectTabContent>
  54. <ConnectTabContent value="src/routes/+page.svelte">
  55. <SimpleCodeBlock className="html" parentClassName="min-h-72">
  56. {`
  57. <script>
  58. export let data;
  59. </script>
  60. <ul>
  61. {#each data.countries as country}
  62. <li>{country.name}</li>
  63. {/each}
  64. </ul>
  65. `}
  66. </SimpleCodeBlock>
  67. </ConnectTabContent>
  68. </ConnectTabs>
  69. )
  70. }
  71. export default ContentFile