74 lines
2.4 KiB
Swift
74 lines
2.4 KiB
Swift
//
|
|
// HomeView.swift
|
|
// SodaLive
|
|
//
|
|
// Created by klaus on 2023/08/09.
|
|
//
|
|
|
|
import SwiftUI
|
|
|
|
import Firebase
|
|
import Kingfisher
|
|
|
|
struct HomeView: View {
|
|
|
|
@StateObject var viewModel = HomeViewModel()
|
|
@StateObject var appState = AppState.shared
|
|
|
|
private let liveView = LiveView()
|
|
private let explorer = ExplorerView()
|
|
private let messageView = MessageView()
|
|
private let contentView = ContentMainView()
|
|
|
|
var body: some View {
|
|
GeometryReader { proxy in
|
|
ZStack(alignment: .bottom) {
|
|
VStack(spacing: 0) {
|
|
ZStack {
|
|
contentView
|
|
.frame(width: viewModel.currentTab == .content ? proxy.size.width : 0)
|
|
.opacity(viewModel.currentTab == .content ? 1.0 : 0.01)
|
|
|
|
liveView
|
|
.frame(width: viewModel.currentTab == .live ? proxy.size.width : 0)
|
|
.opacity(viewModel.currentTab == .live ? 1.0 : 0.01)
|
|
|
|
explorer
|
|
.frame(width: viewModel.currentTab == .explorer ? proxy.size.width : 0)
|
|
.opacity(viewModel.currentTab == .explorer ? 1.0 : 0.01)
|
|
|
|
messageView
|
|
.frame(width: viewModel.currentTab == .message ? proxy.size.width : 0)
|
|
.opacity(viewModel.currentTab == .message ? 1.0 : 0.01)
|
|
|
|
if viewModel.currentTab == .mypage {
|
|
MyPageView()
|
|
}
|
|
}
|
|
.padding(.bottom, appState.isShowPlayer ? 72 : 0)
|
|
|
|
Spacer()
|
|
|
|
BottomTabView(width: proxy.size.width, currentTab: $viewModel.currentTab)
|
|
|
|
if proxy.safeAreaInsets.bottom > 0 {
|
|
Rectangle()
|
|
.foregroundColor(Color(hex: "111111"))
|
|
.frame(width: proxy.size.width, height: 15.3)
|
|
}
|
|
}
|
|
.onAppear {
|
|
|
|
}
|
|
}
|
|
.edgesIgnoringSafeArea(.bottom)
|
|
}
|
|
}
|
|
}
|
|
|
|
struct HomeView_Previews: PreviewProvider {
|
|
static var previews: some View {
|
|
HomeView()
|
|
}
|
|
}
|