[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))
|
||||
}
|
||||
|
||||
// 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
|
||||
|
||||
@ViewBuilder
|
||||
|
@ -172,21 +191,10 @@ struct UserSignInView: View {
|
|||
} trailingContentView: {
|
||||
publicUsersSection
|
||||
}
|
||||
.onReceive(viewModel.events) { event in
|
||||
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()
|
||||
}
|
||||
}
|
||||
.onReceive(
|
||||
viewModel.events,
|
||||
perform: handleSignIn
|
||||
)
|
||||
.onFirstAppear {
|
||||
focusedField = .username
|
||||
viewModel.send(.getPublicData)
|
||||
|
|
Loading…
Reference in New Issue