commit 3e5029a4ad114e7caea1edc4ccf8da33c13da40f
parent 05b2cb6376805ca8177e4647f9f79aa9508efb8f
Author: ericholguin <eric.holguinsanchez@gmail.com>
Date: Sat, 2 Dec 2023 11:56:25 -0700
ui: allow users to collapse suggested hashtag view
Closes: https://github.com/damus-io/damus/pull/1789
Changelog-Added: Add ability to hide suggested hashtags
Signed-off-by: William Casarin <jb55@jb55.com>
Diffstat:
2 files changed, 25 insertions(+), 5 deletions(-)
diff --git a/damus/Views/SearchHomeView.swift b/damus/Views/SearchHomeView.swift
@@ -78,6 +78,10 @@ struct SearchHomeView: View {
content: {
AnyView(VStack {
SuggestedHashtagsView(damus_state: damus_state, max_items: 5, events: model.events)
+
+ Divider()
+ .frame(height: 1)
+
HStack {
Image("notes.fill")
Text(NSLocalizedString("All recent notes", comment: "A label indicating that the notes being displayed below it are all recent notes"))
diff --git a/damus/Views/SuggestedHashtagsView.swift b/damus/Views/SuggestedHashtagsView.swift
@@ -24,6 +24,7 @@ struct SuggestedHashtagsView: View {
let damus_state: DamusState
@StateObject var events: EventHolder
+ @SceneStorage("SuggestedHashtagsView.show_suggested_hashtags") var show_suggested_hashtags : Bool = true
var item_limit: Int?
let suggested_hashtags: [String]
var hashtags_with_count_to_display: [HashtagWithUserCount] {
@@ -58,16 +59,31 @@ struct SuggestedHashtagsView: View {
Image(systemName: "sparkles")
Text(NSLocalizedString("Suggested hashtags", comment: "A label indicating that the items below it are suggested hashtags"))
Spacer()
+ Button(action: {
+ withAnimation(.easeOut(duration: 0.2)) {
+ show_suggested_hashtags.toggle()
+ }
+ }) {
+ if show_suggested_hashtags {
+ Image(systemName: "rectangle.compress.vertical")
+ .foregroundStyle(PinkGradient)
+ } else {
+ Image(systemName: "rectangle.expand.vertical")
+ .foregroundStyle(PinkGradient)
+ }
+ }
}
.foregroundColor(.secondary)
- .padding(.bottom, 10)
+ .padding(.vertical, 10)
- ForEach(hashtags_with_count_to_display,
- id: \.self) { hashtag_with_count in
- SuggestedHashtagView(damus_state: damus_state, hashtag: hashtag_with_count.hashtag, count: hashtag_with_count.count)
+ if show_suggested_hashtags {
+ ForEach(hashtags_with_count_to_display,
+ id: \.self) { hashtag_with_count in
+ SuggestedHashtagView(damus_state: damus_state, hashtag: hashtag_with_count.hashtag, count: hashtag_with_count.count)
+ }
}
}
- .padding()
+ .padding(.horizontal)
}
private struct SuggestedHashtagView: View { // Purposefully private to SuggestedHashtagsView because it assumes the same 24h window