Location Channels: boxed 'bookmarked' section; keep 'remove location access' outside box\n\n- Wrap bookmarked list in a rounded, subtle grey box within the list.\n- Ensure the 'remove location access' button is not inside the box and clears list row background.

This commit is contained in:
jack
2025-09-13 22:38:40 +02:00
parent 19533742ff
commit ea22ccda71
+10 -4
View File
@@ -21,7 +21,7 @@ struct LocationChannelsSheet: View {
VStack(alignment: .leading, spacing: 12) { VStack(alignment: .leading, spacing: 12) {
Text("#location channels") Text("#location channels")
.font(.system(size: 18, design: .monospaced)) .font(.system(size: 18, design: .monospaced))
Text("chat with people near you using geohash channels. only a coarse geohash is shared, never exact gps.") Text("chat with people near you using geohash channels. only a coarse geohash is shared, never exact gps. your IP address is hidden by routing all traffic over tor.")
.font(.system(size: 12, design: .monospaced)) .font(.system(size: 12, design: .monospaced))
.foregroundColor(.secondary) .foregroundColor(.secondary)
@@ -219,12 +219,11 @@ struct LocationChannelsSheet: View {
// Bookmarked geohashes // Bookmarked geohashes
if !bookmarks.bookmarks.isEmpty { if !bookmarks.bookmarks.isEmpty {
VStack(alignment: .leading, spacing: 6) { VStack(alignment: .leading, spacing: 8) {
Text("bookmarked") Text("bookmarked")
.font(.system(size: 12, design: .monospaced)) .font(.system(size: 12, design: .monospaced))
.foregroundColor(.secondary) .foregroundColor(.secondary)
} VStack(spacing: 6) {
.listRowSeparator(.hidden)
ForEach(bookmarks.bookmarks, id: \.self) { gh in ForEach(bookmarks.bookmarks, id: \.self) { gh in
let level = levelForLength(gh.count) let level = levelForLength(gh.count)
let channel = GeohashChannel(level: level, geohash: gh) let channel = GeohashChannel(level: level, geohash: gh)
@@ -258,6 +257,12 @@ struct LocationChannelsSheet: View {
.onAppear { bookmarks.resolveNameIfNeeded(for: gh) } .onAppear { bookmarks.resolveNameIfNeeded(for: gh) }
} }
} }
.padding(12)
.background(Color.secondary.opacity(0.12))
.cornerRadius(8)
}
.listRowSeparator(.hidden)
}
// Footer action inside the list // Footer action inside the list
if manager.permissionState == LocationChannelManager.PermissionState.authorized { if manager.permissionState == LocationChannelManager.PermissionState.authorized {
@@ -274,6 +279,7 @@ struct LocationChannelsSheet: View {
} }
.buttonStyle(.plain) .buttonStyle(.plain)
.listRowSeparator(.hidden) .listRowSeparator(.hidden)
.listRowBackground(Color.clear)
} }
} }
.listStyle(.plain) .listStyle(.plain)