185 lines
6.6 KiB
Swift
185 lines
6.6 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 .modifyContent(let contentId):
|
|
ContentModifyView(contentId: contentId)
|
|
|
|
case .contentListAll(let userId):
|
|
ContentListView(userId: userId)
|
|
|
|
case .contentDetail(let contentId):
|
|
ContentDetailView(contentId: contentId)
|
|
|
|
case .createLive(let timeSettingMode, let onSuccess):
|
|
LiveRoomCreateView(
|
|
timeSettingMode: timeSettingMode,
|
|
onSuccess: onSuccess
|
|
)
|
|
|
|
case .liveNowAll(let onClickParticipant):
|
|
LiveNowAllView(onClickParticipant: onClickParticipant)
|
|
|
|
case .liveReservationAll(let onClickReservation, let onClickStart, let onClickCancel, let onTapCreateLive):
|
|
LiveReservationAllView(
|
|
onClickReservation: onClickReservation,
|
|
onClickStart: onClickStart,
|
|
onClickCancel: onClickCancel,
|
|
onTapCreateLive: onTapCreateLive
|
|
)
|
|
|
|
case .modifyLive(let room):
|
|
LiveRoomEditView(room: room)
|
|
|
|
case .liveDetail(let roomId, let onClickParticipant, let onClickReservation, let onClickStart, let onClickCancel):
|
|
LiveDetailView(
|
|
roomId: roomId,
|
|
onClickParticipant: onClickParticipant,
|
|
onClickReservation: onClickReservation,
|
|
onClickStart: onClickStart,
|
|
onClickCancel: onClickCancel
|
|
)
|
|
|
|
case .modifyPassword:
|
|
ModifyPasswordView()
|
|
|
|
case .changeNickname:
|
|
NicknameUpdateView()
|
|
|
|
case .profileUpdate(let refresh):
|
|
ProfileUpdateView(refresh: refresh)
|
|
|
|
case .followingList:
|
|
FollowCreatorView()
|
|
|
|
case .orderListAll:
|
|
OrderListAllView()
|
|
|
|
case .userProfileDonationAll(let userId):
|
|
UserProfileDonationAllView(userId: userId)
|
|
|
|
case .userProfileFanTalkAll(let userId):
|
|
UserProfileFanTalkAllView(userId: userId)
|
|
|
|
case .newContentAll:
|
|
ContentNewAllView()
|
|
|
|
case .curationAll(let title, let curationId):
|
|
ContentCurationView(title: title, curationId: curationId)
|
|
|
|
case .contentRankingAll:
|
|
ContentRankingAllView()
|
|
|
|
case .creatorCommunityAll(let creatorId):
|
|
CreatorCommunityAllView(creatorId: creatorId)
|
|
|
|
case .creatorCommunityWrite(let onSuccess):
|
|
CreatorCommunityWriteView(onSuccess: onSuccess)
|
|
|
|
default:
|
|
EmptyView()
|
|
.frame(width: 0, height: 0, alignment: .topLeading)
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
struct ContentView_Previews: PreviewProvider {
|
|
static var previews: some View {
|
|
ContentView()
|
|
}
|
|
}
|