mirror of
https://github.com/simplex-chat/simplex-chat.git
synced 2024-12-17 17:20:21 +01:00
all preset tag and change collapsed icon on selection
This commit is contained in:
@@ -104,6 +104,7 @@ class ChatTagsModel: ObservableObject {
|
||||
static let shared = ChatTagsModel()
|
||||
|
||||
let presetTags: [ChatTagFilter] = [
|
||||
.presetTag(icon: "list.bullet", activeIcon: "list.bullet", text: NSLocalizedString("All", comment: "preset chat list"), enabled: true, filter: { c in true }),
|
||||
.presetTag(icon: "star", activeIcon: "star.fill", text: NSLocalizedString("Favorite", comment: "preset chat list"), enabled: false, filter: { c in c.chatSettings?.favorite ?? false }),
|
||||
.presetTag(icon: "person", activeIcon: "person.fill", text: NSLocalizedString("Contacts", comment: "preset chat list"), enabled: false, filter: { if case .direct = $0 { true } else { false }}),
|
||||
.presetTag(icon: "person.2", activeIcon: "person.2.fill", text: NSLocalizedString("Groups", comment: "preset chat list"), enabled: false, filter: { filterGroupChat($0) }),
|
||||
|
||||
@@ -754,7 +754,8 @@ struct ChatTagsView: View {
|
||||
}
|
||||
|
||||
@ViewBuilder private func collapsedTagsFilterView(_ filters: [ChatTagFilter]) -> some View {
|
||||
let presetFilterIsSelected = filters.contains(where: { $0 == chatTagsModel.selectedTag })
|
||||
let selectedPresetTag = filters.first(where: { $0 == chatTagsModel.selectedTag })
|
||||
let presetFilterIsSelected = selectedPresetTag != nil || chatTagsModel.selectedTag == nil
|
||||
let color: Color = presetFilterIsSelected ? .accentColor : .secondary
|
||||
Menu {
|
||||
ForEach(filters, id: \.id) { tag in
|
||||
@@ -768,7 +769,10 @@ struct ChatTagsView: View {
|
||||
}
|
||||
}
|
||||
} label: {
|
||||
Image(systemName: "list.bullet")
|
||||
Image(systemName: selectedPresetTag?.getIcon(active: true) ?? "list.bullet")
|
||||
.resizable()
|
||||
.scaledToFit()
|
||||
.frame(width: 22, height: 20)
|
||||
.foregroundColor(color)
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user