Guard by widget instead of session.

This commit is contained in:
John Preston
2025-11-24 18:31:47 +04:00
parent 924ec592b1
commit ed97619c6c

View File

@@ -1062,14 +1062,15 @@ void Widget::setupTopBarSuggestions(not_null<Ui::VerticalLayout*> dialogs) {
return;
}
using namespace rpl::mappers;
crl::on_main(&session(), [=, session = &session()] {
session->api().authorizations().unreviewedChanges(
crl::on_main(dialogs, [=] {
const auto owner = &session().data();
session().api().authorizations().unreviewedChanges(
) | rpl::start_with_next([=] {
updateForceDisplayWide();
}, lifetime());
(session->data().chatsListLoaded(nullptr)
(owner->chatsListLoaded(nullptr)
? rpl::single<Data::Folder*>(nullptr)
: session->data().chatsListLoadedEvents()
: owner->chatsListLoadedEvents()
) | rpl::filter(_1 == nullptr) | rpl::map([=] {
auto on = rpl::combine(
controller()->activeChatsFilter(),
@@ -1090,9 +1091,9 @@ void Widget::setupTopBarSuggestions(not_null<Ui::VerticalLayout*> dialogs) {
&& wide
&& !search
&& !searchInPeer
&& (id == session->data().chatsFilters().defaultId());
&& (id == owner->chatsFilters().defaultId());
});
return TopBarSuggestionValue(dialogs, session, std::move(on));
return TopBarSuggestionValue(dialogs, &session(), std::move(on));
}) | rpl::flatten_latest() | rpl::start_with_next([=](
Ui::SlideWrap<Ui::RpWidget> *raw) {
if (raw) {