From 9d2e8eca16582a6b4afe472f31ea5cc5fee394f2 Mon Sep 17 00:00:00 2001 From: Marcus Kida Date: Mon, 8 May 2023 17:24:41 +0200 Subject: [PATCH] Improve UserView button behavior (IOS-140) --- .../View/TableviewCell/UserTableViewCell+ViewModel.swift | 3 +-- MastodonSDK/Sources/MastodonUI/View/Content/UserView.swift | 6 +++++- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/Mastodon/Scene/Share/View/TableviewCell/UserTableViewCell+ViewModel.swift b/Mastodon/Scene/Share/View/TableviewCell/UserTableViewCell+ViewModel.swift index c8d2f2cd0..2defc8296 100644 --- a/Mastodon/Scene/Share/View/TableviewCell/UserTableViewCell+ViewModel.swift +++ b/Mastodon/Scene/Share/View/TableviewCell/UserTableViewCell+ViewModel.swift @@ -56,14 +56,13 @@ extension UserTableViewCell { viewModel.followedUsers, viewModel.blockedUsers ) - .debounce(for: 0.1, scheduler: DispatchQueue.main) .receive(on: DispatchQueue.main) .sink { [weak self] followed, blocked in if blocked.contains(user.id) { self?.userView.setButtonState(.blocked) } else if followed.contains(user.id) { self?.userView.setButtonState(.unfollow) - } else { + } else if user != me { self?.userView.setButtonState(.follow) } diff --git a/MastodonSDK/Sources/MastodonUI/View/Content/UserView.swift b/MastodonSDK/Sources/MastodonUI/View/Content/UserView.swift index 120a3bbeb..b02fd3602 100644 --- a/MastodonSDK/Sources/MastodonUI/View/Content/UserView.swift +++ b/MastodonSDK/Sources/MastodonUI/View/Content/UserView.swift @@ -270,7 +270,9 @@ public extension UserView { switch state { case .loading: - followButton.isHidden = true + followButton.isHidden = false + followButton.setTitle(nil, for: .normal) + followButton.setBackgroundColor(Asset.Colors.Button.disabled.color, for: .normal) case .follow: followButton.isHidden = false @@ -292,6 +294,8 @@ public extension UserView { case .none: followButton.isHidden = true + followButton.setTitle(nil, for: .normal) + followButton.setBackgroundColor(.clear, for: .normal) } followButton.addTarget(self, action: #selector(didTapButton), for: .touchUpInside)