Advertisement
Guest User

Untitled

a guest
Mar 26th, 2025
107
0
101 days
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Swift 2.28 KB | None | 0 0
  1. import SwiftUI
  2.  
  3. struct ScreenerFilterView: View {
  4.     @State private var searchText = ""
  5.     let filters: Filters
  6.  
  7.     var body: some View {
  8.         #if DEBUG
  9.         let _ = Self._printChanges()
  10.         #endif
  11.         ScrollView {
  12.             LazyVStack(alignment: .leading, spacing: 20) {
  13.                 TextField("Search filter...", text: $searchText)
  14.                     .disableAutocorrection(true)
  15.                     .textFieldStyle(.plain)
  16.                     .padding(8)
  17.                     .foregroundStyle(.black)
  18.                     .autocorrectionDisabled(true)
  19.                     .background(
  20.                         RoundedRectangle(cornerRadius: 5)
  21.                             .stroke(Color.gray.opacity(0.6), lineWidth: 1)
  22.                             .fill(Color.white)
  23.                     )
  24.                     .padding(.horizontal, 10)
  25.                
  26.                 ForEach(filters.data, id: \.name) { (group: FilterGroup) in
  27.                     Section(header: Text(group.name)
  28.                             .font(.title2)
  29.                             .foregroundColor(.blue)
  30.                             .fontWeight(.medium)
  31.                     ) {
  32.                         FilterView(filters: group.data)
  33.                     }
  34.                 }
  35.             }
  36.             .padding(.vertical)
  37.             .padding(.horizontal)
  38.         }
  39.     }
  40. }
  41.  
  42. struct FilterView: View {
  43.     let columns = [
  44.         GridItem(.flexible(minimum: 250), alignment: .leading),
  45.         GridItem(.flexible(minimum: 250), alignment: .leading),
  46.         GridItem(.flexible(minimum: 250), alignment: .leading)
  47.     ]
  48.     let filters: [Filter]
  49.     var body: some View {
  50.         #if DEBUG
  51.         let _ = Self._printChanges()
  52.         #endif
  53.         LazyVGrid(columns: columns, spacing: 10) {
  54.             ForEach(filters, id: \.name) { (item: Filter) in
  55.                 FilterItemView(name: item.name, selected: item.selected)
  56.             }
  57.         }
  58.         .frame(alignment: .leading)
  59.     }
  60. }
  61.  
  62. struct FilterItemView: View {
  63.     let name: String
  64.     @State var selected: Bool
  65.  
  66.     var body: some View {
  67.         #if DEBUG
  68.         let _ = Self._printChanges()
  69.         #endif
  70.         Toggle(name, isOn: $selected)
  71.             .animation(nil, value: selected)
  72.        
  73.     }
  74. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement