From 60f6ea3252310439866e6656a031f4c78f64fc18 Mon Sep 17 00:00:00 2001 From: John Preston Date: Tue, 5 Aug 2025 16:22:02 +0400 Subject: [PATCH] Show informative empty posts search. --- Telegram/SourceFiles/dialogs/dialogs_search_posts.cpp | 4 +++- Telegram/SourceFiles/dialogs/ui/dialogs_suggestions.cpp | 4 ++++ Telegram/SourceFiles/dialogs/ui/posts_search_intro.cpp | 7 +++++++ 3 files changed, 14 insertions(+), 1 deletion(-) diff --git a/Telegram/SourceFiles/dialogs/dialogs_search_posts.cpp b/Telegram/SourceFiles/dialogs/dialogs_search_posts.cpp index f5211b879b..626c96151f 100644 --- a/Telegram/SourceFiles/dialogs/dialogs_search_posts.cpp +++ b/Telegram/SourceFiles/dialogs/dialogs_search_posts.cpp @@ -117,7 +117,9 @@ void PostsSearch::pushStateUpdate(const Entry &entry) { } return; } - if (!entry.pages.empty() || entry.loaded) { + const auto empty = entry.pages.empty() + || (entry.pages.size() == 1 && entry.pages.front().empty()); + if (!empty || (entry.loaded && !_query->isEmpty())) { if (!entry.pages.empty()) { ++entry.pagesPushed; } diff --git a/Telegram/SourceFiles/dialogs/ui/dialogs_suggestions.cpp b/Telegram/SourceFiles/dialogs/ui/dialogs_suggestions.cpp index cbc30b9646..2b18340e17 100644 --- a/Telegram/SourceFiles/dialogs/ui/dialogs_suggestions.cpp +++ b/Telegram/SourceFiles/dialogs/ui/dialogs_suggestions.cpp @@ -2020,6 +2020,10 @@ void Suggestions::setupPostsIntro(const PostsSearchIntroState &intro) { } }, _postsSearchIntro->lifetime()); + _postsScroll->heightValue() | rpl::start_with_next([=](int height) { + _postsWrap->resize(_postsWrap->width(), height); + }, _postsSearchIntro->lifetime()); + _postsSearchIntro->show(); updateControlsGeometry(); } diff --git a/Telegram/SourceFiles/dialogs/ui/posts_search_intro.cpp b/Telegram/SourceFiles/dialogs/ui/posts_search_intro.cpp index 143fe48f54..086976f035 100644 --- a/Telegram/SourceFiles/dialogs/ui/posts_search_intro.cpp +++ b/Telegram/SourceFiles/dialogs/ui/posts_search_intro.cpp @@ -198,6 +198,12 @@ void PostsSearchIntro::setup() { _state.value( ) | rpl::start_with_next([=](const PostsSearchIntroState &state) { + if (state.query.trimmed().isEmpty()) { + _button->resize(_button->width(), 0); + _content->resizeToWidth(width()); + return; + } + auto copy = _button->children(); for (const auto child : copy) { delete child; @@ -232,6 +238,7 @@ void PostsSearchIntro::setup() { st::resaleButtonTitle, st::resaleButtonSubtitle); } + _button->resize(_button->width(), st::postsSearchIntroButton.height); _content->resizeToWidth(width()); }, _button->lifetime()); }