Untitled

 avatar
unknown
plain_text
2 months ago
21 kB
6
Indexable
//
//  Shop.swift
//  TrainerApp
//
//  Created by ISDT Devs on 22.10.24.
//

import SwiftUI
//import FirebaseFirestoreSwift
import FirebaseAuth
import FirebaseStorage
struct Shop: View {

    let currentBalance = "$30,000"
    @State private var navigateToProductList: Bool = false
    @State private var navigateToManageProduct: Bool = false
    
    @Environment(\.presentationMode) var presentationMode
  
    
    var body: some View {
        NavigationView{
            VStack{
                ScrollView(.vertical, showsIndicators: false) {
                    VStack {

                        Button(action: {
                            navigateToManageProduct = true
                            
                           
                        }) {
                            Text("Add New Product")
                                .foregroundColor(.white)
                              
                                .multilineTextAlignment(.center)
                                .frame(height: 38)
                                
                                .frame(maxWidth:.infinity)
                                
                                .font(.plusJakartaSans(size: 14, weight: .semibold))
                                .background(Color(red: 0.13, green: 0.77, blue: 0.37))
                                .cornerRadius(100)
                                .padding(.top,30)
                                
                        }
                        .padding(.vertical,10)
                        NavigationLink(destination: ManageProductSegment(), isActive: $navigateToManageProduct) {
                            EmptyView()
                        }
                        //.padding(.horizontal, 20)
                        
                        
                        HStack {
                            NavigationLink(destination: ProductListView()) {
                                Image("packing")
                                    .resizable()
                                    .scaledToFit()
                                    .frame(width: 74, height: 74)
                                    .padding(.leading, 10)
                          
                                
                                VStack(alignment: .leading, spacing: 4) {
                                    Text("20")
                                        .font(.plusJakartaSans(size: 30, weight: .bold))
                                        .foregroundColor(.white)
                                    
                                    Text("Total Product")
                                        .font(.plusJakartaSans(size: 16, weight: .semibold))
                                        .foregroundColor(.white)
                                    
                                }
                                
                                .padding(.leading, 10)
                                
                                Spacer() // Push everyth
                                
                                
                            }
                            
                        }
                        .cornerRadius(10) // Rounded corne
                        .frame(height:100)
                        .background(Color(red: 0.2, green: 0.81, blue: 1))
                        .padding(.top,5)
                        .overlay(
                            RoundedRectangle(cornerRadius: 10)
                                .stroke(Color.gray, lineWidth: 0)
                                .padding(.top,10)
                            
                        )
                        
                        // .padding(.horizontal, 20)
                        
                        NavigationLink(destination: TotalOrder()){
                            HStack {
                                Image("knitting")
                                    .resizable()
                                    .scaledToFit()
                                    .frame(width: 74, height: 74)
                                    .padding(.leading, 10)
                                
                                VStack(alignment: .leading, spacing: 4) { // VStack for vertical alignment
                                    Text("20")
                                        .font(.plusJakartaSans(size: 30, weight: .bold))
                                        .foregroundColor(.white) // First text field
                                    
                                    Text("Total Order")
                                        .font(.plusJakartaSans(size: 16, weight: .semibold))
                                        .foregroundColor(.white)
                                    
                                }
                                .padding(.leading, 10)
                                
                                Spacer() // Push everyth
                                
                                
                            }
                            
                        }
                        .cornerRadius(10) // Rounded corne
                        .frame(height:100)
                        .background(Color(red: 0.25, green: 0.77, blue: 0.67))
                        
                        .padding(.top,5)
                        .overlay(
                            RoundedRectangle(cornerRadius: 10)
                                .stroke(Color.gray, lineWidth: 0)
                                .padding(.top,10)
                            
                        )
                        
                        // .padding(.horizontal, 20)
                        NavigationLink(destination: TotalOrder()){
                             HStack {
                                Image("knitting")
                                    .resizable()
                                    .scaledToFit()
                                    .frame(width: 74, height: 74)
                                    .padding(.leading, 10)
                                 
                                
                                VStack(alignment: .leading, spacing: 4) {
                                    
                                    Text("5")
                                        .font(.plusJakartaSans(size: 30, weight: .bold))
                                        .foregroundColor(.white)
                                    
                                    Text("Pending Order")
                                        .font(.plusJakartaSans(size: 16, weight: .semibold))
                                        .foregroundColor(.white)
                                    
                                }
                                .padding(.leading, 10)
                                
                                Spacer() // Push everyth
                                
                                
                            }
                        }
                        
                        .cornerRadius(10) // Rounded corne
                        .frame(height:100)
                        .background(Color(red: 1, green: 0.75, blue: 0.3))
                        
                        .padding(.top,5)
                        
                        .overlay(
                            RoundedRectangle(cornerRadius: 10)
                                .stroke(Color.gray, lineWidth: 0)
                                .padding(.top,10)
                            
                            
                        )

                       // .padding(.horizontal, 20)
                        HStack{
                            Divider()
                                .frame(height: 1)
                                .frame(maxWidth: .infinity)
                            
                                
                            
                                          .background(Color(hex: "#DFE1E7")) // Optional: Set the line color
                                         // .padding()
                            
                        }
                       // .padding(.horizontal,20)
                        .padding(.vertical,20)
                        HStack(spacing: 10) {
                            VStack(spacing:10) {
                                Text("Shop Setting")
                                 //   .padding(.top, 5)
                                    .font(.plusJakartaSans(size: 16, weight: .bold))

                                Text("Manage & organise\nyour shop")
                                    .font(.plusJakartaSans(size: 12, weight: .regular))
                                    .foregroundColor(Color(hex: "#0F172A"))
                                    .multilineTextAlignment(.center)
                                    .lineLimit(nil)
                                    .frame(maxWidth: .infinity)
                                
                                Image("Home 1")
                                
                                NavigationLink(destination: ShopInfoView()) { // Navigate to the SettingsView
                                    Text("Go to setting")
                                        .foregroundColor(.white)
                                        .font(.plusJakartaSans(size: 12, weight: .semibold))
                                        .frame(height:30)
                                        //.frame(maxWidth:160)
                                        .frame(maxWidth: .infinity)
                                      
                                        .background(Color(red: 0.13, green: 0.77, blue: 0.37))
                                        .cornerRadius(5)
                                    
                                }
                                .padding(.horizontal,15)
                                
                          }
                            .frame(height: calculateHeight())
                            .background(Color(red: 0.91, green: 0.98, blue: 0.94))
                            .cornerRadius(10)
                            .overlay(
                                RoundedRectangle(cornerRadius: 10)
                                    .stroke(Color(hex: "#DFE1E7"), lineWidth: 1)
                            )
                            
                            // Second box (same as first one)
                            VStack(spacing:10) {
                                Text("Payment Setting")
                                    //.padding(.top, 5)
                                    .font(.plusJakartaSans(size: 16, weight: .bold))
                                Text("Configure your payment\nmethod")
                                  //  .padding(.bottom, 10)
                                    .foregroundColor(Color(hex: "#0F172A"))
                                    .font(.plusJakartaSans(size: 12, weight: .regular))
                                    .multilineTextAlignment(.center)
                                    .frame(maxWidth: .infinity)

//                                Image(uiImage: UIImage(named: "Home 1")!)
                                Image("Card_PaymentSetting")
                                NavigationLink(destination: ReelsView(), isActive: $navigateToProductList) {
                                    EmptyView()
                                }
                                Button(action: {
                                   navigateToProductList = true
                                })
                                    {
                                        Text("Configure Now")
                                            .foregroundColor(.white)
                                            .font(.plusJakartaSans(size: 12, weight: .semibold))
                                            .frame(height:30)
                                            .frame(maxWidth: .infinity)
                                            .background(Color(red: 0.13, green: 0.77, blue: 0.37))
                                            .cornerRadius(5)
                                    }
                                     
                                    .padding(.horizontal,15)
                                //Spacer()
                            }
                            //.frame(height: 157)
                            .frame(height: calculateHeight())
                            .frame(maxWidth: .infinity)
                            .background(Color(red: 0.91, green: 0.98, blue: 0.94))
                            .cornerRadius(10)
                            .overlay(
                                RoundedRectangle(cornerRadius: 10)
                                    .stroke(Color(hex: "#DFE1E7"), lineWidth: 1)
                            )
                        }
                       /// .padding()
                   // .padding(.horizontal,20)
                       
                  
                        VStack{
                            SalesStatsChart()
                            
                            
                                .background(Color(hex: "#f6f8fa"))
                                .overlay(
                                    RoundedRectangle(cornerRadius: 10)
                                        .stroke(Color(hex: "#DFE1E7"), lineWidth:1)
                                )
                               
                                .frame(width: calculateWidth(), height: calculateHeight())
                             
                               
                               
                        }
                       
                        .padding(.top,40)
                      
                       
                    }
                    
                }
                
            }
//            .onAppear {
//                guard let id = Auth.auth().currentUser?.uid else {
//                    print("User ID not found")
//                    return
//                }
//                viewModels.fetchBook(documentId: id)
//                print("This is View Model Data",viewModels)
//            }
           .padding(.horizontal,20)

            .toolbar {
                ToolbarItem(placement: .navigationBarLeading) {
                    HStack (spacing: 8){
                        Image("Variant=18")
                            .resizable()
                            .frame(width: 40, height: 40)
                            .clipShape(Circle())
                            .overlay(
                                Circle()
                                    .stroke(Color.green, lineWidth: 1)
                                    .frame(width: 40, height: 40)
                            )
                        
                        Text("My Shop")
                            .font(Font.plusJakartaSans(size: 17).weight(.bold))
                        
                    }
                }
                
                ToolbarItem(placement: .navigationBarTrailing){
                    VStack(spacing: 10) {
                        VStack {
                            Text("Current Balance")
                                .font(Font.plusJakartaSans(size: 11).weight(.bold))
                                .foregroundColor(Color(hex: "#A4ACB9"))
                            
                            Text(currentBalance)
                                .font(Font.plusJakartaSans(size: 15).weight(.bold))
                                .foregroundColor(Color(hex: "#0F172A"))
                                .multilineTextAlignment(.trailing)
                        }
                    }
                }
            }
            .navigationBarTitleDisplayMode(.inline)
        }
        
    }
    private func calculateWidth() -> CGFloat {
        let screenWidth = UIScreen.main.bounds.width
        return screenWidth / 1.1 // Adjust the divisor to fit your layout needs
    }
private func calculateHeight() -> CGFloat {
       let screenHeight = UIScreen.main.bounds.height
    return screenHeight / 5 // Adjust the divisor to fit your layout needs
   }
    
}

struct Shop_Previewse: PreviewProvider {
    static var previews: some View {
        Shop()
    }
}


struct SalesStatsChart: View {
    let days = ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"]
    let calories: [CGFloat] = [20, 40, 80, 120, 60, 70, 50]
    let weeks = ["Week 1", "Week 2", "Week 3", "Week 4"]
    let months = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"]
    
    @State var selectedWeek: String = "Week"
    let weekList = ["Week", "Day", "Month"]
    
    var body: some View {
        VStack {
            HStack {
                Image(systemName: "flame.fill")
                    .foregroundColor(.green)
                    .padding(.vertical,15)
                    ///.padding(.horizontal,10)
                Text("Sales Stats")
                    .font(.system(size: 16, weight: .semibold))
                
                Spacer()
                
                Menu {
                    ForEach(weekList, id: \.self) { option in
                        Button(action: {
                            self.selectedWeek = option
                        }) {
                            Text(option)
                        }
                    }
                }
                
            label: {
                    HStack {
                        Text(self.selectedWeek)
                            .foregroundColor(Color(hex: "#818898"))
                            .foregroundColor(self.selectedWeek.isEmpty ? .gray : .black)
                        Image(systemName: "chevron.down")
                            .foregroundColor(.gray)
                    }
                    
                }
            }
            .padding(.horizontal,20)
        
             //.padding(.horizontal,20)
            
           //Spacer()
            
            // Conditionally render the chart based on the selection
            if selectedWeek == "Week" {
                weekChart
            } else if selectedWeek == "Day" {
                dayChart
            } else if selectedWeek == "Month" {
                monthChart
            }
            
            // Spacer()
        }
       
        //.padding(.horizontal,10)
        .padding(.bottom,10)
        
    }
    
    var weekChart: some View {
        HStack(alignment: .bottom, spacing: 10) {
            ForEach(0..<days.count, id: \.self) { index in
                VStack {
                    Rectangle()
                        .fill(index == 2 ? Color.green : Color.gray.opacity(0.2)) // Example: Highlight Tuesday
                        .cornerRadius(5)
                        .frame(width: 35, height: calories[index])
                    Text(days[index])
                        .font(.system(size: 12))
                        .foregroundColor(.gray)
                }
            }
        }
        .padding(.horizontal)
    }
    
    var dayChart: some View {
        HStack(alignment: .bottom, spacing: 10) {
            ForEach(0..<weeks.count, id: \.self) { index in
                VStack {
                    Rectangle()
                        .fill(index == 2 ? Color.green : Color.gray.opacity(0.2)) // Example: Highlight Tuesday
                        .cornerRadius(5)
                        .frame(width: 35, height: calories[index])
                    Text(weeks[index])
                        .font(.system(size: 12))
                        .foregroundColor(.gray)
                }
            }
        }
        .padding(.horizontal)
        
    }
    
    var monthChart: some View {
        ScrollView(.horizontal, showsIndicators: false) {
            HStack(alignment: .bottom, spacing: 10) {
                ForEach(0..<months.count, id: \.self) { index in
                    VStack {
                        Rectangle()
                            .fill(Color.gray.opacity(0.2))
                            .cornerRadius(5)
                            .frame(height: CGFloat.random(in: 50...150)) // Example heights
                            .frame(maxWidth: .infinity)
                        Text(months[index])
                            .font(.system(size: 12))
                            .foregroundColor(.gray)
                    }
                }
            }
         //   .padding(.horizontal,20)
        }
    }
}



//func fetchBook(documentId: String) {
//
//    let query = db.collection("Products")
//    query.getDocuments { [weak self] (snapshot, error) in
//        if let error = error {
//            print("Error fetching groups: \(error.localizedDescription)")
//            return
//        }
//
//        guard let documents = snapshot?.documents else {
//
//            print("No groups found")
//            return
//        }
//
//         documents.compactMap { document in
//            let data = document.data()
//            print("Data",data)
//
//
//
//        }
//
//
//
//
//
//
//    }
//
//
//}
Editor is loading...
Leave a Comment