Improve bookmark selection logic for iPad and add missing sheet for shared bookmarks

- On iPad, allow re-selecting the same bookmark by deselecting and reselecting it, ensuring detail view updates.
- Add missing .sheet for showing AddBookmarkView when adding from share extension.
- Refactor .task to .onAppear for loading bookmarks on view appearance.
- Minor cleanup in SettingsViewModel (remove outdated comment).
This commit is contained in:
Ilyas Hallak 2025-06-30 22:58:06 +02:00
parent cc08b2cc1b
commit e5040f54e1
2 changed files with 17 additions and 4 deletions

View File

@ -29,7 +29,15 @@ struct BookmarksView: View {
if UIDevice.isPhone {
selectedBookmarkId = bookmark.id
} else {
selectedBookmark = bookmark
if selectedBookmark?.id == bookmark.id {
// Optional: Deselect, um erneutes Auswählen zu ermöglichen
selectedBookmark = nil
DispatchQueue.main.async {
selectedBookmark = bookmark
}
} else {
selectedBookmark = bookmark
}
}
}) {
BookmarkCardView(
@ -116,6 +124,9 @@ struct BookmarksView: View {
.sheet(isPresented: $showingAddBookmark) {
AddBookmarkView(prefilledURL: shareURL, prefilledTitle: shareTitle)
}
.sheet(isPresented: $viewModel.showingAddBookmarkFromShare, content: {
AddBookmarkView(prefilledURL: shareURL, prefilledTitle: shareTitle)
})
/*.alert("Fehler", isPresented: .constant(viewModel.errorMessage != nil)) {
Button("OK", role: .cancel) {
viewModel.errorMessage = nil
@ -123,8 +134,10 @@ struct BookmarksView: View {
} message: {
Text(viewModel.errorMessage ?? "")
}*/
.task {
await viewModel.loadBookmarks(state: state)
.onAppear {
Task {
await viewModel.loadBookmarks(state: state)
}
}
.onChange(of: showingAddBookmark) { oldValue, newValue in
// Refresh bookmarks when sheet is dismissed

View File

@ -59,7 +59,7 @@ class SettingsViewModel {
endpoint = settings.endpoint ?? ""
username = settings.username ?? ""
password = settings.password ?? ""
isLoggedIn = settings.isLoggedIn // Verwendet die neue Hilfsmethode
isLoggedIn = settings.isLoggedIn
}
} catch {
errorMessage = "Fehler beim Laden der Einstellungen"