diff --git a/Packages/Models/Sources/Models/Tag.swift b/Packages/Models/Sources/Models/Tag.swift index 5f686c61..7c5095c8 100644 --- a/Packages/Models/Sources/Models/Tag.swift +++ b/Packages/Models/Sources/Models/Tag.swift @@ -16,7 +16,8 @@ public struct Tag: Codable, Identifiable, Equatable, Hashable { } public static func == (lhs: Tag, rhs: Tag) -> Bool { - lhs.name == rhs.name + lhs.name == rhs.name && + lhs.following == rhs.following } public var id: String { diff --git a/Packages/Status/Sources/Status/Row/StatusRowView.swift b/Packages/Status/Sources/Status/Row/StatusRowView.swift index c9a32c66..e0b1c533 100644 --- a/Packages/Status/Sources/Status/Row/StatusRowView.swift +++ b/Packages/Status/Sources/Status/Row/StatusRowView.swift @@ -144,7 +144,7 @@ public struct StatusRowView: View { #endif .listRowInsets(.init(top: 12, leading: .layoutPadding, - bottom: 12, + bottom: 6, trailing: .layoutPadding)) .accessibilityElement(children: isFocused ? .contain : .combine) .accessibilityLabel(isFocused == false && accessibilityVoiceOverEnabled diff --git a/Packages/Timeline/Sources/Timeline/View/TimelineTagHeaderView.swift b/Packages/Timeline/Sources/Timeline/View/TimelineTagHeaderView.swift index 49c7b861..7347fc70 100644 --- a/Packages/Timeline/Sources/Timeline/View/TimelineTagHeaderView.swift +++ b/Packages/Timeline/Sources/Timeline/View/TimelineTagHeaderView.swift @@ -8,6 +8,8 @@ struct TimelineTagHeaderView: View { @Binding var tag: Tag? + @State var isLoading: Bool = false + var body: some View { if let tag { TimelineHeaderView { @@ -26,15 +28,19 @@ struct TimelineTagHeaderView: View { Spacer() Button { Task { + isLoading = true if tag.following { self.tag = await account.unfollowTag(id: tag.name) } else { self.tag = await account.followTag(id: tag.name) } + isLoading = false } } label: { Text(tag.following ? "account.follow.following" : "account.follow.follow") - }.buttonStyle(.bordered) + } + .disabled(isLoading) + .buttonStyle(.bordered) } } }