Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0

### Fixed

- The empty Favorites sidebar fits its width on macOS 15. The description and the New Favorite, New Folder and Link a Folder buttons ran past both edges of the sidebar and were cut off, so the buttons could not be read or reached. They now wrap and stack inside the sidebar.
- Table favorites and saved queries sync through iCloud. Their record types had never been created in the iCloud schema, so every one was rejected on upload, and Account settings reported the same sync error again on every attempt because the rejected items were retried forever.
- An SSH profile that uses a jump host syncs. iCloud rejected the jump host list, and that stopped the whole profile from uploading.
- A connection carries its favorite mark, every tag assigned to it, and its AI rules and always-allowed tools to your other Macs. These were held back from upload, so they stayed on the Mac that set them, and a connection with several tags arrived with only the first one.
Expand Down
22 changes: 14 additions & 8 deletions TablePro/Views/Sidebar/FavoritesTabView.swift
Original file line number Diff line number Diff line change
Expand Up @@ -468,20 +468,26 @@ internal struct FavoritesTabView: View {

/// An empty list has no row to right-click, so the commands the background menu carries have to
/// be here too. They used to live in a bar at the bottom of the sidebar.
///
/// The actions are stacked, not left to `ContentUnavailableView`'s default row. On macOS 15 the
/// row of three buttons is wider than the sidebar, and the view sizes its whole content to that
/// row, so the description and the buttons ran past both edges and were cut off.
private var emptyState: some View {
ContentUnavailableView {
Label(String(localized: "No Favorites"), systemImage: "star")
} description: {
Text("Save frequently used queries, or link a folder of .sql files to share with your team.")
} actions: {
Button(String(localized: "New Favorite...")) {
viewModel.createFavorite()
}
Button(String(localized: "New Folder")) {
viewModel.createFolder()
}
Button(String(localized: "Link a Folder...")) {
addLinkedFolder()
VStack(spacing: 8) {
Button(String(localized: "New Favorite...")) {
viewModel.createFavorite()
}
Button(String(localized: "New Folder")) {
viewModel.createFolder()
}
Button(String(localized: "Link a Folder...")) {
addLinkedFolder()
}
}
}
.frame(maxWidth: .infinity, maxHeight: .infinity)
Expand Down
Loading