[tvOS] Fix First Login Crash (#1481)
* Update UserSignInView.swift Fix Crash * Update UserSignInView.swift Restore unnecessarily removed items * Update UserSignInView.swift Remove unnecessary formatting changes. * Use `MainActor` instead --------- Co-authored-by: Ethan Pippin <ethanpippin2343@gmail.com>
This commit is contained in:
parent
26ec19982e
commit
df89832647
|
@ -66,6 +66,25 @@ struct UserSignInView: View {
|
||||||
self._viewModel = StateObject(wrappedValue: UserSignInViewModel(server: server))
|
self._viewModel = StateObject(wrappedValue: UserSignInViewModel(server: server))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// MARK: - Handle Sign In
|
||||||
|
|
||||||
|
@MainActor
|
||||||
|
private func handleSignIn(_ event: UserSignInViewModel.Event) {
|
||||||
|
switch event {
|
||||||
|
case let .duplicateUser(duplicateUser):
|
||||||
|
self.duplicateUser = duplicateUser
|
||||||
|
isPresentingDuplicateUser = true
|
||||||
|
case let .error(eventError):
|
||||||
|
error = eventError
|
||||||
|
case let .signedIn(user):
|
||||||
|
router.dismissCoordinator()
|
||||||
|
|
||||||
|
Defaults[.lastSignedInUserID] = .signedIn(userID: user.id)
|
||||||
|
Container.shared.currentUserSession.reset()
|
||||||
|
Notifications[.didSignIn].post()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// MARK: - Sign In Section
|
// MARK: - Sign In Section
|
||||||
|
|
||||||
@ViewBuilder
|
@ViewBuilder
|
||||||
|
@ -172,21 +191,10 @@ struct UserSignInView: View {
|
||||||
} trailingContentView: {
|
} trailingContentView: {
|
||||||
publicUsersSection
|
publicUsersSection
|
||||||
}
|
}
|
||||||
.onReceive(viewModel.events) { event in
|
.onReceive(
|
||||||
switch event {
|
viewModel.events,
|
||||||
case let .duplicateUser(duplicateUser):
|
perform: handleSignIn
|
||||||
self.duplicateUser = duplicateUser
|
)
|
||||||
isPresentingDuplicateUser = true
|
|
||||||
case let .error(eventError):
|
|
||||||
error = eventError
|
|
||||||
case let .signedIn(user):
|
|
||||||
router.dismissCoordinator()
|
|
||||||
|
|
||||||
Defaults[.lastSignedInUserID] = .signedIn(userID: user.id)
|
|
||||||
Container.shared.currentUserSession.reset()
|
|
||||||
Notifications[.didSignIn].post()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
.onFirstAppear {
|
.onFirstAppear {
|
||||||
focusedField = .username
|
focusedField = .username
|
||||||
viewModel.send(.getPublicData)
|
viewModel.send(.getPublicData)
|
||||||
|
|
Loading…
Reference in New Issue