2
0
mirror of https://github.com/kotatogram/kotatogram-desktop synced 2025-08-31 22:55:11 +00:00

Show "premium required" information in chat.

This commit is contained in:
John Preston
2024-01-11 23:20:36 +04:00
parent c765bee0cd
commit e5cda0e2b1
27 changed files with 566 additions and 200 deletions

View File

@@ -217,13 +217,24 @@ inline auto DefaultRestrictionValue(
using namespace rpl::mappers;
const auto other = rights & ~(ChatRestriction::SendVoiceMessages
| ChatRestriction::SendVideoMessages);
auto allowedAny = PeerFlagsValue(
user,
(UserDataFlag::Deleted | UserDataFlag::MeRequiresPremiumToWrite)
) | rpl::map([=](UserDataFlags flags) {
return (flags & UserDataFlag::Deleted)
? rpl::single(false)
: !(flags & UserDataFlag::MeRequiresPremiumToWrite)
? rpl::single(true)
: AmPremiumValue(&user->session());
}) | rpl::flatten_latest();
if (other) {
return PeerFlagValue(user, UserDataFlag::Deleted)
| rpl::map(!_1);
return std::move(allowedAny);
}
const auto mask = UserDataFlag::Deleted
| UserDataFlag::VoiceMessagesForbidden;
return PeerFlagsValue(user, mask) | rpl::map(!_1);
const auto mask = UserDataFlag::VoiceMessagesForbidden;
return rpl::combine(
std::move(allowedAny),
PeerFlagValue(user, mask),
_1 && !_2);
} else if (const auto chat = peer->asChat()) {
const auto mask = ChatDataFlag()
| ChatDataFlag::Deactivated