From fb6e00c00b9f94e0f082cd889932b6b4bf13ffd0 Mon Sep 17 00:00:00 2001 From: sdarbinyan Date: Tue, 5 May 2026 14:43:09 +0400 Subject: [PATCH] autofill --- src/app/pages/create-page/create-page.ts | 28 +++++++++++-------- .../pages/fastcheck-page/fastcheck-page.ts | 8 ++++-- 2 files changed, 22 insertions(+), 14 deletions(-) diff --git a/src/app/pages/create-page/create-page.ts b/src/app/pages/create-page/create-page.ts index da03049..7b616f4 100644 --- a/src/app/pages/create-page/create-page.ts +++ b/src/app/pages/create-page/create-page.ts @@ -34,10 +34,12 @@ interface QrStatusResponse { } interface CreateFastcheckResponse { - fastcheck: string; - expiration: string; - code: string; - Status: boolean; + id?: string; // real field name from server + fastcheck?: string; // per API doc fallback + expiration?: string; + code?: string; + amount?: number; + Status?: boolean; } /** Generate a v4-like UUID without crypto dependency. */ @@ -225,15 +227,17 @@ export class CreatePage { ) .subscribe({ next: (res) => { - if (res?.fastcheck) { - this.store.setCreated({ - fastcheck: res.fastcheck, - code: res.code, - amount: this.amount() ?? null, - expiration: res.expiration - }); + const fcNumber = res?.id ?? res?.fastcheck ?? ''; + const payload = { + fastcheck: fcNumber, + code: res?.code ?? '', + amount: res?.amount ?? this.amount() ?? null, + expiration: res?.expiration + }; + if (fcNumber) { + this.store.setCreated(payload); } - this.router.navigate(['/']); + this.router.navigate(['/'], { state: fcNumber ? payload : {} }); }, error: () => this.router.navigate(['/']) }); diff --git a/src/app/pages/fastcheck-page/fastcheck-page.ts b/src/app/pages/fastcheck-page/fastcheck-page.ts index 1611d77..7b8f07c 100644 --- a/src/app/pages/fastcheck-page/fastcheck-page.ts +++ b/src/app/pages/fastcheck-page/fastcheck-page.ts @@ -75,8 +75,12 @@ export class FastcheckPage { }); constructor() { - // Pull autofill data left over by the create page. - const created = this.store.consume(); + // Pull autofill data: prefer router navigation state, fall back to service. + const navState = typeof window !== 'undefined' ? (window.history?.state ?? {}) : {}; + const created = (navState?.fastcheck) + ? { fastcheck: navState.fastcheck, code: navState.code ?? '', amount: navState.amount ?? null, expiration: navState.expiration } + : this.store.consume(); + if (created) { this.fastcheckNumber.set(created.fastcheck); this.fastcheckAmount.set(created.amount);