view Simoleon/Helpers/SearchBar.swift @ 6:3d6f56b0d4ed

Implementing first UI layout
author Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
date Sun, 11 Jul 2021 18:03:56 +0100
parents e0c2bda6c51f
children a62e5e4a4f02
line wrap: on
line source

//
//  SearchBar.swift
//  Simoleon
//
//  Created by Dennis Concepción Martín on 11/07/2021.
//

import SwiftUI

struct SearchBar: View {
    @Binding var text: String
    @Binding var isEditing: Bool
    
    var body: some View {
        VStack {
            Capsule()
                .capsuleModifier(Color("Bone"))
                
            Capsule()
                .capsuleModifier(Color(.systemBackground))
                .overlay(
                    ZStack(alignment: .leading) {
                        TextField("Search", text: $text)
                            .padding(.leading, 55)
                            .padding(.trailing)
                            .padding(.vertical, 25)  /// Expand tapable area
                            .contentShape(Capsule())
                        
                        Image(systemName: "magnifyingglass.circle")
                            .imageScale(.large)
                            .opacity(0.3)
                            .padding(.leading)
                    }
                )
                .offset(x: -7, y: -90)
                .padding(.bottom, -90)
        }
        .padding(.leading, 7)
        .padding(.horizontal)
        
    }
}
extension Capsule {
    func capsuleModifier(_ colour: Color) -> some View {
        self
            .strokeBorder(Color("Border"), lineWidth: 2)
            .background(Capsule().foregroundColor(colour))
            .frame(height: 70)
    }
}

struct SearchBar_Previews: PreviewProvider {
    static var previews: some View {
        SearchBar(text: .constant(""), isEditing: .constant(false))
    }
}