content.tsx 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  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="Briven.swift" />
  14. <ConnectTabTrigger value="Todo.swift" />
  15. <ConnectTabTrigger value="ContentView.swift" />
  16. </ConnectTabTriggers>
  17. <ConnectTabContent value="Briven.swift">
  18. <SimpleCodeBlock className="swift" parentClassName="min-h-72">
  19. {`
  20. import Foundation
  21. import Briven
  22. let briven = BrivenClient(
  23. brivenURL: URL(string: "${projectKeys.apiUrl ?? 'your-project-url'}")!,
  24. brivenKey: "${projectKeys.publishableKey ?? '<prefer publishable key for native apps instead of anon key>'}"
  25. )
  26. `}
  27. </SimpleCodeBlock>
  28. </ConnectTabContent>
  29. <ConnectTabContent value="Todo.swift">
  30. <SimpleCodeBlock className="swift" parentClassName="min-h-72">
  31. {`
  32. import Foundation
  33. struct Todo: Identifiable, Decodable {
  34. var id: Int
  35. var title: String
  36. }
  37. `}
  38. </SimpleCodeBlock>
  39. </ConnectTabContent>
  40. <ConnectTabContent value="ContentView.swift">
  41. <SimpleCodeBlock className="swift" parentClassName="min-h-72">
  42. {`
  43. import Briven
  44. import SwiftUI
  45. struct ContentView: View {
  46. @State var todos: [Todo] = []
  47. var body: some View {
  48. NavigationStack {
  49. List(todos) { todo in
  50. Text(todo.title)
  51. }
  52. .navigationTitle("Todos")
  53. .task {
  54. do {
  55. todos = try await briven.from("todos").select().execute().value
  56. } catch {
  57. debugPrint(error)
  58. }
  59. }
  60. }
  61. }
  62. }
  63. #Preview {
  64. ContentView()
  65. }
  66. `}
  67. </SimpleCodeBlock>
  68. </ConnectTabContent>
  69. </ConnectTabs>
  70. )
  71. }
  72. export default ContentFile