Fixed creation of new filter with selected dialog from menu.

This commit is contained in:
23rd 2025-05-07 11:47:00 +03:00
parent f4658728e8
commit 4560a83441

View file

@ -316,16 +316,23 @@ void FillChooseFilterMenu(
return; return;
} }
const auto session = &strong->session(); const auto session = &strong->session();
const auto count = session->data().chatsFilters().list().size(); const auto &list = session->data().chatsFilters().list();
if ((count - 1) >= limit()) { if ((list.size() - 1) >= limit()) {
return; return;
} }
const auto chooseNextId = [&] {
auto id = 2;
while (ranges::contains(list, id, &Data::ChatFilter::id)) {
++id;
}
return id;
};
auto filter = auto filter =
Data::ChatFilter({}, {}, {}, {}, {}, { history }, {}, {}); Data::ChatFilter({}, {}, {}, {}, {}, { history }, {}, {});
const auto send = [=](const Data::ChatFilter &filter) { const auto send = [=](const Data::ChatFilter &filter) {
session->api().request(MTPmessages_UpdateDialogFilter( session->api().request(MTPmessages_UpdateDialogFilter(
MTP_flags(MTPmessages_UpdateDialogFilter::Flag::f_filter), MTP_flags(MTPmessages_UpdateDialogFilter::Flag::f_filter),
MTP_int(count), MTP_int(chooseNextId()),
filter.tl() filter.tl()
)).done([=] { )).done([=] {
session->data().chatsFilters().reload(); session->data().chatsFilters().reload();