Added missed handler of server error when try to reset cloud password.

This commit is contained in:
23rd 2024-09-01 22:16:25 +03:00
parent e5c2133446
commit 8cd5e51982
2 changed files with 12 additions and 6 deletions

View file

@ -81,11 +81,6 @@ auto CloudPassword::stateCurrent() const
auto CloudPassword::resetPassword()
-> rpl::producer<CloudPassword::ResetRetryDate, QString> {
return [=](auto consumer) {
base::call_delayed(3000, [=] {
consumer.put_next_copy(base::unixtime::now() + 86400);
consumer.put_done();
});
return rpl::lifetime();
_api.request(MTPaccount_ResetPassword(
)).done([=](const MTPaccount_ResetPasswordResult &result) {
result.match([&](const MTPDaccount_resetPasswordOk &data) {

View file

@ -263,7 +263,18 @@ void Input::setupContent() {
}
close();
_requestLifetime = cloudPassword().resetPassword(
) | rpl::start_with_error_done([=](const QString &type) {
) | rpl::start_with_next_error_done([=](
Api::CloudPassword::ResetRetryDate retryDate) {
_requestLifetime.destroy();
const auto left = std::max(
retryDate - base::unixtime::now(),
60);
controller()->show(Ui::MakeInformBox(
tr::lng_cloud_password_reset_later(
tr::now,
lt_duration,
Ui::FormatResetCloudPasswordIn(left))));
}, [=](const QString &type) {
_requestLifetime.destroy();
}, [=] {
_requestLifetime.destroy();