If only selfie is missing use special phrases.

This commit is contained in:
John Preston
2018-07-10 12:50:11 +03:00
parent effa277a3b
commit 9929bfb281
3 changed files with 21 additions and 0 deletions
@@ -264,6 +264,17 @@ ScopeRow ComputeScopeRow(const Scope &scope) {
ranges::for_each(scope.documents, addValueErrors);
addValueErrors(scope.fields);
row.error = errors.join('\n');
if (row.error.isEmpty()
&& row.ready.isEmpty()
&& scope.type == Scope::Type::Identity
&& scope.selfieRequired) {
auto noSelfieScope = scope;
noSelfieScope.selfieRequired = false;
if (!ComputeScopeRowReadyString(noSelfieScope).isEmpty()) {
// Only selfie is missing.
row.description = lang(lng_passport_identity_selfie);
}
}
return row;
};
switch (scope.type) {
@@ -813,6 +813,15 @@ int PanelController::findNonEmptyDocumentIndex(const Scope &scope) const {
if (i != end(documents)) {
return (i - begin(documents));
}
// If we have a document where only selfie is not filled - return it.
const auto j = ranges::find_if(
documents,
[&](not_null<const Value*> document) {
return document->scansAreFilled(false);
});
if (j != end(documents)) {
return (j - begin(documents));
}
return -1;
}