@@ -76,33 +76,26 @@ struct WorkspacesListView: View {
7676 @State private var showAlert = false
7777
7878 @State private var alertMessage = " "
79+ @State private var autoRedirectToMapViewError : String ?
7980
8081 var body : some View {
8182
82- if viewModel. workspaces? . count == 1 {
83- if let selectedWorkspace = viewModel. workspaces? . first {
84- VStack {
85- if !shouldNavigateToMapView {
86- ActivityView ( activityText: " Fetching workspace data... " )
87- Spacer ( )
88- }
89- }
90- . onAppear {
91- viewModel. fetchLongQuestsFor ( workspaceId: " \( selectedWorkspace. id) " ) { success, errorMessage in
92- if success {
93- self . selectedWorkspace = selectedWorkspace
94- let workspaceId = " \( selectedWorkspace. id) "
95- _ = KeychainManager . save ( key: " workspaceID " , data: workspaceId)
96- DispatchQueue . main. async {
97- shouldNavigateToMapView = true
98- }
99- } else {
100- DispatchQueue . main. async {
101- alertMessage = errorMessage ?? " Something went wrong. Please pick another workspace. "
102- showAlert = true
103- shouldNavigateToMapView = false
104- }
83+ if viewModel. workspaces? . count == 1 ,
84+ let selectedWorkspace = viewModel. workspaces? . first,
85+ autoRedirectToMapViewError == nil {
86+ VStack {
87+ }
88+ . onAppear {
89+ viewModel. fetchLongQuestsFor ( workspaceId: " \( selectedWorkspace. id) " ) { success, errorMessage, workspace in
90+ if success {
91+ self . selectedWorkspace = workspace
92+ let workspaceId = " \( selectedWorkspace. id) "
93+ _ = KeychainManager . save ( key: " workspaceID " , data: workspaceId)
94+ DispatchQueue . main. async {
95+ shouldNavigateToMapView = true
10596 }
97+ } else {
98+ autoRedirectToMapViewError = errorMessage ?? " Something went wrong. Please pick another workspace. "
10699 }
107100 }
108101 }
@@ -164,10 +157,10 @@ struct WorkspacesListView: View {
164157 ForEach ( viewModel. workspaces? . filter ( { $0. type == " osw " && $0. externalAppAccess == 1 } ) ?? [ ] , id: \. id) { workspace in
165158 Button {
166159 viewModel. checkAndDeleteWorkspaceDB ( workspaceId: " \( workspace. id) " )
167- viewModel. fetchLongQuestsFor ( workspaceId: " \( workspace. id) " , completion: { success, errorMessage in
160+ viewModel. fetchLongQuestsFor ( workspaceId: " \( workspace. id) " , completion: { success, errorMessage, ws in
168161 if success {
169162 shouldNavigateToMapView = true
170- selectedWorkspace = workspace
163+ selectedWorkspace = ws
171164
172165 let workspaceId = " \( workspace. id) "
173166 _ = KeychainManager . save ( key: " workspaceID " , data: workspaceId)
0 commit comments