Show joined list on permanent link "N joined" click.

This commit is contained in:
John Preston 2021-11-02 10:10:48 +04:00
parent e4ac810773
commit 81ff4d7497
2 changed files with 20 additions and 3 deletions

View File

@ -884,6 +884,9 @@ void AddPermanentLinkBlock(
const auto value = container->lifetime().make_state<
rpl::variable<LinkData>
>();
const auto currentLinkFields = container->lifetime().make_state<
Api::InviteLink
>(Api::InviteLink{ .admin = admin });
if (admin->isSelf()) {
*value = peer->session().changes().peerFlagsValue(
peer,
@ -892,11 +895,19 @@ void AddPermanentLinkBlock(
const auto &links = peer->session().api().inviteLinks().myLinks(
peer).links;
const auto link = links.empty() ? nullptr : &links.front();
return (link && link->permanent && !link->revoked)
? LinkData{ link->link, link->usage }
: LinkData();
if (link && link->permanent && !link->revoked) {
*currentLinkFields = *link;
return LinkData{ link->link, link->usage };
}
return LinkData();
});
} else {
rpl::duplicate(
fromList
) | rpl::start_with_next([=](const Api::InviteLink &link) {
*currentLinkFields = link;
}, container->lifetime());
*value = std::move(
fromList
) | rpl::map([](const Api::InviteLink &link) {
@ -1055,6 +1066,9 @@ void AddPermanentLinkBlock(
state->content.value(),
st::inviteLinkJoinedRowPadding
)->setClickedCallback([=] {
if (!currentLinkFields->link.isEmpty()) {
ShowInviteLinkBox(peer, *currentLinkFields);
}
});
container->add(object_ptr<Ui::SlideWrap<Ui::FixedHeightWidget>>(

View File

@ -118,6 +118,9 @@ not_null<AbstractButton*> AddJoinedCountButton(
result->setAttribute(
Qt::WA_TransparentForMouseEvents,
!state->content.count);
if (!state->content.count) {
result->clearState();
}
const auto &st = st::inviteLinkUserpics;
const auto imageWidth = !state->content.userpics.isNull()
? state->content.userpics.width() / style::DevicePixelRatio()