Added state restoring to list for boost awarding members.

This commit is contained in:
23rd 2023-11-08 18:10:48 +03:00
parent 27e2a4b5d2
commit 9d4e1689fa
3 changed files with 18 additions and 4 deletions

View file

@ -367,7 +367,8 @@ void CreateGiveawayBox(
using Controller = Giveaway::AwardMembersListController;
auto listController = std::make_unique<Controller>(
controller,
peer);
peer,
state->selectedToAward);
listController->setCheckError(CreateErrorCallback(
state->apiOptions.giveawayAddPeersMax(),
tr::lng_giveaway_maximum_users_error));

View file

@ -107,8 +107,16 @@ void ChannelRow::rightActionStopLastRipple() {
AwardMembersListController::AwardMembersListController(
not_null<Window::SessionNavigation*> navigation,
not_null<PeerData*> peer)
: ParticipantsBoxController(navigation, peer, ParticipantsRole::Members) {
not_null<PeerData*> peer,
std::vector<not_null<PeerData*>> selected)
: ParticipantsBoxController(navigation, peer, ParticipantsRole::Members)
, _selected(std::move(selected)) {
}
void AwardMembersListController::prepare() {
ParticipantsBoxController::prepare();
delegate()->peerListAddSelectedPeers(base::take(_selected));
delegate()->peerListRefreshRows();
}
void AwardMembersListController::rowClicked(not_null<PeerListRow*> row) {

View file

@ -27,7 +27,10 @@ class AwardMembersListController : public ParticipantsBoxController {
public:
AwardMembersListController(
not_null<Window::SessionNavigation*> navigation,
not_null<PeerData*> peer);
not_null<PeerData*> peer,
std::vector<not_null<PeerData*>> selected);
void prepare() override;
void setCheckError(Fn<bool(int)> callback);
@ -41,6 +44,8 @@ public:
private:
Fn<bool(int)> _checkErrorCallback;
std::vector<not_null<PeerData*>> _selected;
};
class MyChannelsListController : public PeerListController {