sodalive-ios/SodaLive/Sources/ContentView.swift

114 lines
3.8 KiB
Swift

//
// ContentView.swift
// SodaLive
//
// Created by klaus on 2023/08/09.
//
import SwiftUI
struct ContentView: View {
@StateObject private var appState = AppState.shared
var body: some View {
ZStack {
Color.black.ignoresSafeArea()
MainView()
switch appState.appStep {
case .splash:
SplashView()
case .signUp:
SignUpView()
case .findPassword:
FindPasswordView()
case .textMessageDetail(let messageItem, let messageBox, let refresh):
TextMessageDetailView(messageItem: messageItem, messageBox: messageBox, refresh: refresh)
case .writeTextMessage(let userId, let nickname):
TextMessageWriteView(replySenderId: userId, replySenderNickname: nickname)
case .writeVoiceMessage(let userId, let nickname, let onRefresh):
VoiceMessageWriteView(replySenderId: userId, replySenderNickname: nickname, onRefresh: onRefresh)
case .settings:
SettingsView()
case .notices:
NoticeListView()
case .noticeDetail(let notice):
NoticeDetailView(notice: notice)
case .events:
EventListView()
case .eventDetail(let event):
EventDetailView(event: event)
case .terms:
TermsView(isPrivacyPolicy: false)
case .privacy:
TermsView(isPrivacyPolicy: true)
case .notificationSettings:
NotificationSettingsView()
case .signOut:
SignOutView()
case .canStatus(let refresh):
CanStatusView(refresh: refresh)
case .canCharge(let refresh, let afterCompletionToGoBack):
CanChargeView(refresh: refresh, afterCompletionToGoBack: afterCompletionToGoBack)
case .canPayment(let canProduct, let refresh, let afterCompletionToGoBack):
CanPaymentView(canProduct: canProduct, refresh: refresh, afterCompletionToGoBack: afterCompletionToGoBack)
case .canPgPayment(let canResponse, let refresh, let afterCompletionToGoBack):
CanPgPaymentView(canResponse: canResponse, refresh: refresh, afterCompletionToGoBack: afterCompletionToGoBack)
case .liveReservation:
LiveReservationStatusView()
case .liveReservationCancel(let reservationId):
LiveReservationCancelView(reservationId: reservationId)
case .serviceCenter:
ServiceCenterView()
case .createContent:
ContentCreateView()
case .liveReservationComplete(let response):
LiveReservationCompleteView(reservationCompleteData: response)
case .creatorDetail(let userId):
UserProfileView(userId: userId)
case .followerList(let userId):
FollowerListView(userId: userId)
case .creatorNoticeWrite(let notice):
CreatorNoticeWriteView(notice: notice)
default:
EmptyView()
.frame(width: 0, height: 0, alignment: .topLeading)
}
}
}
}
struct ContentView_Previews: PreviewProvider {
static var previews: some View {
ContentView()
}
}