fix: improve transfer recognition and local data safety

This commit is contained in:
2026-07-26 21:36:46 +08:00
parent 7df25edd96
commit 882293343e
21 changed files with 505 additions and 128 deletions
@@ -2,6 +2,11 @@ import 'package:flutter/material.dart';
import 'package:go_router/go_router.dart';
import 'package:miaoji_zhang/shared/api/api_client.dart';
import 'package:miaoji_zhang/shared/api/auth_api.dart';
import 'package:miaoji_zhang/features/auth/local_data_recovery.dart';
import 'package:miaoji_zhang/shared/services/current_ledger_store.dart';
import 'package:miaoji_zhang/shared/services/local_database.dart';
import 'package:miaoji_zhang/shared/services/push_service.dart';
import 'package:miaoji_zhang/shared/services/session_store.dart';
import 'package:miaoji_zhang/shared/theme/app_theme.dart';
class RegisterPage extends StatefulWidget {
@@ -40,9 +45,26 @@ class _RegisterPageState extends State<RegisterPage> {
}
setState(() => _loading = true);
try {
await AuthApi.register(username, _pass.text, agreedToTerms: _agreed);
final guestSnapshot = SessionStore.instance.isGuest
? LocalDatabase.instance.guestSnapshot()
: null;
final profile = await AuthApi.register(
username,
_pass.text,
agreedToTerms: _agreed,
);
await PushService.instance.refresh();
await CurrentLedgerStore.instance.ensureLoaded(force: true);
if (!mounted) return;
context.go('/onboarding');
await offerLocalDataRecovery(context, guestSnapshot: guestSnapshot);
if (!mounted) return;
context.go(
!profile.onboardingDone
? '/onboarding'
: profile.appMode == 'ai'
? '/ai-mode'
: '/home',
);
} catch (error) {
if (!mounted) return;
_message(apiErrorMessage(error));