view LazyBear/ContentView.swift @ 244:724916624385

Implement Insider View
author Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
date Sun, 07 Mar 2021 11:25:42 +0100
parents 47d61727054a
children 35be981ccb31
line wrap: on
line source

//
//  ContentView.swift
//  LazyBear
//
//  Created by Dennis Concepción Martín on 17/2/21.
//

import SwiftUI

struct ContentView: View {
    // Start ObservedObjects
    @ObservedObject var hudManager = HUDManager()
    
    // Fetch user appearence settings
    @FetchRequest(entity: UserSettings.entity(), sortDescriptors: [NSSortDescriptor(keyPath: \UserSettings.changedAt, ascending: false)])
    var userSettings: FetchedResults<UserSettings>
    
    var body: some View {
        ZStack(alignment: .top) {
            TabView {
                // First view
                Watchlist(hudManager: hudManager)
                    .tabItem {
                        Label("Watchlist", systemImage: "list.dash")
                    }
                
                // First view
                Search(hudManager: hudManager)
                    .tabItem {
                        Label("Search", systemImage: "magnifyingglass")
                    }
                
                // First view
                Settings()
                    .tabItem {
                        Label("Settings", systemImage: "gear")
                    }
            }
            
            HUD(text: hudManager.text, image: hudManager.image)
                .offset(y: hudManager.isShowing ? 0 : -100)
                .animation(.easeInOut)
        }
        .accentColor(Color("\(userSettings.first?.theme?.lowercased() ?? "default")Accent"))
        // If this value is not optional it will cause a crash
    }
}


struct ContentView_Previews: PreviewProvider {
    static var previews: some View {
        ContentView()
    }
}