Skip to content

Commit

Permalink
Add / Remove tag from tag groups from timeline view
Browse files Browse the repository at this point in the history
  • Loading branch information
Dimillian committed Oct 5, 2023
1 parent 1bf4d9e commit 1275b09
Show file tree
Hide file tree
Showing 20 changed files with 92 additions and 40 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -613,4 +613,5 @@
"add-tag-groups.edit.icon.field" = "Tag Group Icon (SFSymbol name)";
"add-tag-groups.edit.tags" = "Add tags to the group";
"add-tag-groups.edit.tags.add" = "Tag";
"tag-groups.edit.section.title" = "Add or remove tag from tag groups";

Original file line number Diff line number Diff line change
Expand Up @@ -607,9 +607,4 @@
"add-tag-groups.edit.icon.field" = "Icona del Grup d'Etiquetes (SFSymbol)";
"add-tag-groups.edit.tags" = "Afegeix etiquetes al grup";
"add-tag-groups.edit.tags.add" = "Etiqueta";

// MARK: Tag Groups
"add-tag-groups.edit.title.field" = "Tag Group Title";
"add-tag-groups.edit.icon.field" = "Tag Group Icon (SFSymbol name)";
"add-tag-groups.edit.tags" = "Add tags to the group";
"add-tag-groups.edit.tags.add" = "Tag";
"tag-groups.edit.section.title" = "Add or remove tag from tag groups";
Original file line number Diff line number Diff line change
Expand Up @@ -594,3 +594,4 @@
"add-tag-groups.edit.icon.field" = "Tag Group Icon (SFSymbol name)";
"add-tag-groups.edit.tags" = "Add tags to the group";
"add-tag-groups.edit.tags.add" = "Tag";
"tag-groups.edit.section.title" = "Add or remove tag from tag groups";
Original file line number Diff line number Diff line change
Expand Up @@ -608,3 +608,4 @@
"add-tag-groups.edit.icon.field" = "Tag Group Icon (SFSymbol name)";
"add-tag-groups.edit.tags" = "Add tags to the group";
"add-tag-groups.edit.tags.add" = "Tag";
"tag-groups.edit.section.title" = "Add or remove tag from tag groups";
Original file line number Diff line number Diff line change
Expand Up @@ -610,3 +610,4 @@
"add-tag-groups.edit.icon.field" = "Tag Group Icon (SFSymbol name)";
"add-tag-groups.edit.tags" = "Add tags to the group";
"add-tag-groups.edit.tags.add" = "Tag";
"tag-groups.edit.section.title" = "Add or remove tag from tag groups";
Original file line number Diff line number Diff line change
Expand Up @@ -609,3 +609,4 @@
"add-tag-groups.edit.icon.field" = "Icono del Grupo de Etiquetas (SFSymbol)";
"add-tag-groups.edit.tags" = "Añade etiquetas al grupo";
"add-tag-groups.edit.tags.add" = "Etiqueta";
"tag-groups.edit.section.title" = "Add or remove tag from tag groups";
Original file line number Diff line number Diff line change
Expand Up @@ -595,3 +595,4 @@
"add-tag-groups.edit.icon.field" = "Traola-sortaren ikonoa (SFSymbol izena)";
"add-tag-groups.edit.tags" = "Gehitu traolak sortara";
"add-tag-groups.edit.tags.add" = "Traola";
"tag-groups.edit.section.title" = "Add or remove tag from tag groups";
Original file line number Diff line number Diff line change
Expand Up @@ -604,3 +604,4 @@
"add-tag-groups.edit.icon.field" = "Tag Group Icon (SFSymbol name)";
"add-tag-groups.edit.tags" = "Add tags to the group";
"add-tag-groups.edit.tags.add" = "Tag";
"tag-groups.edit.section.title" = "Add or remove tag from tag groups";
Original file line number Diff line number Diff line change
Expand Up @@ -610,3 +610,4 @@
"add-tag-groups.edit.icon.field" = "Icona del gruppo (nome simbolo SF)";
"add-tag-groups.edit.tags" = "Tag aggiunti al gruppo";
"add-tag-groups.edit.tags.add" = "Tag";
"tag-groups.edit.section.title" = "Add or remove tag from tag groups";
Original file line number Diff line number Diff line change
Expand Up @@ -607,3 +607,4 @@
"add-tag-groups.edit.icon.field" = "Tag Group Icon (SFSymbol name)";
"add-tag-groups.edit.tags" = "Add tags to the group";
"add-tag-groups.edit.tags.add" = "Tag";
"tag-groups.edit.section.title" = "Add or remove tag from tag groups";
Original file line number Diff line number Diff line change
Expand Up @@ -611,3 +611,4 @@
"add-tag-groups.edit.icon.field" = "태그 모음 아이콘 (SF Symbol 이름)";
"add-tag-groups.edit.tags" = "모음에 포함할 태그";
"add-tag-groups.edit.tags.add" = "태그";
"tag-groups.edit.section.title" = "Add or remove tag from tag groups";
Original file line number Diff line number Diff line change
Expand Up @@ -608,3 +608,4 @@
"add-tag-groups.edit.icon.field" = "Tag Group Icon (SFSymbol name)";
"add-tag-groups.edit.tags" = "Add tags to the group";
"add-tag-groups.edit.tags.add" = "Tag";
"tag-groups.edit.section.title" = "Add or remove tag from tag groups";
Original file line number Diff line number Diff line change
Expand Up @@ -605,3 +605,4 @@
"add-tag-groups.edit.icon.field" = "Tag Group Icon (SFSymbol name)";
"add-tag-groups.edit.tags" = "Add tags to the group";
"add-tag-groups.edit.tags.add" = "Tag";
"tag-groups.edit.section.title" = "Add or remove tag from tag groups";
Original file line number Diff line number Diff line change
Expand Up @@ -597,4 +597,5 @@
"add-tag-groups.edit.icon.field" = "Ikona grupy (nazwa symbolu SF)";
"add-tag-groups.edit.tags" = "Dodaj hasztagi do grupy";
"add-tag-groups.edit.tags.add" = "Hasztag";
"tag-groups.edit.section.title" = "Add or remove tag from tag groups";

Original file line number Diff line number Diff line change
Expand Up @@ -608,3 +608,4 @@
"add-tag-groups.edit.icon.field" = "Tag Group Icon (SFSymbol name)";
"add-tag-groups.edit.tags" = "Add tags to the group";
"add-tag-groups.edit.tags.add" = "Tag";
"tag-groups.edit.section.title" = "Add or remove tag from tag groups";
Original file line number Diff line number Diff line change
Expand Up @@ -608,3 +608,4 @@
"add-tag-groups.edit.icon.field" = "Tag Group Icon (SFSymbol name)";
"add-tag-groups.edit.tags" = "Add tags to the group";
"add-tag-groups.edit.tags.add" = "Tag";
"tag-groups.edit.section.title" = "Add or remove tag from tag groups";
Original file line number Diff line number Diff line change
Expand Up @@ -609,4 +609,5 @@
"add-tag-groups.edit.icon.field" = "Tag Group Icon (SFSymbol name)";
"add-tag-groups.edit.tags" = "Add tags to the group";
"add-tag-groups.edit.tags.add" = "Tag";
"tag-groups.edit.section.title" = "Add or remove tag from tag groups";

Original file line number Diff line number Diff line change
Expand Up @@ -610,3 +610,4 @@
"add-tag-groups.edit.icon.field" = "标签组图标(SFSymbol)";
"add-tag-groups.edit.tags" = "将标签添加到组";
"add-tag-groups.edit.tags.add" = "标签";
"tag-groups.edit.section.title" = "Add or remove tag from tag groups";
Original file line number Diff line number Diff line change
Expand Up @@ -610,3 +610,4 @@
"add-tag-groups.edit.icon.field" = "標籤組圖示(SFSymbol 名稱)";
"add-tag-groups.edit.tags" = "把標籤加入標籤組";
"add-tag-groups.edit.tags.add" = "標籤";
"tag-groups.edit.section.title" = "Add or remove tag from tag groups";
107 changes: 73 additions & 34 deletions Packages/Timeline/Sources/Timeline/TimelineView.swift
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ import Shimmer
import Status
import SwiftUI
import SwiftUIIntrospect
import SwiftData

@MainActor
public struct TimelineView: View {
Expand All @@ -25,6 +26,9 @@ public struct TimelineView: View {
@Binding var timeline: TimelineFilter
@Binding var selectedTagGroup: TagGroup?
@Binding var scrollToTopSignal: Int

@Query(sort: \TagGroup.creationDate, order: .reverse) var tagGroups: [TagGroup]

private let canFilterTimeline: Bool

public init(timeline: Binding<TimelineFilter>,
Expand Down Expand Up @@ -88,40 +92,8 @@ public struct TimelineView: View {
}
}
.toolbar {
ToolbarItem(placement: .principal) {
VStack(alignment: .center) {
switch timeline {
case let .remoteLocal(_, filter):
Text(filter.localizedTitle())
.font(.headline)
Text(timeline.localizedTitle())
.font(.caption)
.foregroundColor(.gray)
default:
Text(timeline.localizedTitle())
.font(.headline)
}
}
.accessibilityRepresentation {
switch timeline {
case let .remoteLocal(_, filter):
if canFilterTimeline {
Menu(filter.localizedTitle()) {}
} else {
Text(filter.localizedTitle())
}
default:
if canFilterTimeline {
Menu(timeline.localizedTitle()) {}
} else {
Text(timeline.localizedTitle())
}
}
}
.accessibilityAddTraits(.isHeader)
.accessibilityRemoveTraits(.isButton)
.accessibilityRespondsToUserInteraction(canFilterTimeline)
}
toolbarTitleView
toolbarTagGroupButton
}
.navigationBarTitleDisplayMode(.inline)
.onAppear {
Expand Down Expand Up @@ -252,6 +224,73 @@ public struct TimelineView: View {
bottom: 8,
trailing: .layoutPadding))
}

@ToolbarContentBuilder
private var toolbarTitleView: some ToolbarContent {
ToolbarItem(placement: .principal) {
VStack(alignment: .center) {
switch timeline {
case let .remoteLocal(_, filter):
Text(filter.localizedTitle())
.font(.headline)
Text(timeline.localizedTitle())
.font(.caption)
.foregroundColor(.gray)
default:
Text(timeline.localizedTitle())
.font(.headline)
}
}
.accessibilityRepresentation {
switch timeline {
case let .remoteLocal(_, filter):
if canFilterTimeline {
Menu(filter.localizedTitle()) {}
} else {
Text(filter.localizedTitle())
}
default:
if canFilterTimeline {
Menu(timeline.localizedTitle()) {}
} else {
Text(timeline.localizedTitle())
}
}
}
.accessibilityAddTraits(.isHeader)
.accessibilityRemoveTraits(.isButton)
.accessibilityRespondsToUserInteraction(canFilterTimeline)
}
}

@ToolbarContentBuilder
private var toolbarTagGroupButton: some ToolbarContent {
ToolbarItem(placement: .topBarTrailing) {
switch timeline {
case let .hashtag(tag, _):
Menu {
Section("tag-groups.edit.section.title") {
ForEach(tagGroups) { group in
Button {
if group.tags.contains(tag) {
group.tags.removeAll(where: { $0 == tag })
} else {
group.tags.append(tag)
}
} label: {
Label(group.title,
systemImage: group.tags.contains(tag) ? "checkmark.rectangle.fill" : "checkmark.rectangle")
}
}
}
} label: {
Image(systemName: "ellipsis")
}
default:
EmptyView()
}
}
}

private var scrollToTopView: some View {
ScrollToView()
Expand Down

0 comments on commit 1275b09

Please sign in to comment.