Fix tag follow button

This commit is contained in:
Thomas Ricouard 2024-01-05 21:28:46 +01:00
parent ef204cf6fd
commit f401d4094d
3 changed files with 10 additions and 3 deletions

View file

@ -16,7 +16,8 @@ public struct Tag: Codable, Identifiable, Equatable, Hashable {
} }
public static func == (lhs: Tag, rhs: Tag) -> Bool { public static func == (lhs: Tag, rhs: Tag) -> Bool {
lhs.name == rhs.name lhs.name == rhs.name &&
lhs.following == rhs.following
} }
public var id: String { public var id: String {

View file

@ -144,7 +144,7 @@ public struct StatusRowView: View {
#endif #endif
.listRowInsets(.init(top: 12, .listRowInsets(.init(top: 12,
leading: .layoutPadding, leading: .layoutPadding,
bottom: 12, bottom: 6,
trailing: .layoutPadding)) trailing: .layoutPadding))
.accessibilityElement(children: isFocused ? .contain : .combine) .accessibilityElement(children: isFocused ? .contain : .combine)
.accessibilityLabel(isFocused == false && accessibilityVoiceOverEnabled .accessibilityLabel(isFocused == false && accessibilityVoiceOverEnabled

View file

@ -8,6 +8,8 @@ struct TimelineTagHeaderView: View {
@Binding var tag: Tag? @Binding var tag: Tag?
@State var isLoading: Bool = false
var body: some View { var body: some View {
if let tag { if let tag {
TimelineHeaderView { TimelineHeaderView {
@ -26,15 +28,19 @@ struct TimelineTagHeaderView: View {
Spacer() Spacer()
Button { Button {
Task { Task {
isLoading = true
if tag.following { if tag.following {
self.tag = await account.unfollowTag(id: tag.name) self.tag = await account.unfollowTag(id: tag.name)
} else { } else {
self.tag = await account.followTag(id: tag.name) self.tag = await account.followTag(id: tag.name)
} }
isLoading = false
} }
} label: { } label: {
Text(tag.following ? "account.follow.following" : "account.follow.follow") Text(tag.following ? "account.follow.following" : "account.follow.follow")
}.buttonStyle(.bordered) }
.disabled(isLoading)
.buttonStyle(.bordered)
} }
} }
} }