Guarded personal channel info from possible crash on deleting message.

This commit is contained in:
23rd 2024-05-03 17:54:51 +03:00 committed by John Preston
parent de1f222bac
commit 1709fcd0df

View file

@ -1365,8 +1365,20 @@ object_ptr<Ui::RpWidget> DetailsFiller::setupPersonalChannel(
const auto previewView = lifetime.make_state<MessageView>();
preview->resize(0, st::infoLabeled.style.font->height);
preview->paintRequest(
) | rpl::start_with_next([=](const QRect &rect) {
) | rpl::start_with_next([=, fullId = item->fullId()](
const QRect &rect) {
auto p = Painter(preview);
const auto item = user->session().data().message(fullId);
if (!item) {
p.setPen(st::infoPersonalChannelDateLabel.textFg);
p.setBrush(Qt::NoBrush);
p.setFont(st::infoPersonalChannelDateLabel.style.font);
p.drawText(
preview->rect(),
tr::lng_deleted_message(tr::now),
style::al_left);
return;
}
if (previewView->prepared(item, nullptr)) {
previewView->paint(p, preview->rect(), {
.st = &st::defaultDialogRow,