diff --git a/Telegram/SourceFiles/info/bot/earn/info_bot_earn_list.cpp b/Telegram/SourceFiles/info/bot/earn/info_bot_earn_list.cpp index 360c9c7f0..a4440269c 100644 --- a/Telegram/SourceFiles/info/bot/earn/info_bot_earn_list.cpp +++ b/Telegram/SourceFiles/info/bot/earn/info_bot_earn_list.cpp @@ -244,9 +244,7 @@ void InnerWidget::fill() { ), rpl::duplicate(availableBalanceValue), rpl::duplicate(dateValue), - rpl::duplicate(dateValue) | rpl::map([=](const QDateTime &dt) { - return !dt.isNull() || (!_state.isWithdrawalEnabled); - }), + _state.isWithdrawalEnabled, rpl::duplicate( availableBalanceValue ) | rpl::map([=](StarsAmount v) { diff --git a/Telegram/SourceFiles/info/channel_statistics/earn/info_channel_earn_list.cpp b/Telegram/SourceFiles/info/channel_statistics/earn/info_channel_earn_list.cpp index a46d5f375..ceb47e502 100644 --- a/Telegram/SourceFiles/info/channel_statistics/earn/info_channel_earn_list.cpp +++ b/Telegram/SourceFiles/info/channel_statistics/earn/info_channel_earn_list.cpp @@ -954,10 +954,7 @@ void InnerWidget::fill() { ), rpl::duplicate(availableBalanceValue), rpl::duplicate(dateValue), - std::move(dateValue) | rpl::map([=](const QDateTime &dt) { - return !dt.isNull() - || (!_state.creditsEarn.isWithdrawalEnabled); - }), + _state.creditsEarn.isWithdrawalEnabled, rpl::duplicate( availableBalanceValue ) | rpl::map(creditsToUsdMap)); diff --git a/Telegram/SourceFiles/settings/settings_credits_graphics.cpp b/Telegram/SourceFiles/settings/settings_credits_graphics.cpp index 3a55dfbfa..4ab6775e6 100644 --- a/Telegram/SourceFiles/settings/settings_credits_graphics.cpp +++ b/Telegram/SourceFiles/settings/settings_credits_graphics.cpp @@ -1873,7 +1873,7 @@ void AddWithdrawalWidget( rpl::producer secondButtonUrl, rpl::producer availableBalanceValue, rpl::producer dateValue, - rpl::producer lockedValue, + bool withdrawalEnabled, rpl::producer usdValue) { Ui::AddSkip(container); @@ -1915,17 +1915,22 @@ void AddWithdrawalWidget( Ui::AddSkip(container); + const auto withdrawalWrap = container->add( + object_ptr>( + container, + object_ptr(container))); const auto input = Ui::AddInputFieldForCredits( - container, + withdrawalWrap->entity(), rpl::duplicate(availableBalanceValue)); - Ui::AddSkip(container); - Ui::AddSkip(container); + Ui::AddSkip(withdrawalWrap->entity()); + Ui::AddSkip(withdrawalWrap->entity()); const auto &stButton = st::defaultActiveButton; - const auto buttonsContainer = container->add( - Ui::CreateSkipWidget(container, stButton.height), + const auto buttonsContainer = withdrawalWrap->entity()->add( + Ui::CreateSkipWidget(withdrawalWrap->entity(), stButton.height), st::boxRowPadding); + withdrawalWrap->toggle(withdrawalEnabled, anim::type::instant); const auto button = Ui::CreateChild( buttonsContainer, @@ -1959,6 +1964,10 @@ void AddWithdrawalWidget( } }, buttonsContainer->lifetime()); + auto lockedValue = rpl::duplicate( + dateValue + ) | rpl::map([](const QDateTime &dt) { return !dt.isNull(); }); + rpl::duplicate( lockedValue ) | rpl::start_with_next([=](bool v) { diff --git a/Telegram/SourceFiles/settings/settings_credits_graphics.h b/Telegram/SourceFiles/settings/settings_credits_graphics.h index 0de7cb925..9a40d0aca 100644 --- a/Telegram/SourceFiles/settings/settings_credits_graphics.h +++ b/Telegram/SourceFiles/settings/settings_credits_graphics.h @@ -76,7 +76,7 @@ void AddWithdrawalWidget( rpl::producer secondButtonUrl, rpl::producer availableBalanceValue, rpl::producer dateValue, - rpl::producer lockedValue, + bool withdrawalEnabled, rpl::producer usdValue); void ReceiptCreditsBox(