mirror of https://github.com/procxx/kepka.git
Fix crash in wrong confirm email button.
This commit is contained in:
parent
d1be4c6d96
commit
9c579e0d5b
|
@ -328,20 +328,23 @@ void SetupCloudPassword(not_null<Ui::VerticalLayout*> container) {
|
||||||
});
|
});
|
||||||
auto confirmation = rpl::single(
|
auto confirmation = rpl::single(
|
||||||
lang(lng_profile_loading)
|
lang(lng_profile_loading)
|
||||||
) | rpl::then(base::duplicate(
|
) | rpl::then(rpl::duplicate(
|
||||||
pattern
|
pattern
|
||||||
) | rpl::filter([](const QString &pattern) {
|
) | rpl::filter([](const QString &pattern) {
|
||||||
return !pattern.isEmpty();
|
return !pattern.isEmpty();
|
||||||
}) | rpl::map([](const QString &pattern) {
|
}) | rpl::map([](const QString &pattern) {
|
||||||
return lng_cloud_password_waiting_code(lt_email, pattern);
|
return lng_cloud_password_waiting_code(lt_email, pattern);
|
||||||
}));
|
}));
|
||||||
auto unconfirmed = rpl::single(
|
auto unconfirmed = rpl::duplicate(
|
||||||
true
|
|
||||||
) | rpl::then(base::duplicate(
|
|
||||||
pattern
|
pattern
|
||||||
) | rpl::map([](const QString &pattern) {
|
) | rpl::map([](const QString &pattern) {
|
||||||
return !pattern.isEmpty();
|
return !pattern.isEmpty();
|
||||||
}));
|
});
|
||||||
|
auto noconfirmed = rpl::single(
|
||||||
|
true
|
||||||
|
) | rpl::then(rpl::duplicate(
|
||||||
|
unconfirmed
|
||||||
|
));
|
||||||
const auto label = container->add(
|
const auto label = container->add(
|
||||||
object_ptr<Ui::SlideWrap<Ui::FlatLabel>>(
|
object_ptr<Ui::SlideWrap<Ui::FlatLabel>>(
|
||||||
container,
|
container,
|
||||||
|
@ -356,7 +359,7 @@ void SetupCloudPassword(not_null<Ui::VerticalLayout*> container) {
|
||||||
(st::settingsButton.height
|
(st::settingsButton.height
|
||||||
- st::settingsCloudPasswordLabel.style.font->height
|
- st::settingsCloudPasswordLabel.style.font->height
|
||||||
+ st::settingsButton.padding.bottom()))));
|
+ st::settingsButton.padding.bottom()))));
|
||||||
label->toggleOn(base::duplicate(unconfirmed))->setDuration(0);
|
label->toggleOn(base::duplicate(noconfirmed))->setDuration(0);
|
||||||
|
|
||||||
std::move(
|
std::move(
|
||||||
confirmation
|
confirmation
|
||||||
|
@ -379,10 +382,10 @@ void SetupCloudPassword(not_null<Ui::VerticalLayout*> container) {
|
||||||
std::move(text),
|
std::move(text),
|
||||||
st::settingsButton)));
|
st::settingsButton)));
|
||||||
change->toggleOn(rpl::duplicate(
|
change->toggleOn(rpl::duplicate(
|
||||||
unconfirmed
|
noconfirmed
|
||||||
) | rpl::map([](bool unconfirmed) {
|
) | rpl::map(
|
||||||
return !unconfirmed;
|
!_1
|
||||||
}))->setDuration(0);
|
))->setDuration(0);
|
||||||
change->entity()->addClickHandler([] {
|
change->entity()->addClickHandler([] {
|
||||||
if (CheckEditCloudPassword()) {
|
if (CheckEditCloudPassword()) {
|
||||||
EditCloudPassword();
|
EditCloudPassword();
|
||||||
|
@ -396,11 +399,16 @@ void SetupCloudPassword(not_null<Ui::VerticalLayout*> container) {
|
||||||
container,
|
container,
|
||||||
Lang::Viewer(lng_cloud_password_confirm),
|
Lang::Viewer(lng_cloud_password_confirm),
|
||||||
st::settingsButton)));
|
st::settingsButton)));
|
||||||
confirm->toggleOn(rpl::duplicate(
|
confirm->toggleOn(rpl::single(
|
||||||
|
false
|
||||||
|
) | rpl::then(rpl::duplicate(
|
||||||
unconfirmed
|
unconfirmed
|
||||||
))->setDuration(0);
|
)))->setDuration(0);
|
||||||
confirm->entity()->addClickHandler([] {
|
confirm->entity()->addClickHandler([] {
|
||||||
const auto state = Auth().api().passwordStateCurrent();
|
const auto state = Auth().api().passwordStateCurrent();
|
||||||
|
if (!state) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
auto validation = ConfirmRecoveryEmail(state->unconfirmedPattern);
|
auto validation = ConfirmRecoveryEmail(state->unconfirmedPattern);
|
||||||
|
|
||||||
std::move(
|
std::move(
|
||||||
|
@ -432,7 +440,7 @@ void SetupCloudPassword(not_null<Ui::VerticalLayout*> container) {
|
||||||
st::settingsButton)));
|
st::settingsButton)));
|
||||||
disable->toggleOn(rpl::combine(
|
disable->toggleOn(rpl::combine(
|
||||||
rpl::duplicate(has),
|
rpl::duplicate(has),
|
||||||
rpl::duplicate(unconfirmed),
|
rpl::duplicate(noconfirmed),
|
||||||
_1 && !_2));
|
_1 && !_2));
|
||||||
disable->entity()->addClickHandler(remove);
|
disable->entity()->addClickHandler(remove);
|
||||||
|
|
||||||
|
@ -445,7 +453,7 @@ void SetupCloudPassword(not_null<Ui::VerticalLayout*> container) {
|
||||||
st::settingsAttentionButton)));
|
st::settingsAttentionButton)));
|
||||||
abort->toggleOn(rpl::combine(
|
abort->toggleOn(rpl::combine(
|
||||||
rpl::duplicate(has),
|
rpl::duplicate(has),
|
||||||
rpl::duplicate(unconfirmed),
|
rpl::duplicate(noconfirmed),
|
||||||
_1 && _2));
|
_1 && _2));
|
||||||
abort->entity()->addClickHandler(remove);
|
abort->entity()->addClickHandler(remove);
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue