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,7 +29,15 @@ struct BookmarksView: View {
|
|||||||
if UIDevice.isPhone {
|
if UIDevice.isPhone {
|
||||||
selectedBookmarkId = bookmark.id
|
selectedBookmarkId = bookmark.id
|
||||||
} else {
|
} 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(
|
BookmarkCardView(
|
||||||
@ -116,6 +124,9 @@ struct BookmarksView: View {
|
|||||||
.sheet(isPresented: $showingAddBookmark) {
|
.sheet(isPresented: $showingAddBookmark) {
|
||||||
AddBookmarkView(prefilledURL: shareURL, prefilledTitle: shareTitle)
|
AddBookmarkView(prefilledURL: shareURL, prefilledTitle: shareTitle)
|
||||||
}
|
}
|
||||||
|
.sheet(isPresented: $viewModel.showingAddBookmarkFromShare, content: {
|
||||||
|
AddBookmarkView(prefilledURL: shareURL, prefilledTitle: shareTitle)
|
||||||
|
})
|
||||||
/*.alert("Fehler", isPresented: .constant(viewModel.errorMessage != nil)) {
|
/*.alert("Fehler", isPresented: .constant(viewModel.errorMessage != nil)) {
|
||||||
Button("OK", role: .cancel) {
|
Button("OK", role: .cancel) {
|
||||||
viewModel.errorMessage = nil
|
viewModel.errorMessage = nil
|
||||||
@ -123,8 +134,10 @@ struct BookmarksView: View {
|
|||||||
} message: {
|
} message: {
|
||||||
Text(viewModel.errorMessage ?? "")
|
Text(viewModel.errorMessage ?? "")
|
||||||
}*/
|
}*/
|
||||||
.task {
|
.onAppear {
|
||||||
await viewModel.loadBookmarks(state: state)
|
Task {
|
||||||
|
await viewModel.loadBookmarks(state: state)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
.onChange(of: showingAddBookmark) { oldValue, newValue in
|
.onChange(of: showingAddBookmark) { oldValue, newValue in
|
||||||
// Refresh bookmarks when sheet is dismissed
|
// Refresh bookmarks when sheet is dismissed
|
||||||
|
|||||||
@ -59,7 +59,7 @@ class SettingsViewModel {
|
|||||||
endpoint = settings.endpoint ?? ""
|
endpoint = settings.endpoint ?? ""
|
||||||
username = settings.username ?? ""
|
username = settings.username ?? ""
|
||||||
password = settings.password ?? ""
|
password = settings.password ?? ""
|
||||||
isLoggedIn = settings.isLoggedIn // Verwendet die neue Hilfsmethode
|
isLoggedIn = settings.isLoggedIn
|
||||||
}
|
}
|
||||||
} catch {
|
} catch {
|
||||||
errorMessage = "Fehler beim Laden der Einstellungen"
|
errorMessage = "Fehler beim Laden der Einstellungen"
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user