app working with sandbox
This commit is contained in:
@@ -0,0 +1,59 @@
|
||||
/// Shared UI helpers for bank connect actions.
|
||||
library;
|
||||
|
||||
import 'package:flutter/material.dart';
|
||||
|
||||
import '../providers/bank_provider.dart';
|
||||
import '../screens/bank_auth_screen.dart';
|
||||
|
||||
Future<void> runConnectBank(BuildContext context, BankController bank) async {
|
||||
final start = await bank.beginConnect();
|
||||
if (!context.mounted) return;
|
||||
|
||||
if (start == null) {
|
||||
ScaffoldMessenger.of(context).showSnackBar(
|
||||
SnackBar(content: Text(bank.error ?? 'Could not start bank connect')),
|
||||
);
|
||||
return;
|
||||
}
|
||||
|
||||
final result = await Navigator.of(context).push<BankAuthResult>(
|
||||
MaterialPageRoute(
|
||||
builder: (_) => BankAuthScreen(
|
||||
authUrl: start.authUrl,
|
||||
pendingState: start.state,
|
||||
),
|
||||
),
|
||||
);
|
||||
|
||||
if (!context.mounted) return;
|
||||
if (result == null) return;
|
||||
|
||||
if (result.error != null && result.error!.isNotEmpty) {
|
||||
ScaffoldMessenger.of(context).showSnackBar(
|
||||
SnackBar(content: Text('Bank auth failed: ${result.error}')),
|
||||
);
|
||||
return;
|
||||
}
|
||||
|
||||
if (!result.hasCode) {
|
||||
ScaffoldMessenger.of(context).showSnackBar(
|
||||
const SnackBar(content: Text('Bank redirect missing code')),
|
||||
);
|
||||
return;
|
||||
}
|
||||
|
||||
final linked = await bank.completeWithCode(
|
||||
code: result.code!,
|
||||
state: result.state,
|
||||
);
|
||||
if (!context.mounted) return;
|
||||
|
||||
ScaffoldMessenger.of(context).showSnackBar(
|
||||
SnackBar(
|
||||
content: Text(
|
||||
linked ? 'Bank linked' : (bank.error ?? 'Could not complete connect'),
|
||||
),
|
||||
),
|
||||
);
|
||||
}
|
||||
Reference in New Issue
Block a user