Show reactions in story viewers list.

This commit is contained in:
John Preston 2023-08-08 13:02:02 +02:00
parent 13f67d68c4
commit e6ad367c55
4 changed files with 11 additions and 8 deletions

View File

@ -9,6 +9,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
#include "api/api_who_reacted.h" // FormatReadDate.
#include "chat_helpers/compose/compose_show.h"
#include "data/stickers/data_custom_emoji.h"
#include "data/data_peer.h"
#include "data/data_stories.h"
#include "main/main_session.h"
@ -258,7 +259,7 @@ void RecentViews::updateText() {
const auto text = _data.total
? (tr::lng_stories_views(tr::now, lt_count, _data.total)
+ (_data.reactions
? (u" "_q + QChar(10084) + QString::number(_data.reactions))
? (u" "_q + QChar(10084) + QString::number(_data.reactions))
: QString()))
: tr::lng_stories_no_views(tr::now);
_text.setText(st::defaultTextStyle, text);
@ -281,6 +282,7 @@ void RecentViews::showMenu() {
_widget.get(),
st::storiesViewsMenu);
auto count = 0;
const auto session = &_controller->story()->session();
const auto added = std::min(int(views.list.size()), kAddPerPage);
const auto add = std::min(views.total, kAddPerPage);
const auto now = QDateTime::currentDateTime();
@ -291,7 +293,7 @@ void RecentViews::showMenu() {
}
}
while (count++ < add) {
addMenuRowPlaceholder();
addMenuRowPlaceholder(session);
}
rpl::merge(
_controller->moreViewsLoaded(),
@ -366,7 +368,7 @@ void RecentViews::addMenuRow(Data::StoryView entry, const QDateTime &now) {
auto customEntityData = data.customEntityData;
auto action = base::make_unique_q<Ui::WhoReactedEntryAction>(
_menu->menu(),
nullptr,
Data::ReactedMenuFactory(&entry.peer->session()),
_menu->menu()->st(),
prepare(view));
const auto raw = action.get();
@ -390,10 +392,10 @@ void RecentViews::addMenuRow(Data::StoryView entry, const QDateTime &now) {
}
}
void RecentViews::addMenuRowPlaceholder() {
void RecentViews::addMenuRowPlaceholder(not_null<Main::Session*> session) {
auto action = base::make_unique_q<Ui::WhoReactedEntryAction>(
_menu->menu(),
nullptr,
Data::ReactedMenuFactory(session),
_menu->menu()->st(),
Ui::WhoReactedEntryData{ .preloader = true });
const auto raw = action.get();

View File

@ -70,7 +70,7 @@ private:
void showMenu();
void addMenuRow(Data::StoryView entry, const QDateTime &now);
void addMenuRowPlaceholder();
void addMenuRowPlaceholder(not_null<Main::Session*> session);
void rebuildMenuTail();
void subscribeToMenuUserpicsLoading(not_null<Main::Session*> session);
void refreshClickHandler();

View File

@ -778,8 +778,9 @@ storiesViewsMenu: PopupMenu(storiesPopupMenuWithIcons) {
scrollPadding: margins(0px, 6px, 0px, 4px);
maxHeight: 320px;
menu: Menu(storiesMenuWithIcons) {
itemPadding: margins(54px, 8px, 17px, 8px);
widthMin: 215px;
widthMax: 215px;
widthMax: 250px;
}
radius: 7px;
}

View File

@ -617,7 +617,7 @@ void WhoReactedEntryAction::paint(Painter &&p) {
.textColor = (selected ? _st.itemFgOver : _st.itemFg)->c,
.now = crl::now(),
.position = QPoint(
width() - _st.itemPadding.right() - (size / ratio) + skip,
width() - _st.itemPadding.right() - size + skip,
(height() - _customSize) / 2),
});
}