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:
parent
cc08b2cc1b
commit
e5040f54e1
@ -29,8 +29,16 @@ struct BookmarksView: View {
|
||||
if UIDevice.isPhone {
|
||||
selectedBookmarkId = bookmark.id
|
||||
} else {
|
||||
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(
|
||||
bookmark: bookmark,
|
||||
@ -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,9 +134,11 @@ struct BookmarksView: View {
|
||||
} message: {
|
||||
Text(viewModel.errorMessage ?? "")
|
||||
}*/
|
||||
.task {
|
||||
.onAppear {
|
||||
Task {
|
||||
await viewModel.loadBookmarks(state: state)
|
||||
}
|
||||
}
|
||||
.onChange(of: showingAddBookmark) { oldValue, newValue in
|
||||
// Refresh bookmarks when sheet is dismissed
|
||||
if oldValue && !newValue {
|
||||
|
||||
@ -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"
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user