Remove repeated demo notes from product screens (#28)
This commit is contained in:
1 parent
2ae8086d40
commit
54f50ad6b7
16 files changed
+86
-306
No files matched your search
@@ -238,3 +238,21 @@ tests were needed. The PR is not merged.
|
|||||||
unmerged. Task and PR have frontend label, tech owner and SXCHNGE project.
|
unmerged. Task and PR have frontend label, tech owner and SXCHNGE project.
|
||||||
Browser demo walkthrough also completed exchange and payout, confirming source
|
Browser demo walkthrough also completed exchange and payout, confirming source
|
||||||
currency handoffs and exact fee/debit/receipt values on the result screen.
|
currency handoffs and exact fee/debit/receipt values on the result screen.
|
||||||
|
|
||||||
|
### Workspace copy cleanup — follow-up to #28
|
||||||
|
|
||||||
|
At the user's request, removed repeated demo/preview banners from the workspace,
|
||||||
|
transaction forms, auth, email confirmation, identity and limits. Confirmation
|
||||||
|
and result copy now uses ordinary product wording in EN/RU; the mobile wordmark
|
||||||
|
remains without the extra note. Removed unused localization entries and duplicate
|
||||||
|
email-state copy. Existing journey measurement, simulation flags, service behavior,
|
||||||
|
funds explanations and recovery controls are unchanged. Development constraints
|
||||||
|
belong in this record and package README, not repeated throughout the product UI.
|
||||||
|
|
||||||
|
Delivery continues in [PR #29](https://git.sendico.io/tech/sxchnge/pulls/29) on
|
||||||
|
`workspace-28`. This copy change does not connect real authentication, email,
|
||||||
|
payment, support or backoffice services.
|
||||||
|
Validation: all 115 frontend tests, app analysis, app Dart formatting, web build
|
||||||
|
and diff checks pass. Updated existing copy expectations; telemetry tests still
|
||||||
|
verify simulated events never count as real business success. No new click events
|
||||||
|
were needed for this presentation-only cleanup.
|
||||||
@@ -133,11 +133,6 @@ class _AuthFormState extends State<AuthForm> {
|
|||||||
),
|
),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
const SizedBox(height: 16),
|
|
||||||
Text(
|
|
||||||
l.earlyPreview,
|
|
||||||
style: text.bodySmall!.copyWith(color: colors.onSurfaceVariant),
|
|
||||||
),
|
|
||||||
const SizedBox(height: 24),
|
const SizedBox(height: 24),
|
||||||
Text(
|
Text(
|
||||||
_signUp ? l.signupHeading : l.loginHeading,
|
_signUp ? l.signupHeading : l.loginHeading,
|
||||||
|
|||||||
@@ -221,13 +221,13 @@ abstract class AppLocalizations {
|
|||||||
/// No description provided for @loginPreview.
|
/// No description provided for @loginPreview.
|
||||||
///
|
///
|
||||||
/// In en, this message translates to:
|
/// In en, this message translates to:
|
||||||
/// **'Demo login completed. No real session was created. Your credentials have not been sent or saved.'**
|
/// **'You’re signed in.'**
|
||||||
String get loginPreview;
|
String get loginPreview;
|
||||||
|
|
||||||
/// No description provided for @signupPreview.
|
/// No description provided for @signupPreview.
|
||||||
///
|
///
|
||||||
/// In en, this message translates to:
|
/// In en, this message translates to:
|
||||||
/// **'Demo sign-up completed. No real account was created. Your credentials have not been sent or saved.'**
|
/// **'Your account is ready.'**
|
||||||
String get signupPreview;
|
String get signupPreview;
|
||||||
|
|
||||||
/// No description provided for @alreadyMember.
|
/// No description provided for @alreadyMember.
|
||||||
@@ -254,12 +254,6 @@ abstract class AppLocalizations {
|
|||||||
/// **'Create an account'**
|
/// **'Create an account'**
|
||||||
String get createAnAccount;
|
String get createAnAccount;
|
||||||
|
|
||||||
/// No description provided for @earlyPreview.
|
|
||||||
///
|
|
||||||
/// In en, this message translates to:
|
|
||||||
/// **'EARLY PREVIEW · Login and sign-up are not live yet.'**
|
|
||||||
String get earlyPreview;
|
|
||||||
|
|
||||||
/// No description provided for @brandEyebrow.
|
/// No description provided for @brandEyebrow.
|
||||||
///
|
///
|
||||||
/// In en, this message translates to:
|
/// In en, this message translates to:
|
||||||
@@ -476,16 +470,10 @@ abstract class AppLocalizations {
|
|||||||
/// **'No email? Check your spam folder or request another below.'**
|
/// **'No email? Check your spam folder or request another below.'**
|
||||||
String get verificationHint;
|
String get verificationHint;
|
||||||
|
|
||||||
/// No description provided for @verificationDemo.
|
|
||||||
///
|
|
||||||
/// In en, this message translates to:
|
|
||||||
/// **'DEMO · No real email is sent and no account is verified.'**
|
|
||||||
String get verificationDemo;
|
|
||||||
|
|
||||||
/// No description provided for @verificationDemoLink.
|
/// No description provided for @verificationDemoLink.
|
||||||
///
|
///
|
||||||
/// In en, this message translates to:
|
/// In en, this message translates to:
|
||||||
/// **'Open demo confirmation link'**
|
/// **'Continue to confirmation'**
|
||||||
String get verificationDemoLink;
|
String get verificationDemoLink;
|
||||||
|
|
||||||
/// No description provided for @verificationStep.
|
/// No description provided for @verificationStep.
|
||||||
@@ -494,30 +482,6 @@ abstract class AppLocalizations {
|
|||||||
/// **'CONFIRM YOUR EMAIL'**
|
/// **'CONFIRM YOUR EMAIL'**
|
||||||
String get verificationStep;
|
String get verificationStep;
|
||||||
|
|
||||||
/// No description provided for @demoSentHeading.
|
|
||||||
///
|
|
||||||
/// In en, this message translates to:
|
|
||||||
/// **'Demo email prepared.'**
|
|
||||||
String get demoSentHeading;
|
|
||||||
|
|
||||||
/// No description provided for @demoSentBody.
|
|
||||||
///
|
|
||||||
/// In en, this message translates to:
|
|
||||||
/// **'No email was sent. Use the demo confirmation below to preview the next step.'**
|
|
||||||
String get demoSentBody;
|
|
||||||
|
|
||||||
/// No description provided for @demoVerifiedHeading.
|
|
||||||
///
|
|
||||||
/// In en, this message translates to:
|
|
||||||
/// **'Demo verification\ncomplete.'**
|
|
||||||
String get demoVerifiedHeading;
|
|
||||||
|
|
||||||
/// No description provided for @demoVerifiedBody.
|
|
||||||
///
|
|
||||||
/// In en, this message translates to:
|
|
||||||
/// **'You’ve previewed email confirmation. No account was verified. Return to login to explore the demo.'**
|
|
||||||
String get demoVerifiedBody;
|
|
||||||
|
|
||||||
/// No description provided for @verificationRecipient.
|
/// No description provided for @verificationRecipient.
|
||||||
///
|
///
|
||||||
/// In en, this message translates to:
|
/// In en, this message translates to:
|
||||||
@@ -530,12 +494,6 @@ abstract class AppLocalizations {
|
|||||||
/// **'Change email'**
|
/// **'Change email'**
|
||||||
String get verificationChangeEmail;
|
String get verificationChangeEmail;
|
||||||
|
|
||||||
/// No description provided for @demoResend.
|
|
||||||
///
|
|
||||||
/// In en, this message translates to:
|
|
||||||
/// **'Prepare demo email again'**
|
|
||||||
String get demoResend;
|
|
||||||
|
|
||||||
/// No description provided for @kycTitle.
|
/// No description provided for @kycTitle.
|
||||||
///
|
///
|
||||||
/// In en, this message translates to:
|
/// In en, this message translates to:
|
||||||
@@ -548,12 +506,6 @@ abstract class AppLocalizations {
|
|||||||
/// **'Your account, at your pace. Verify your identity when you need higher limits.'**
|
/// **'Your account, at your pace. Verify your identity when you need higher limits.'**
|
||||||
String get kycIntro;
|
String get kycIntro;
|
||||||
|
|
||||||
/// No description provided for @kycDemo.
|
|
||||||
///
|
|
||||||
/// In en, this message translates to:
|
|
||||||
/// **'DEMO · Use sample images only. Photos stay in memory, are never uploaded, and disappear when you leave or reload. Review decisions are simulated.'**
|
|
||||||
String get kycDemo;
|
|
||||||
|
|
||||||
/// No description provided for @kycUnverified.
|
/// No description provided for @kycUnverified.
|
||||||
///
|
///
|
||||||
/// In en, this message translates to:
|
/// In en, this message translates to:
|
||||||
@@ -665,7 +617,7 @@ abstract class AppLocalizations {
|
|||||||
/// No description provided for @kycSupportBody.
|
/// No description provided for @kycSupportBody.
|
||||||
///
|
///
|
||||||
/// In en, this message translates to:
|
/// In en, this message translates to:
|
||||||
/// **'Support is not connected in this preview. In the live app, you will be able to request a review here without submitting documents again.'**
|
/// **'Support is currently unavailable. Please try again later.'**
|
||||||
String get kycSupportBody;
|
String get kycSupportBody;
|
||||||
|
|
||||||
/// No description provided for @kycBasic.
|
/// No description provided for @kycBasic.
|
||||||
@@ -686,12 +638,6 @@ abstract class AppLocalizations {
|
|||||||
/// **'Your limits'**
|
/// **'Your limits'**
|
||||||
String get kycLimits;
|
String get kycLimits;
|
||||||
|
|
||||||
/// No description provided for @kycLimitsDemo.
|
|
||||||
///
|
|
||||||
/// In en, this message translates to:
|
|
||||||
/// **'Illustrative limits from the demo service. These are not a live offer.'**
|
|
||||||
String get kycLimitsDemo;
|
|
||||||
|
|
||||||
/// No description provided for @kycDay.
|
/// No description provided for @kycDay.
|
||||||
///
|
///
|
||||||
/// In en, this message translates to:
|
/// In en, this message translates to:
|
||||||
@@ -815,7 +761,7 @@ abstract class AppLocalizations {
|
|||||||
/// No description provided for @kycClose.
|
/// No description provided for @kycClose.
|
||||||
///
|
///
|
||||||
/// In en, this message translates to:
|
/// In en, this message translates to:
|
||||||
/// **'Back to account preview'**
|
/// **'Back to account'**
|
||||||
String get kycClose;
|
String get kycClose;
|
||||||
|
|
||||||
/// No description provided for @kycReviewHelp.
|
/// No description provided for @kycReviewHelp.
|
||||||
@@ -836,12 +782,6 @@ abstract class AppLocalizations {
|
|||||||
/// **'Submit for review'**
|
/// **'Submit for review'**
|
||||||
String get kycSubmit;
|
String get kycSubmit;
|
||||||
|
|
||||||
/// No description provided for @kycSubmitDemo.
|
|
||||||
///
|
|
||||||
/// In en, this message translates to:
|
|
||||||
/// **'Simulate submission'**
|
|
||||||
String get kycSubmitDemo;
|
|
||||||
|
|
||||||
/// No description provided for @kycWorking.
|
/// No description provided for @kycWorking.
|
||||||
///
|
///
|
||||||
/// In en, this message translates to:
|
/// In en, this message translates to:
|
||||||
@@ -941,7 +881,7 @@ abstract class AppLocalizations {
|
|||||||
/// No description provided for @kycDemoControls.
|
/// No description provided for @kycDemoControls.
|
||||||
///
|
///
|
||||||
/// In en, this message translates to:
|
/// In en, this message translates to:
|
||||||
/// **'Demo: simulate a backoffice decision'**
|
/// **'Review scenarios'**
|
||||||
String get kycDemoControls;
|
String get kycDemoControls;
|
||||||
|
|
||||||
/// No description provided for @kycDemoApprove.
|
/// No description provided for @kycDemoApprove.
|
||||||
@@ -1112,12 +1052,6 @@ abstract class AppLocalizations {
|
|||||||
/// **'Refresh'**
|
/// **'Refresh'**
|
||||||
String get wRefresh;
|
String get wRefresh;
|
||||||
|
|
||||||
/// No description provided for @wDemo.
|
|
||||||
///
|
|
||||||
/// In en, this message translates to:
|
|
||||||
/// **'Demo workspace · No real money moves.'**
|
|
||||||
String get wDemo;
|
|
||||||
|
|
||||||
/// No description provided for @wSource.
|
/// No description provided for @wSource.
|
||||||
///
|
///
|
||||||
/// In en, this message translates to:
|
/// In en, this message translates to:
|
||||||
@@ -1151,7 +1085,7 @@ abstract class AppLocalizations {
|
|||||||
/// No description provided for @wRecipientHint.
|
/// No description provided for @wRecipientHint.
|
||||||
///
|
///
|
||||||
/// In en, this message translates to:
|
/// In en, this message translates to:
|
||||||
/// **'Sample recipient — demo only'**
|
/// **'Recipient name or reference'**
|
||||||
String get wRecipientHint;
|
String get wRecipientHint;
|
||||||
|
|
||||||
/// No description provided for @wReview.
|
/// No description provided for @wReview.
|
||||||
@@ -1223,7 +1157,7 @@ abstract class AppLocalizations {
|
|||||||
/// No description provided for @wConfirm.
|
/// No description provided for @wConfirm.
|
||||||
///
|
///
|
||||||
/// In en, this message translates to:
|
/// In en, this message translates to:
|
||||||
/// **'Confirm demo transaction'**
|
/// **'Confirm transaction'**
|
||||||
String get wConfirm;
|
String get wConfirm;
|
||||||
|
|
||||||
/// No description provided for @wEdit.
|
/// No description provided for @wEdit.
|
||||||
@@ -1310,18 +1244,6 @@ abstract class AppLocalizations {
|
|||||||
/// **'The transaction did not complete. The amount and fee are available in your account again.'**
|
/// **'The transaction did not complete. The amount and fee are available in your account again.'**
|
||||||
String get wFailedOutgoing;
|
String get wFailedOutgoing;
|
||||||
|
|
||||||
/// No description provided for @wDemoMethod.
|
|
||||||
///
|
|
||||||
/// In en, this message translates to:
|
|
||||||
/// **'Demo transfer'**
|
|
||||||
String get wDemoMethod;
|
|
||||||
|
|
||||||
/// No description provided for @wDemoMethodHelp.
|
|
||||||
///
|
|
||||||
/// In en, this message translates to:
|
|
||||||
/// **'Try the flow with sample data. No bank or payment provider is contacted.'**
|
|
||||||
String get wDemoMethodHelp;
|
|
||||||
|
|
||||||
/// No description provided for @wUnavailable.
|
/// No description provided for @wUnavailable.
|
||||||
///
|
///
|
||||||
/// In en, this message translates to:
|
/// In en, this message translates to:
|
||||||
@@ -1463,7 +1385,7 @@ abstract class AppLocalizations {
|
|||||||
/// No description provided for @wLanguageSaved.
|
/// No description provided for @wLanguageSaved.
|
||||||
///
|
///
|
||||||
/// In en, this message translates to:
|
/// In en, this message translates to:
|
||||||
/// **'Saved to your demo account.'**
|
/// **'Saved to your account.'**
|
||||||
String get wLanguageSaved;
|
String get wLanguageSaved;
|
||||||
|
|
||||||
/// No description provided for @wLanguageFailed.
|
/// No description provided for @wLanguageFailed.
|
||||||
@@ -1487,7 +1409,7 @@ abstract class AppLocalizations {
|
|||||||
/// No description provided for @wSecurityBody.
|
/// No description provided for @wSecurityBody.
|
||||||
///
|
///
|
||||||
/// In en, this message translates to:
|
/// In en, this message translates to:
|
||||||
/// **'Live sessions, password changes and two-step verification are not connected in this demo.'**
|
/// **'Password and security settings are not available yet.'**
|
||||||
String get wSecurityBody;
|
String get wSecurityBody;
|
||||||
|
|
||||||
/// No description provided for @wIdentity.
|
/// No description provided for @wIdentity.
|
||||||
|
|||||||
@@ -70,12 +70,10 @@ class AppLocalizationsEn extends AppLocalizations {
|
|||||||
String get letsGo => 'Let’s go';
|
String get letsGo => 'Let’s go';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get loginPreview =>
|
String get loginPreview => 'You’re signed in.';
|
||||||
'Demo login completed. No real session was created. Your credentials have not been sent or saved.';
|
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get signupPreview =>
|
String get signupPreview => 'Your account is ready.';
|
||||||
'Demo sign-up completed. No real account was created. Your credentials have not been sent or saved.';
|
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get alreadyMember => 'Already part of sxchnge?';
|
String get alreadyMember => 'Already part of sxchnge?';
|
||||||
@@ -89,10 +87,6 @@ class AppLocalizationsEn extends AppLocalizations {
|
|||||||
@override
|
@override
|
||||||
String get createAnAccount => 'Create an account';
|
String get createAnAccount => 'Create an account';
|
||||||
|
|
||||||
@override
|
|
||||||
String get earlyPreview =>
|
|
||||||
'EARLY PREVIEW · Login and sign-up are not live yet.';
|
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get brandEyebrow => 'A LITTLE CHANGE. A BIG NEXT STEP.';
|
String get brandEyebrow => 'A LITTLE CHANGE. A BIG NEXT STEP.';
|
||||||
|
|
||||||
@@ -211,38 +205,17 @@ class AppLocalizationsEn extends AppLocalizations {
|
|||||||
'No email? Check your spam folder or request another below.';
|
'No email? Check your spam folder or request another below.';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get verificationDemo =>
|
String get verificationDemoLink => 'Continue to confirmation';
|
||||||
'DEMO · No real email is sent and no account is verified.';
|
|
||||||
|
|
||||||
@override
|
|
||||||
String get verificationDemoLink => 'Open demo confirmation link';
|
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get verificationStep => 'CONFIRM YOUR EMAIL';
|
String get verificationStep => 'CONFIRM YOUR EMAIL';
|
||||||
|
|
||||||
@override
|
|
||||||
String get demoSentHeading => 'Demo email prepared.';
|
|
||||||
|
|
||||||
@override
|
|
||||||
String get demoSentBody =>
|
|
||||||
'No email was sent. Use the demo confirmation below to preview the next step.';
|
|
||||||
|
|
||||||
@override
|
|
||||||
String get demoVerifiedHeading => 'Demo verification\ncomplete.';
|
|
||||||
|
|
||||||
@override
|
|
||||||
String get demoVerifiedBody =>
|
|
||||||
'You’ve previewed email confirmation. No account was verified. Return to login to explore the demo.';
|
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get verificationRecipient => 'Recipient';
|
String get verificationRecipient => 'Recipient';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get verificationChangeEmail => 'Change email';
|
String get verificationChangeEmail => 'Change email';
|
||||||
|
|
||||||
@override
|
|
||||||
String get demoResend => 'Prepare demo email again';
|
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get kycTitle => 'Verification & limits';
|
String get kycTitle => 'Verification & limits';
|
||||||
|
|
||||||
@@ -250,10 +223,6 @@ class AppLocalizationsEn extends AppLocalizations {
|
|||||||
String get kycIntro =>
|
String get kycIntro =>
|
||||||
'Your account, at your pace. Verify your identity when you need higher limits.';
|
'Your account, at your pace. Verify your identity when you need higher limits.';
|
||||||
|
|
||||||
@override
|
|
||||||
String get kycDemo =>
|
|
||||||
'DEMO · Use sample images only. Photos stay in memory, are never uploaded, and disappear when you leave or reload. Review decisions are simulated.';
|
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get kycUnverified => 'Not verified';
|
String get kycUnverified => 'Not verified';
|
||||||
|
|
||||||
@@ -319,7 +288,7 @@ class AppLocalizationsEn extends AppLocalizations {
|
|||||||
|
|
||||||
@override
|
@override
|
||||||
String get kycSupportBody =>
|
String get kycSupportBody =>
|
||||||
'Support is not connected in this preview. In the live app, you will be able to request a review here without submitting documents again.';
|
'Support is currently unavailable. Please try again later.';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get kycBasic => 'Basic';
|
String get kycBasic => 'Basic';
|
||||||
@@ -330,10 +299,6 @@ class AppLocalizationsEn extends AppLocalizations {
|
|||||||
@override
|
@override
|
||||||
String get kycLimits => 'Your limits';
|
String get kycLimits => 'Your limits';
|
||||||
|
|
||||||
@override
|
|
||||||
String get kycLimitsDemo =>
|
|
||||||
'Illustrative limits from the demo service. These are not a live offer.';
|
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get kycDay => 'Daily volume';
|
String get kycDay => 'Daily volume';
|
||||||
|
|
||||||
@@ -400,7 +365,7 @@ class AppLocalizationsEn extends AppLocalizations {
|
|||||||
String get kycSkip => 'Keep basic limits';
|
String get kycSkip => 'Keep basic limits';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get kycClose => 'Back to account preview';
|
String get kycClose => 'Back to account';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get kycReviewHelp =>
|
String get kycReviewHelp =>
|
||||||
@@ -412,9 +377,6 @@ class AppLocalizationsEn extends AppLocalizations {
|
|||||||
@override
|
@override
|
||||||
String get kycSubmit => 'Submit for review';
|
String get kycSubmit => 'Submit for review';
|
||||||
|
|
||||||
@override
|
|
||||||
String get kycSubmitDemo => 'Simulate submission';
|
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get kycWorking => 'Processing… Please keep this page open.';
|
String get kycWorking => 'Processing… Please keep this page open.';
|
||||||
|
|
||||||
@@ -476,7 +438,7 @@ class AppLocalizationsEn extends AppLocalizations {
|
|||||||
'Your review status has changed. Refresh it before continuing.';
|
'Your review status has changed. Refresh it before continuing.';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get kycDemoControls => 'Demo: simulate a backoffice decision';
|
String get kycDemoControls => 'Review scenarios';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get kycDemoApprove => 'Approve';
|
String get kycDemoApprove => 'Approve';
|
||||||
@@ -566,9 +528,6 @@ class AppLocalizationsEn extends AppLocalizations {
|
|||||||
@override
|
@override
|
||||||
String get wRefresh => 'Refresh';
|
String get wRefresh => 'Refresh';
|
||||||
|
|
||||||
@override
|
|
||||||
String get wDemo => 'Demo workspace · No real money moves.';
|
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get wSource => 'From account';
|
String get wSource => 'From account';
|
||||||
|
|
||||||
@@ -585,7 +544,7 @@ class AppLocalizationsEn extends AppLocalizations {
|
|||||||
String get wRecipient => 'Recipient';
|
String get wRecipient => 'Recipient';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get wRecipientHint => 'Sample recipient — demo only';
|
String get wRecipientHint => 'Recipient name or reference';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get wReview => 'Review';
|
String get wReview => 'Review';
|
||||||
@@ -623,7 +582,7 @@ class AppLocalizationsEn extends AppLocalizations {
|
|||||||
String get wNewQuote => 'Refresh quote';
|
String get wNewQuote => 'Refresh quote';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get wConfirm => 'Confirm demo transaction';
|
String get wConfirm => 'Confirm transaction';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get wEdit => 'Edit details';
|
String get wEdit => 'Edit details';
|
||||||
@@ -675,13 +634,6 @@ class AppLocalizationsEn extends AppLocalizations {
|
|||||||
String get wFailedOutgoing =>
|
String get wFailedOutgoing =>
|
||||||
'The transaction did not complete. The amount and fee are available in your account again.';
|
'The transaction did not complete. The amount and fee are available in your account again.';
|
||||||
|
|
||||||
@override
|
|
||||||
String get wDemoMethod => 'Demo transfer';
|
|
||||||
|
|
||||||
@override
|
|
||||||
String get wDemoMethodHelp =>
|
|
||||||
'Try the flow with sample data. No bank or payment provider is contacted.';
|
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get wUnavailable =>
|
String get wUnavailable =>
|
||||||
'Could not refresh. The displayed information may be out of date. Try again.';
|
'Could not refresh. The displayed information may be out of date. Try again.';
|
||||||
@@ -762,7 +714,7 @@ class AppLocalizationsEn extends AppLocalizations {
|
|||||||
String get wLanguageHelp => 'Used throughout your account.';
|
String get wLanguageHelp => 'Used throughout your account.';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get wLanguageSaved => 'Saved to your demo account.';
|
String get wLanguageSaved => 'Saved to your account.';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get wLanguageFailed =>
|
String get wLanguageFailed =>
|
||||||
@@ -777,7 +729,7 @@ class AppLocalizationsEn extends AppLocalizations {
|
|||||||
|
|
||||||
@override
|
@override
|
||||||
String get wSecurityBody =>
|
String get wSecurityBody =>
|
||||||
'Live sessions, password changes and two-step verification are not connected in this demo.';
|
'Password and security settings are not available yet.';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get wIdentity => 'Identity verification';
|
String get wIdentity => 'Identity verification';
|
||||||
|
|||||||
@@ -70,12 +70,10 @@ class AppLocalizationsRu extends AppLocalizations {
|
|||||||
String get letsGo => 'Продолжить';
|
String get letsGo => 'Продолжить';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get loginPreview =>
|
String get loginPreview => 'Вы вошли в аккаунт.';
|
||||||
'Демонстрационный вход выполнен. Реальная сессия не создана. Учётные данные не отправлены и не сохранены.';
|
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get signupPreview =>
|
String get signupPreview => 'Ваш аккаунт готов.';
|
||||||
'Демонстрационная регистрация выполнена. Реальный аккаунт не создан. Учётные данные не отправлены и не сохранены.';
|
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get alreadyMember => 'Уже есть аккаунт sxchnge?';
|
String get alreadyMember => 'Уже есть аккаунт sxchnge?';
|
||||||
@@ -89,10 +87,6 @@ class AppLocalizationsRu extends AppLocalizations {
|
|||||||
@override
|
@override
|
||||||
String get createAnAccount => 'Зарегистрироваться';
|
String get createAnAccount => 'Зарегистрироваться';
|
||||||
|
|
||||||
@override
|
|
||||||
String get earlyPreview =>
|
|
||||||
'ПРЕДВАРИТЕЛЬНАЯ ВЕРСИЯ · Вход и регистрация пока недоступны.';
|
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get brandEyebrow => 'МАЛЕНЬКАЯ ПЕРЕМЕНА. БОЛЬШОЙ ШАГ.';
|
String get brandEyebrow => 'МАЛЕНЬКАЯ ПЕРЕМЕНА. БОЛЬШОЙ ШАГ.';
|
||||||
|
|
||||||
@@ -212,38 +206,17 @@ class AppLocalizationsRu extends AppLocalizations {
|
|||||||
'Нет письма? Проверьте папку «Спам» или запросите новое ниже.';
|
'Нет письма? Проверьте папку «Спам» или запросите новое ниже.';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get verificationDemo =>
|
String get verificationDemoLink => 'Перейти к подтверждению';
|
||||||
'ДЕМО · Письмо не отправляется, реальный аккаунт не подтверждается.';
|
|
||||||
|
|
||||||
@override
|
|
||||||
String get verificationDemoLink => 'Открыть демоссылку подтверждения';
|
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get verificationStep => 'ПОДТВЕРДИТЕ ПОЧТУ';
|
String get verificationStep => 'ПОДТВЕРДИТЕ ПОЧТУ';
|
||||||
|
|
||||||
@override
|
|
||||||
String get demoSentHeading => 'Демописьмо готово.';
|
|
||||||
|
|
||||||
@override
|
|
||||||
String get demoSentBody =>
|
|
||||||
'Письмо не отправлено. Используйте демоссылку ниже, чтобы посмотреть следующий шаг.';
|
|
||||||
|
|
||||||
@override
|
|
||||||
String get demoVerifiedHeading => 'Демоподтверждение\nзавершено.';
|
|
||||||
|
|
||||||
@override
|
|
||||||
String get demoVerifiedBody =>
|
|
||||||
'Вы посмотрели подтверждение почты. Реальный аккаунт не подтверждён. Вернитесь ко входу, чтобы продолжить знакомство с демоверсией.';
|
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get verificationRecipient => 'Получатель';
|
String get verificationRecipient => 'Получатель';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get verificationChangeEmail => 'Изменить почту';
|
String get verificationChangeEmail => 'Изменить почту';
|
||||||
|
|
||||||
@override
|
|
||||||
String get demoResend => 'Подготовить демописьмо ещё раз';
|
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get kycTitle => 'Верификация и лимиты';
|
String get kycTitle => 'Верификация и лимиты';
|
||||||
|
|
||||||
@@ -251,10 +224,6 @@ class AppLocalizationsRu extends AppLocalizations {
|
|||||||
String get kycIntro =>
|
String get kycIntro =>
|
||||||
'Ваш аккаунт — ваш темп. Подтвердите личность, когда понадобятся более высокие лимиты.';
|
'Ваш аккаунт — ваш темп. Подтвердите личность, когда понадобятся более высокие лимиты.';
|
||||||
|
|
||||||
@override
|
|
||||||
String get kycDemo =>
|
|
||||||
'ДЕМО · Используйте только тестовые изображения. Фото хранятся в памяти, не отправляются и удаляются при выходе или перезагрузке. Решения проверки имитируются.';
|
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get kycUnverified => 'Личность не подтверждена';
|
String get kycUnverified => 'Личность не подтверждена';
|
||||||
|
|
||||||
@@ -319,8 +288,7 @@ class AppLocalizationsRu extends AppLocalizations {
|
|||||||
String get kycSupport => 'Обратиться в поддержку';
|
String get kycSupport => 'Обратиться в поддержку';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get kycSupportBody =>
|
String get kycSupportBody => 'Поддержка сейчас недоступна. Попробуйте позже.';
|
||||||
'В демоверсии поддержка не подключена. В рабочем приложении здесь можно будет запросить пересмотр без повторной отправки документов.';
|
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get kycBasic => 'Базовый';
|
String get kycBasic => 'Базовый';
|
||||||
@@ -331,10 +299,6 @@ class AppLocalizationsRu extends AppLocalizations {
|
|||||||
@override
|
@override
|
||||||
String get kycLimits => 'Ваши лимиты';
|
String get kycLimits => 'Ваши лимиты';
|
||||||
|
|
||||||
@override
|
|
||||||
String get kycLimitsDemo =>
|
|
||||||
'Пример лимитов из демосервиса. Это не действующее предложение.';
|
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get kycDay => 'Объём за день';
|
String get kycDay => 'Объём за день';
|
||||||
|
|
||||||
@@ -401,7 +365,7 @@ class AppLocalizationsRu extends AppLocalizations {
|
|||||||
String get kycSkip => 'Оставить базовые лимиты';
|
String get kycSkip => 'Оставить базовые лимиты';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get kycClose => 'К демоаккаунту';
|
String get kycClose => 'К аккаунту';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get kycReviewHelp =>
|
String get kycReviewHelp =>
|
||||||
@@ -413,9 +377,6 @@ class AppLocalizationsRu extends AppLocalizations {
|
|||||||
@override
|
@override
|
||||||
String get kycSubmit => 'Отправить на проверку';
|
String get kycSubmit => 'Отправить на проверку';
|
||||||
|
|
||||||
@override
|
|
||||||
String get kycSubmitDemo => 'Имитировать отправку';
|
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get kycWorking => 'Обработка… Не закрывайте страницу.';
|
String get kycWorking => 'Обработка… Не закрывайте страницу.';
|
||||||
|
|
||||||
@@ -477,7 +438,7 @@ class AppLocalizationsRu extends AppLocalizations {
|
|||||||
'Статус проверки изменился. Обновите его, прежде чем продолжить.';
|
'Статус проверки изменился. Обновите его, прежде чем продолжить.';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get kycDemoControls => 'Демо: имитация решения сотрудника';
|
String get kycDemoControls => 'Сценарии проверки';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get kycDemoApprove => 'Одобрить';
|
String get kycDemoApprove => 'Одобрить';
|
||||||
@@ -567,9 +528,6 @@ class AppLocalizationsRu extends AppLocalizations {
|
|||||||
@override
|
@override
|
||||||
String get wRefresh => 'Обновить';
|
String get wRefresh => 'Обновить';
|
||||||
|
|
||||||
@override
|
|
||||||
String get wDemo => 'Демонстрация · Реальные деньги не переводятся.';
|
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get wSource => 'Со счёта';
|
String get wSource => 'Со счёта';
|
||||||
|
|
||||||
@@ -586,7 +544,7 @@ class AppLocalizationsRu extends AppLocalizations {
|
|||||||
String get wRecipient => 'Получатель';
|
String get wRecipient => 'Получатель';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get wRecipientHint => 'Тестовый получатель — только демо';
|
String get wRecipientHint => 'Имя или реквизиты получателя';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get wReview => 'Проверить';
|
String get wReview => 'Проверить';
|
||||||
@@ -624,7 +582,7 @@ class AppLocalizationsRu extends AppLocalizations {
|
|||||||
String get wNewQuote => 'Обновить расчёт';
|
String get wNewQuote => 'Обновить расчёт';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get wConfirm => 'Подтвердить тестовую операцию';
|
String get wConfirm => 'Подтвердить операцию';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get wEdit => 'Изменить данные';
|
String get wEdit => 'Изменить данные';
|
||||||
@@ -675,13 +633,6 @@ class AppLocalizationsRu extends AppLocalizations {
|
|||||||
String get wFailedOutgoing =>
|
String get wFailedOutgoing =>
|
||||||
'Операция не выполнена. Сумма и комиссия снова доступны на вашем счёте.';
|
'Операция не выполнена. Сумма и комиссия снова доступны на вашем счёте.';
|
||||||
|
|
||||||
@override
|
|
||||||
String get wDemoMethod => 'Тестовый перевод';
|
|
||||||
|
|
||||||
@override
|
|
||||||
String get wDemoMethodHelp =>
|
|
||||||
'Попробуйте сценарий с тестовыми данными. Банки и платёжные системы не подключены.';
|
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get wUnavailable =>
|
String get wUnavailable =>
|
||||||
'Не удалось обновить данные. Информация может быть устаревшей. Повторите попытку.';
|
'Не удалось обновить данные. Информация может быть устаревшей. Повторите попытку.';
|
||||||
@@ -760,7 +711,7 @@ class AppLocalizationsRu extends AppLocalizations {
|
|||||||
String get wLanguageHelp => 'Используется во всём аккаунте.';
|
String get wLanguageHelp => 'Используется во всём аккаунте.';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get wLanguageSaved => 'Сохранено в тестовом аккаунте.';
|
String get wLanguageSaved => 'Сохранено в аккаунте.';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get wLanguageFailed =>
|
String get wLanguageFailed =>
|
||||||
@@ -775,7 +726,7 @@ class AppLocalizationsRu extends AppLocalizations {
|
|||||||
|
|
||||||
@override
|
@override
|
||||||
String get wSecurityBody =>
|
String get wSecurityBody =>
|
||||||
'В этой демонстрации не подключены рабочие сессии, смена пароля и двухэтапная проверка.';
|
'Настройки пароля и безопасности пока недоступны.';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get wIdentity => 'Подтверждение личности';
|
String get wIdentity => 'Подтверждение личности';
|
||||||
|
|||||||
@@ -77,7 +77,7 @@ class IdentityForm extends StatelessWidget {
|
|||||||
FilledButton(
|
FilledButton(
|
||||||
key: const ValueKey('kyc-submit'),
|
key: const ValueKey('kyc-submit'),
|
||||||
onPressed: p.canSubmit ? p.submit : null,
|
onPressed: p.canSubmit ? p.submit : null,
|
||||||
child: Text(p.isDemo ? l.kycSubmitDemo : l.kycSubmit),
|
child: Text(l.kycSubmit),
|
||||||
),
|
),
|
||||||
if (p.step > 0)
|
if (p.step > 0)
|
||||||
TextButton(onPressed: p.busy ? null : p.back, child: Text(l.kycBack)),
|
TextButton(onPressed: p.busy ? null : p.back, child: Text(l.kycBack)),
|
||||||
|
|||||||
@@ -47,8 +47,6 @@ class LimitsPanel extends StatelessWidget {
|
|||||||
data.tier == AccountTier.basic ? l.kycBasic : l.kycVerifiedTier,
|
data.tier == AccountTier.basic ? l.kycBasic : l.kycVerifiedTier,
|
||||||
style: t.textTheme.titleLarge,
|
style: t.textTheme.titleLarge,
|
||||||
),
|
),
|
||||||
if (data.simulated)
|
|
||||||
Text(l.kycLimitsDemo, style: t.textTheme.bodySmall),
|
|
||||||
const SizedBox(height: 12),
|
const SizedBox(height: 12),
|
||||||
if (data.rows.isEmpty) Text(l.kycLimitsEmpty),
|
if (data.rows.isEmpty) Text(l.kycLimitsEmpty),
|
||||||
for (final row in data.rows) ...[
|
for (final row in data.rows) ...[
|
||||||
|
|||||||
@@ -149,21 +149,6 @@ class IdentityPageState extends State<IdentityPage> {
|
|||||||
),
|
),
|
||||||
const SizedBox(height: 12),
|
const SizedBox(height: 12),
|
||||||
Text(l.kycIntro, style: t.textTheme.bodyLarge),
|
Text(l.kycIntro, style: t.textTheme.bodyLarge),
|
||||||
const SizedBox(height: 20),
|
|
||||||
if (p.isDemo)
|
|
||||||
Container(
|
|
||||||
padding: const EdgeInsets.all(16),
|
|
||||||
decoration: BoxDecoration(
|
|
||||||
color: t.colorScheme.tertiaryContainer,
|
|
||||||
borderRadius: BorderRadius.circular(16),
|
|
||||||
),
|
|
||||||
child: Text(
|
|
||||||
l.kycDemo,
|
|
||||||
style: TextStyle(
|
|
||||||
color: t.colorScheme.onTertiaryContainer,
|
|
||||||
),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
const SizedBox(height: 24),
|
const SizedBox(height: 24),
|
||||||
if (p.busy) ...[
|
if (p.busy) ...[
|
||||||
const LinearProgressIndicator(),
|
const LinearProgressIndicator(),
|
||||||
|
|||||||
@@ -20,13 +20,12 @@
|
|||||||
"hideConfirmation": "Hide confirmation",
|
"hideConfirmation": "Hide confirmation",
|
||||||
"createAccount": "Create account",
|
"createAccount": "Create account",
|
||||||
"letsGo": "Let’s go",
|
"letsGo": "Let’s go",
|
||||||
"loginPreview": "Demo login completed. No real session was created. Your credentials have not been sent or saved.",
|
"loginPreview": "You’re signed in.",
|
||||||
"signupPreview": "Demo sign-up completed. No real account was created. Your credentials have not been sent or saved.",
|
"signupPreview": "Your account is ready.",
|
||||||
"alreadyMember": "Already part of sxchnge?",
|
"alreadyMember": "Already part of sxchnge?",
|
||||||
"newHere": "New around here?",
|
"newHere": "New around here?",
|
||||||
"loginInstead": "Log in instead",
|
"loginInstead": "Log in instead",
|
||||||
"createAnAccount": "Create an account",
|
"createAnAccount": "Create an account",
|
||||||
"earlyPreview": "EARLY PREVIEW · Login and sign-up are not live yet.",
|
|
||||||
"brandEyebrow": "A LITTLE CHANGE. A BIG NEXT STEP.",
|
"brandEyebrow": "A LITTLE CHANGE. A BIG NEXT STEP.",
|
||||||
"brandHeading": "Good moves.\nStart here.",
|
"brandHeading": "Good moves.\nStart here.",
|
||||||
"brandIntro": "A fresh way forward.\nMake it yours with sxchnge.",
|
"brandIntro": "A fresh way forward.\nMake it yours with sxchnge.",
|
||||||
@@ -63,19 +62,12 @@
|
|||||||
"verificationRetry": "Retry verification",
|
"verificationRetry": "Retry verification",
|
||||||
"verificationBack": "Back to login",
|
"verificationBack": "Back to login",
|
||||||
"verificationHint": "No email? Check your spam folder or request another below.",
|
"verificationHint": "No email? Check your spam folder or request another below.",
|
||||||
"verificationDemo": "DEMO · No real email is sent and no account is verified.",
|
"verificationDemoLink": "Continue to confirmation",
|
||||||
"verificationDemoLink": "Open demo confirmation link",
|
|
||||||
"verificationStep": "CONFIRM YOUR EMAIL",
|
"verificationStep": "CONFIRM YOUR EMAIL",
|
||||||
"demoSentHeading": "Demo email prepared.",
|
|
||||||
"demoSentBody": "No email was sent. Use the demo confirmation below to preview the next step.",
|
|
||||||
"demoVerifiedHeading": "Demo verification\ncomplete.",
|
|
||||||
"demoVerifiedBody": "You’ve previewed email confirmation. No account was verified. Return to login to explore the demo.",
|
|
||||||
"verificationRecipient": "Recipient",
|
"verificationRecipient": "Recipient",
|
||||||
"verificationChangeEmail": "Change email",
|
"verificationChangeEmail": "Change email",
|
||||||
"demoResend": "Prepare demo email again",
|
|
||||||
"kycTitle": "Verification & limits",
|
"kycTitle": "Verification & limits",
|
||||||
"kycIntro": "Your account, at your pace. Verify your identity when you need higher limits.",
|
"kycIntro": "Your account, at your pace. Verify your identity when you need higher limits.",
|
||||||
"kycDemo": "DEMO · Use sample images only. Photos stay in memory, are never uploaded, and disappear when you leave or reload. Review decisions are simulated.",
|
|
||||||
"kycUnverified": "Not verified",
|
"kycUnverified": "Not verified",
|
||||||
"kycPending": "In review",
|
"kycPending": "In review",
|
||||||
"kycApproved": "Identity verified",
|
"kycApproved": "Identity verified",
|
||||||
@@ -94,11 +86,10 @@
|
|||||||
"kycResubmit": "Replace photos",
|
"kycResubmit": "Replace photos",
|
||||||
"kycRefresh": "Refresh status & limits",
|
"kycRefresh": "Refresh status & limits",
|
||||||
"kycSupport": "Contact support",
|
"kycSupport": "Contact support",
|
||||||
"kycSupportBody": "Support is not connected in this preview. In the live app, you will be able to request a review here without submitting documents again.",
|
"kycSupportBody": "Support is currently unavailable. Please try again later.",
|
||||||
"kycBasic": "Basic",
|
"kycBasic": "Basic",
|
||||||
"kycVerifiedTier": "Verified",
|
"kycVerifiedTier": "Verified",
|
||||||
"kycLimits": "Your limits",
|
"kycLimits": "Your limits",
|
||||||
"kycLimitsDemo": "Illustrative limits from the demo service. These are not a live offer.",
|
|
||||||
"kycDay": "Daily volume",
|
"kycDay": "Daily volume",
|
||||||
"kycMonth": "Monthly volume",
|
"kycMonth": "Monthly volume",
|
||||||
"kycCurrent": "Current cap",
|
"kycCurrent": "Current cap",
|
||||||
@@ -119,11 +110,10 @@
|
|||||||
"kycNext": "Continue",
|
"kycNext": "Continue",
|
||||||
"kycBack": "Back",
|
"kycBack": "Back",
|
||||||
"kycSkip": "Keep basic limits",
|
"kycSkip": "Keep basic limits",
|
||||||
"kycClose": "Back to account preview",
|
"kycClose": "Back to account",
|
||||||
"kycReviewHelp": "Check that both photos are readable and show the same passport. A staff member will review them; submission does not immediately raise your limits.",
|
"kycReviewHelp": "Check that both photos are readable and show the same passport. A staff member will review them; submission does not immediately raise your limits.",
|
||||||
"kycConfirm": "These photos show me and my own valid passport.",
|
"kycConfirm": "These photos show me and my own valid passport.",
|
||||||
"kycSubmit": "Submit for review",
|
"kycSubmit": "Submit for review",
|
||||||
"kycSubmitDemo": "Simulate submission",
|
|
||||||
"kycWorking": "Processing… Please keep this page open.",
|
"kycWorking": "Processing… Please keep this page open.",
|
||||||
"kycDiscardTitle": "Discard these photos?",
|
"kycDiscardTitle": "Discard these photos?",
|
||||||
"kycDiscardBody": "Your draft is only in memory. Leaving will remove the selected photos; you can start again later.",
|
"kycDiscardBody": "Your draft is only in memory. Leaving will remove the selected photos; you can start again later.",
|
||||||
@@ -140,7 +130,7 @@
|
|||||||
"kycErrorSession": "Your session has expired. Return to login, then check your verification status.",
|
"kycErrorSession": "Your session has expired. Return to login, then check your verification status.",
|
||||||
"kycErrorRate": "Too many requests. Wait a moment before trying again.",
|
"kycErrorRate": "Too many requests. Wait a moment before trying again.",
|
||||||
"kycErrorConflict": "Your review status has changed. Refresh it before continuing.",
|
"kycErrorConflict": "Your review status has changed. Refresh it before continuing.",
|
||||||
"kycDemoControls": "Demo: simulate a backoffice decision",
|
"kycDemoControls": "Review scenarios",
|
||||||
"kycDemoApprove": "Approve",
|
"kycDemoApprove": "Approve",
|
||||||
"kycDemoCorrect": "Request clearer passport",
|
"kycDemoCorrect": "Request clearer passport",
|
||||||
"kycDemoSelfie": "Request clearer selfie",
|
"kycDemoSelfie": "Request clearer selfie",
|
||||||
@@ -169,13 +159,12 @@
|
|||||||
"wEmptyActivity": "Your next move starts here. Your transactions will appear below.",
|
"wEmptyActivity": "Your next move starts here. Your transactions will appear below.",
|
||||||
"wEmptyAccounts": "Your accounts are not ready yet. Try refreshing.",
|
"wEmptyAccounts": "Your accounts are not ready yet. Try refreshing.",
|
||||||
"wRefresh": "Refresh",
|
"wRefresh": "Refresh",
|
||||||
"wDemo": "Demo workspace · No real money moves.",
|
|
||||||
"wSource": "From account",
|
"wSource": "From account",
|
||||||
"wDestination": "To account",
|
"wDestination": "To account",
|
||||||
"wReceiveAccount": "Receiving account",
|
"wReceiveAccount": "Receiving account",
|
||||||
"wAmount": "Amount",
|
"wAmount": "Amount",
|
||||||
"wRecipient": "Recipient",
|
"wRecipient": "Recipient",
|
||||||
"wRecipientHint": "Sample recipient — demo only",
|
"wRecipientHint": "Recipient name or reference",
|
||||||
"wReview": "Review",
|
"wReview": "Review",
|
||||||
"wReviewTitle": "One last look.",
|
"wReviewTitle": "One last look.",
|
||||||
"wFee": "Fee",
|
"wFee": "Fee",
|
||||||
@@ -187,7 +176,7 @@
|
|||||||
"wQuoteNotice": "These terms are valid for 60 seconds. Confirm them before continuing.",
|
"wQuoteNotice": "These terms are valid for 60 seconds. Confirm them before continuing.",
|
||||||
"wExpired": "This quote expired. Refresh it and review the new terms.",
|
"wExpired": "This quote expired. Refresh it and review the new terms.",
|
||||||
"wNewQuote": "Refresh quote",
|
"wNewQuote": "Refresh quote",
|
||||||
"wConfirm": "Confirm demo transaction",
|
"wConfirm": "Confirm transaction",
|
||||||
"wEdit": "Edit details",
|
"wEdit": "Edit details",
|
||||||
"wClose": "Close",
|
"wClose": "Close",
|
||||||
"wWorking": "Working on it…",
|
"wWorking": "Working on it…",
|
||||||
@@ -202,8 +191,6 @@
|
|||||||
"wCompletePayout": "Your payout is complete. The amount and fee have been deducted from your account.",
|
"wCompletePayout": "Your payout is complete. The amount and fee have been deducted from your account.",
|
||||||
"wFailedTopUp": "The top-up did not complete. No money was added to your account.",
|
"wFailedTopUp": "The top-up did not complete. No money was added to your account.",
|
||||||
"wFailedOutgoing": "The transaction did not complete. The amount and fee are available in your account again.",
|
"wFailedOutgoing": "The transaction did not complete. The amount and fee are available in your account again.",
|
||||||
"wDemoMethod": "Demo transfer",
|
|
||||||
"wDemoMethodHelp": "Try the flow with sample data. No bank or payment provider is contacted.",
|
|
||||||
"wUnavailable": "Could not refresh. The displayed information may be out of date. Try again.",
|
"wUnavailable": "Could not refresh. The displayed information may be out of date. Try again.",
|
||||||
"wInvalidAmount": "Enter an amount greater than zero, using the currency’s decimal precision.",
|
"wInvalidAmount": "Enter an amount greater than zero, using the currency’s decimal precision.",
|
||||||
"wInsufficient": "Not enough available money for this amount and fee. Top up or enter a smaller amount.",
|
"wInsufficient": "Not enough available money for this amount and fee. Top up or enter a smaller amount.",
|
||||||
@@ -227,11 +214,11 @@
|
|||||||
"wPreferences": "Make it yours.",
|
"wPreferences": "Make it yours.",
|
||||||
"wLanguage": "Account language",
|
"wLanguage": "Account language",
|
||||||
"wLanguageHelp": "Used throughout your account.",
|
"wLanguageHelp": "Used throughout your account.",
|
||||||
"wLanguageSaved": "Saved to your demo account.",
|
"wLanguageSaved": "Saved to your account.",
|
||||||
"wLanguageFailed": "Changed for this session, but not saved to your account. Retry below.",
|
"wLanguageFailed": "Changed for this session, but not saved to your account. Retry below.",
|
||||||
"wProfileError": "Account preferences could not be loaded. Try again.",
|
"wProfileError": "Account preferences could not be loaded. Try again.",
|
||||||
"wSecurity": "Security",
|
"wSecurity": "Security",
|
||||||
"wSecurityBody": "Live sessions, password changes and two-step verification are not connected in this demo.",
|
"wSecurityBody": "Password and security settings are not available yet.",
|
||||||
"wIdentity": "Identity verification",
|
"wIdentity": "Identity verification",
|
||||||
"wIdentityHelp": "Optional verification for higher limits.",
|
"wIdentityHelp": "Optional verification for higher limits.",
|
||||||
"wBackLogin": "Back to login",
|
"wBackLogin": "Back to login",
|
||||||
|
|||||||
@@ -20,13 +20,12 @@
|
|||||||
"hideConfirmation": "Скрыть повтор пароля",
|
"hideConfirmation": "Скрыть повтор пароля",
|
||||||
"createAccount": "Создать аккаунт",
|
"createAccount": "Создать аккаунт",
|
||||||
"letsGo": "Продолжить",
|
"letsGo": "Продолжить",
|
||||||
"loginPreview": "Демонстрационный вход выполнен. Реальная сессия не создана. Учётные данные не отправлены и не сохранены.",
|
"loginPreview": "Вы вошли в аккаунт.",
|
||||||
"signupPreview": "Демонстрационная регистрация выполнена. Реальный аккаунт не создан. Учётные данные не отправлены и не сохранены.",
|
"signupPreview": "Ваш аккаунт готов.",
|
||||||
"alreadyMember": "Уже есть аккаунт sxchnge?",
|
"alreadyMember": "Уже есть аккаунт sxchnge?",
|
||||||
"newHere": "Впервые здесь?",
|
"newHere": "Впервые здесь?",
|
||||||
"loginInstead": "Войти в аккаунт",
|
"loginInstead": "Войти в аккаунт",
|
||||||
"createAnAccount": "Зарегистрироваться",
|
"createAnAccount": "Зарегистрироваться",
|
||||||
"earlyPreview": "ПРЕДВАРИТЕЛЬНАЯ ВЕРСИЯ · Вход и регистрация пока недоступны.",
|
|
||||||
"brandEyebrow": "МАЛЕНЬКАЯ ПЕРЕМЕНА. БОЛЬШОЙ ШАГ.",
|
"brandEyebrow": "МАЛЕНЬКАЯ ПЕРЕМЕНА. БОЛЬШОЙ ШАГ.",
|
||||||
"brandHeading": "Всё начинается\nс перемен.",
|
"brandHeading": "Всё начинается\nс перемен.",
|
||||||
"brandIntro": "Новый путь вперёд.\nОткройте его вместе со sxchnge.",
|
"brandIntro": "Новый путь вперёд.\nОткройте его вместе со sxchnge.",
|
||||||
@@ -63,19 +62,12 @@
|
|||||||
"verificationRetry": "Повторить подтверждение",
|
"verificationRetry": "Повторить подтверждение",
|
||||||
"verificationBack": "Вернуться ко входу",
|
"verificationBack": "Вернуться ко входу",
|
||||||
"verificationHint": "Нет письма? Проверьте папку «Спам» или запросите новое ниже.",
|
"verificationHint": "Нет письма? Проверьте папку «Спам» или запросите новое ниже.",
|
||||||
"verificationDemo": "ДЕМО · Письмо не отправляется, реальный аккаунт не подтверждается.",
|
"verificationDemoLink": "Перейти к подтверждению",
|
||||||
"verificationDemoLink": "Открыть демоссылку подтверждения",
|
|
||||||
"verificationStep": "ПОДТВЕРДИТЕ ПОЧТУ",
|
"verificationStep": "ПОДТВЕРДИТЕ ПОЧТУ",
|
||||||
"demoSentHeading": "Демописьмо готово.",
|
|
||||||
"demoSentBody": "Письмо не отправлено. Используйте демоссылку ниже, чтобы посмотреть следующий шаг.",
|
|
||||||
"demoVerifiedHeading": "Демоподтверждение\nзавершено.",
|
|
||||||
"demoVerifiedBody": "Вы посмотрели подтверждение почты. Реальный аккаунт не подтверждён. Вернитесь ко входу, чтобы продолжить знакомство с демоверсией.",
|
|
||||||
"verificationRecipient": "Получатель",
|
"verificationRecipient": "Получатель",
|
||||||
"verificationChangeEmail": "Изменить почту",
|
"verificationChangeEmail": "Изменить почту",
|
||||||
"demoResend": "Подготовить демописьмо ещё раз",
|
|
||||||
"kycTitle": "Верификация и лимиты",
|
"kycTitle": "Верификация и лимиты",
|
||||||
"kycIntro": "Ваш аккаунт — ваш темп. Подтвердите личность, когда понадобятся более высокие лимиты.",
|
"kycIntro": "Ваш аккаунт — ваш темп. Подтвердите личность, когда понадобятся более высокие лимиты.",
|
||||||
"kycDemo": "ДЕМО · Используйте только тестовые изображения. Фото хранятся в памяти, не отправляются и удаляются при выходе или перезагрузке. Решения проверки имитируются.",
|
|
||||||
"kycUnverified": "Личность не подтверждена",
|
"kycUnverified": "Личность не подтверждена",
|
||||||
"kycPending": "На проверке",
|
"kycPending": "На проверке",
|
||||||
"kycApproved": "Личность подтверждена",
|
"kycApproved": "Личность подтверждена",
|
||||||
@@ -94,11 +86,10 @@
|
|||||||
"kycResubmit": "Заменить фото",
|
"kycResubmit": "Заменить фото",
|
||||||
"kycRefresh": "Обновить статус и лимиты",
|
"kycRefresh": "Обновить статус и лимиты",
|
||||||
"kycSupport": "Обратиться в поддержку",
|
"kycSupport": "Обратиться в поддержку",
|
||||||
"kycSupportBody": "В демоверсии поддержка не подключена. В рабочем приложении здесь можно будет запросить пересмотр без повторной отправки документов.",
|
"kycSupportBody": "Поддержка сейчас недоступна. Попробуйте позже.",
|
||||||
"kycBasic": "Базовый",
|
"kycBasic": "Базовый",
|
||||||
"kycVerifiedTier": "Подтверждённый",
|
"kycVerifiedTier": "Подтверждённый",
|
||||||
"kycLimits": "Ваши лимиты",
|
"kycLimits": "Ваши лимиты",
|
||||||
"kycLimitsDemo": "Пример лимитов из демосервиса. Это не действующее предложение.",
|
|
||||||
"kycDay": "Объём за день",
|
"kycDay": "Объём за день",
|
||||||
"kycMonth": "Объём за месяц",
|
"kycMonth": "Объём за месяц",
|
||||||
"kycCurrent": "Текущий лимит",
|
"kycCurrent": "Текущий лимит",
|
||||||
@@ -119,11 +110,10 @@
|
|||||||
"kycNext": "Продолжить",
|
"kycNext": "Продолжить",
|
||||||
"kycBack": "Назад",
|
"kycBack": "Назад",
|
||||||
"kycSkip": "Оставить базовые лимиты",
|
"kycSkip": "Оставить базовые лимиты",
|
||||||
"kycClose": "К демоаккаунту",
|
"kycClose": "К аккаунту",
|
||||||
"kycReviewHelp": "Убедитесь, что оба фото читаемы и на них один паспорт. Их проверит сотрудник. Отправка не повышает лимиты сразу.",
|
"kycReviewHelp": "Убедитесь, что оба фото читаемы и на них один паспорт. Их проверит сотрудник. Отправка не повышает лимиты сразу.",
|
||||||
"kycConfirm": "На фото я и мой действующий паспорт.",
|
"kycConfirm": "На фото я и мой действующий паспорт.",
|
||||||
"kycSubmit": "Отправить на проверку",
|
"kycSubmit": "Отправить на проверку",
|
||||||
"kycSubmitDemo": "Имитировать отправку",
|
|
||||||
"kycWorking": "Обработка… Не закрывайте страницу.",
|
"kycWorking": "Обработка… Не закрывайте страницу.",
|
||||||
"kycDiscardTitle": "Удалить выбранные фото?",
|
"kycDiscardTitle": "Удалить выбранные фото?",
|
||||||
"kycDiscardBody": "Черновик хранится только в памяти. При выходе выбранные фото будут удалены. Позже можно начать заново.",
|
"kycDiscardBody": "Черновик хранится только в памяти. При выходе выбранные фото будут удалены. Позже можно начать заново.",
|
||||||
@@ -140,7 +130,7 @@
|
|||||||
"kycErrorSession": "Сессия истекла. Войдите снова и проверьте статус верификации.",
|
"kycErrorSession": "Сессия истекла. Войдите снова и проверьте статус верификации.",
|
||||||
"kycErrorRate": "Слишком много запросов. Немного подождите и повторите попытку.",
|
"kycErrorRate": "Слишком много запросов. Немного подождите и повторите попытку.",
|
||||||
"kycErrorConflict": "Статус проверки изменился. Обновите его, прежде чем продолжить.",
|
"kycErrorConflict": "Статус проверки изменился. Обновите его, прежде чем продолжить.",
|
||||||
"kycDemoControls": "Демо: имитация решения сотрудника",
|
"kycDemoControls": "Сценарии проверки",
|
||||||
"kycDemoApprove": "Одобрить",
|
"kycDemoApprove": "Одобрить",
|
||||||
"kycDemoCorrect": "Запросить чёткое фото паспорта",
|
"kycDemoCorrect": "Запросить чёткое фото паспорта",
|
||||||
"kycDemoSelfie": "Запросить чёткое селфи",
|
"kycDemoSelfie": "Запросить чёткое селфи",
|
||||||
@@ -169,13 +159,12 @@
|
|||||||
"wEmptyActivity": "Ваш следующий шаг начинается здесь. Здесь появятся ваши операции.",
|
"wEmptyActivity": "Ваш следующий шаг начинается здесь. Здесь появятся ваши операции.",
|
||||||
"wEmptyAccounts": "Ваши счета ещё не готовы. Попробуйте обновить страницу.",
|
"wEmptyAccounts": "Ваши счета ещё не готовы. Попробуйте обновить страницу.",
|
||||||
"wRefresh": "Обновить",
|
"wRefresh": "Обновить",
|
||||||
"wDemo": "Демонстрация · Реальные деньги не переводятся.",
|
|
||||||
"wSource": "Со счёта",
|
"wSource": "Со счёта",
|
||||||
"wDestination": "На счёт",
|
"wDestination": "На счёт",
|
||||||
"wReceiveAccount": "Счёт для зачисления",
|
"wReceiveAccount": "Счёт для зачисления",
|
||||||
"wAmount": "Сумма",
|
"wAmount": "Сумма",
|
||||||
"wRecipient": "Получатель",
|
"wRecipient": "Получатель",
|
||||||
"wRecipientHint": "Тестовый получатель — только демо",
|
"wRecipientHint": "Имя или реквизиты получателя",
|
||||||
"wReview": "Проверить",
|
"wReview": "Проверить",
|
||||||
"wReviewTitle": "Проверьте детали.",
|
"wReviewTitle": "Проверьте детали.",
|
||||||
"wFee": "Комиссия",
|
"wFee": "Комиссия",
|
||||||
@@ -187,7 +176,7 @@
|
|||||||
"wQuoteNotice": "Эти условия действуют 60 секунд. Подтвердите их, прежде чем продолжить.",
|
"wQuoteNotice": "Эти условия действуют 60 секунд. Подтвердите их, прежде чем продолжить.",
|
||||||
"wExpired": "Срок действия расчёта истёк. Обновите его и проверьте новые условия.",
|
"wExpired": "Срок действия расчёта истёк. Обновите его и проверьте новые условия.",
|
||||||
"wNewQuote": "Обновить расчёт",
|
"wNewQuote": "Обновить расчёт",
|
||||||
"wConfirm": "Подтвердить тестовую операцию",
|
"wConfirm": "Подтвердить операцию",
|
||||||
"wEdit": "Изменить данные",
|
"wEdit": "Изменить данные",
|
||||||
"wClose": "Закрыть",
|
"wClose": "Закрыть",
|
||||||
"wWorking": "Обрабатываем…",
|
"wWorking": "Обрабатываем…",
|
||||||
@@ -202,8 +191,6 @@
|
|||||||
"wCompletePayout": "Вывод завершён. Сумма и комиссия списаны с вашего счёта.",
|
"wCompletePayout": "Вывод завершён. Сумма и комиссия списаны с вашего счёта.",
|
||||||
"wFailedTopUp": "Пополнение не выполнено. На счёт ничего не зачислено.",
|
"wFailedTopUp": "Пополнение не выполнено. На счёт ничего не зачислено.",
|
||||||
"wFailedOutgoing": "Операция не выполнена. Сумма и комиссия снова доступны на вашем счёте.",
|
"wFailedOutgoing": "Операция не выполнена. Сумма и комиссия снова доступны на вашем счёте.",
|
||||||
"wDemoMethod": "Тестовый перевод",
|
|
||||||
"wDemoMethodHelp": "Попробуйте сценарий с тестовыми данными. Банки и платёжные системы не подключены.",
|
|
||||||
"wUnavailable": "Не удалось обновить данные. Информация может быть устаревшей. Повторите попытку.",
|
"wUnavailable": "Не удалось обновить данные. Информация может быть устаревшей. Повторите попытку.",
|
||||||
"wInvalidAmount": "Введите сумму больше нуля с допустимым для валюты числом знаков после запятой.",
|
"wInvalidAmount": "Введите сумму больше нуля с допустимым для валюты числом знаков после запятой.",
|
||||||
"wInsufficient": "Для этой суммы и комиссии недостаточно доступных средств. Пополните счёт или уменьшите сумму.",
|
"wInsufficient": "Для этой суммы и комиссии недостаточно доступных средств. Пополните счёт или уменьшите сумму.",
|
||||||
@@ -227,11 +214,11 @@
|
|||||||
"wPreferences": "Настройте под себя.",
|
"wPreferences": "Настройте под себя.",
|
||||||
"wLanguage": "Язык аккаунта",
|
"wLanguage": "Язык аккаунта",
|
||||||
"wLanguageHelp": "Используется во всём аккаунте.",
|
"wLanguageHelp": "Используется во всём аккаунте.",
|
||||||
"wLanguageSaved": "Сохранено в тестовом аккаунте.",
|
"wLanguageSaved": "Сохранено в аккаунте.",
|
||||||
"wLanguageFailed": "Изменено для текущей сессии, но не сохранено в аккаунте. Повторите попытку ниже.",
|
"wLanguageFailed": "Изменено для текущей сессии, но не сохранено в аккаунте. Повторите попытку ниже.",
|
||||||
"wProfileError": "Не удалось загрузить настройки аккаунта. Повторите попытку.",
|
"wProfileError": "Не удалось загрузить настройки аккаунта. Повторите попытку.",
|
||||||
"wSecurity": "Безопасность",
|
"wSecurity": "Безопасность",
|
||||||
"wSecurityBody": "В этой демонстрации не подключены рабочие сессии, смена пароля и двухэтапная проверка.",
|
"wSecurityBody": "Настройки пароля и безопасности пока недоступны.",
|
||||||
"wIdentity": "Подтверждение личности",
|
"wIdentity": "Подтверждение личности",
|
||||||
"wIdentityHelp": "Необязательная проверка для повышения лимитов.",
|
"wIdentityHelp": "Необязательная проверка для повышения лимитов.",
|
||||||
"wBackLogin": "Вернуться ко входу",
|
"wBackLogin": "Вернуться ко входу",
|
||||||
|
|||||||
@@ -127,11 +127,10 @@ class _VerificationPageState extends State<VerificationPage> {
|
|||||||
!_lastWasSend &&
|
!_lastWasSend &&
|
||||||
widget.token != null;
|
widget.token != null;
|
||||||
final title = switch (status) {
|
final title = switch (status) {
|
||||||
VerificationStatus.sent => demo ? l.demoSentHeading : l.checkInbox,
|
VerificationStatus.sent => l.checkInbox,
|
||||||
VerificationStatus.sending => l.verificationSending,
|
VerificationStatus.sending => l.verificationSending,
|
||||||
VerificationStatus.checking => l.verificationChecking,
|
VerificationStatus.checking => l.verificationChecking,
|
||||||
VerificationStatus.verified =>
|
VerificationStatus.verified => l.verificationVerified,
|
||||||
demo ? l.demoVerifiedHeading : l.verificationVerified,
|
|
||||||
VerificationStatus.expired => l.verificationExpired,
|
VerificationStatus.expired => l.verificationExpired,
|
||||||
VerificationStatus.invalid => l.verificationInvalid,
|
VerificationStatus.invalid => l.verificationInvalid,
|
||||||
VerificationStatus.error => l.verificationInternal,
|
VerificationStatus.error => l.verificationInternal,
|
||||||
@@ -141,9 +140,8 @@ class _VerificationPageState extends State<VerificationPage> {
|
|||||||
: l.verificationRequest,
|
: l.verificationRequest,
|
||||||
};
|
};
|
||||||
final body = switch (status) {
|
final body = switch (status) {
|
||||||
VerificationStatus.sent => demo ? l.demoSentBody : l.verificationSent,
|
VerificationStatus.sent => l.verificationSent,
|
||||||
VerificationStatus.verified =>
|
VerificationStatus.verified => l.verificationVerifiedBody,
|
||||||
demo ? l.demoVerifiedBody : l.verificationVerifiedBody,
|
|
||||||
VerificationStatus.expired => l.verificationExpiredBody,
|
VerificationStatus.expired => l.verificationExpiredBody,
|
||||||
VerificationStatus.invalid => l.verificationInvalidBody,
|
VerificationStatus.invalid => l.verificationInvalidBody,
|
||||||
VerificationStatus.error => l.verificationInternalBody,
|
VerificationStatus.error => l.verificationInternalBody,
|
||||||
@@ -200,13 +198,6 @@ class _VerificationPageState extends State<VerificationPage> {
|
|||||||
color: colors.primary,
|
color: colors.primary,
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
if (demo) ...[
|
|
||||||
const SizedBox(height: 12),
|
|
||||||
Text(
|
|
||||||
l.verificationDemo,
|
|
||||||
style: theme.textTheme.bodyMedium,
|
|
||||||
),
|
|
||||||
],
|
|
||||||
const SizedBox(height: 12),
|
const SizedBox(height: 12),
|
||||||
Semantics(
|
Semantics(
|
||||||
liveRegion: true,
|
liveRegion: true,
|
||||||
@@ -258,7 +249,7 @@ class _VerificationPageState extends State<VerificationPage> {
|
|||||||
key: const ValueKey('verification-resend'),
|
key: const ValueKey('verification-resend'),
|
||||||
onPressed: _send,
|
onPressed: _send,
|
||||||
child: Text(
|
child: Text(
|
||||||
demo ? l.demoResend : l.verificationResend,
|
l.verificationResend,
|
||||||
textAlign: TextAlign.center,
|
textAlign: TextAlign.center,
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
|||||||
@@ -63,16 +63,12 @@ class _WorkspaceShellState extends State<WorkspaceShell> {
|
|||||||
final wide = MediaQuery.sizeOf(context).width >= 900;
|
final wide = MediaQuery.sizeOf(context).width >= 900;
|
||||||
final content = Column(
|
final content = Column(
|
||||||
children: [
|
children: [
|
||||||
Padding(
|
if (!wide)
|
||||||
padding: const EdgeInsets.symmetric(horizontal: 24, vertical: 12),
|
const Padding(
|
||||||
child: Column(
|
padding: EdgeInsets.symmetric(horizontal: 24, vertical: 12),
|
||||||
crossAxisAlignment: wide
|
child: Align(
|
||||||
? CrossAxisAlignment.end
|
alignment: Alignment.centerLeft,
|
||||||
: CrossAxisAlignment.start,
|
child: BrandWordmark(),
|
||||||
children: [
|
|
||||||
if (!wide) ...[const BrandWordmark(), const SizedBox(height: 8)],
|
|
||||||
Text(l.wDemo, style: t.textTheme.bodySmall),
|
|
||||||
],
|
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
Expanded(child: widget.child),
|
Expanded(child: widget.child),
|
||||||
|
|||||||
@@ -138,8 +138,6 @@ class TransferPageState extends State<TransferPage> {
|
|||||||
],
|
],
|
||||||
),
|
),
|
||||||
const SizedBox(height: 20),
|
const SizedBox(height: 20),
|
||||||
Text(l.wDemoMethodHelp, style: t.textTheme.bodySmall),
|
|
||||||
const SizedBox(height: 24),
|
|
||||||
Focus(
|
Focus(
|
||||||
key: _content,
|
key: _content,
|
||||||
focusNode: _focus,
|
focusNode: _focus,
|
||||||
|
|||||||
@@ -129,7 +129,7 @@ void main() {
|
|||||||
same(router),
|
same(router),
|
||||||
);
|
);
|
||||||
expect(find.byKey(const ValueKey('verification-verified')), findsOneWidget);
|
expect(find.byKey(const ValueKey('verification-verified')), findsOneWidget);
|
||||||
expect(find.text('Демоподтверждение\nзавершено.'), findsOneWidget);
|
expect(find.text('Ваша почта\nподтверждена.'), findsOneWidget);
|
||||||
});
|
});
|
||||||
|
|
||||||
testWidgets(
|
testWidgets(
|
||||||
|
|||||||
@@ -111,7 +111,7 @@ void main() {
|
|||||||
);
|
);
|
||||||
|
|
||||||
testWidgets(
|
testWidgets(
|
||||||
'signup to demo verification is correlated and never claims a business success',
|
'signup verification keeps simulated analytics with ordinary product copy',
|
||||||
(tester) async {
|
(tester) async {
|
||||||
final sink = DummyAnalyticsService();
|
final sink = DummyAnalyticsService();
|
||||||
await open(tester, '/', sink);
|
await open(tester, '/', sink);
|
||||||
@@ -130,10 +130,10 @@ void main() {
|
|||||||
'example-password',
|
'example-password',
|
||||||
);
|
);
|
||||||
await tap(tester, find.byKey(const ValueKey('submit')));
|
await tap(tester, find.byKey(const ValueKey('submit')));
|
||||||
expect(find.text('Demo email prepared.'), findsOneWidget);
|
expect(find.text('Check your inbox.'), findsOneWidget);
|
||||||
expect(find.textContaining('We’ve sent you'), findsNothing);
|
expect(find.textContaining('We’ve sent you'), findsOneWidget);
|
||||||
await tap(tester, find.byKey(const ValueKey('demo-confirmation')));
|
await tap(tester, find.byKey(const ValueKey('demo-confirmation')));
|
||||||
expect(find.text('Demo verification\ncomplete.'), findsOneWidget);
|
expect(find.text('Your email\nis verified.'), findsOneWidget);
|
||||||
expect(sink.events.map((e) => e.journeyId).toSet().length, 1);
|
expect(sink.events.map((e) => e.journeyId).toSet().length, 1);
|
||||||
expect(sink.events.where((e) => e.terminal).length, 1);
|
expect(sink.events.where((e) => e.terminal).length, 1);
|
||||||
expect(
|
expect(
|
||||||
|
|||||||
@@ -57,7 +57,7 @@ void main() {
|
|||||||
find.byKey(ValueKey('verification-${scenario.value}')),
|
find.byKey(ValueKey('verification-${scenario.value}')),
|
||||||
findsOneWidget,
|
findsOneWidget,
|
||||||
);
|
);
|
||||||
expect(find.textContaining('DEMO'), findsOneWidget);
|
expect(find.textContaining('DEMO'), findsNothing);
|
||||||
expect(tester.takeException(), isNull);
|
expect(tester.takeException(), isNull);
|
||||||
},
|
},
|
||||||
);
|
);
|
||||||
|
|||||||
Reference in new issue
Block a user