SettingInputHintView.swift 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. import SwiftUI
  2. struct SettingInputHintView<HintView: View>: View {
  3. @Binding var hintDetent: PresentationDetent
  4. @Binding var shouldDisplayHint: Bool
  5. var hintLabel: String
  6. var hintDefaultSetting: String?
  7. var hintText: HintView
  8. var sheetTitle: String
  9. @Environment(\.colorScheme) private var colorScheme
  10. private var color: LinearGradient {
  11. colorScheme == .dark ? LinearGradient(
  12. gradient: Gradient(colors: [
  13. Color.bgDarkBlue,
  14. Color.bgDarkerDarkBlue
  15. ]),
  16. startPoint: .top,
  17. endPoint: .bottom
  18. )
  19. :
  20. LinearGradient(
  21. gradient: Gradient(colors: [Color.gray.opacity(0.1)]),
  22. startPoint: .top,
  23. endPoint: .bottom
  24. )
  25. }
  26. var body: some View {
  27. NavigationStack {
  28. List {
  29. DefinitionRow(
  30. term: hintLabel,
  31. defaultSetting: hintDefaultSetting,
  32. definition: hintText,
  33. fontSize: .body
  34. )
  35. }
  36. .navigationBarTitle(sheetTitle, displayMode: .inline)
  37. Spacer()
  38. Button {
  39. shouldDisplayHint.toggle()
  40. } label: {
  41. Text("Got it!")
  42. .frame(maxWidth: .infinity, alignment: .center)
  43. }
  44. .buttonStyle(.bordered)
  45. .padding(.top)
  46. }
  47. .padding()
  48. .presentationDetents(
  49. [.fraction(0.9), .large],
  50. selection: $hintDetent
  51. )
  52. }
  53. }