refactoring for recipient addition page
This commit is contained in:
@@ -11,6 +11,7 @@ import 'package:pshared/provider/recipient/pmethods.dart';
|
||||
import 'package:pshared/provider/recipient/provider.dart';
|
||||
|
||||
import 'package:pweb/pages/payment_methods/payment_page/body.dart';
|
||||
import 'package:pweb/utils/recipient/filtering.dart';
|
||||
import 'package:pweb/widgets/sidebar/destinations.dart';
|
||||
import 'package:pweb/services/posthog.dart';
|
||||
import 'package:pweb/widgets/dialogs/payment_status_dialog.dart';
|
||||
@@ -35,6 +36,8 @@ class PaymentPage extends StatefulWidget {
|
||||
class _PaymentPageState extends State<PaymentPage> {
|
||||
late final TextEditingController _searchController;
|
||||
late final FocusNode _searchFocusNode;
|
||||
Recipient? _previousRecipient;
|
||||
String _query = '';
|
||||
|
||||
@override
|
||||
void initState() {
|
||||
@@ -58,17 +61,25 @@ class _PaymentPageState extends State<PaymentPage> {
|
||||
}
|
||||
|
||||
void _handleSearchChanged(String query) {
|
||||
context.read<RecipientsProvider>().setQuery(query);
|
||||
setState(() {
|
||||
_query = query;
|
||||
});
|
||||
}
|
||||
|
||||
void _handleRecipientSelected(Recipient recipient) {
|
||||
final recipientProvider = context.read<RecipientsProvider>();
|
||||
setState(() {
|
||||
_previousRecipient = recipientProvider.currentObject;
|
||||
});
|
||||
recipientProvider.setCurrentObject(recipient.id);
|
||||
_clearSearchField();
|
||||
}
|
||||
|
||||
void _handleRecipientCleared() {
|
||||
final recipientProvider = context.read<RecipientsProvider>();
|
||||
setState(() {
|
||||
_previousRecipient = recipientProvider.currentObject;
|
||||
});
|
||||
recipientProvider.setCurrentObject(null);
|
||||
_clearSearchField();
|
||||
}
|
||||
@@ -76,7 +87,9 @@ class _PaymentPageState extends State<PaymentPage> {
|
||||
void _clearSearchField() {
|
||||
_searchController.clear();
|
||||
_searchFocusNode.unfocus();
|
||||
context.read<RecipientsProvider>().setQuery('');
|
||||
setState(() {
|
||||
_query = '';
|
||||
});
|
||||
}
|
||||
|
||||
void _handleSendPayment() {
|
||||
@@ -97,16 +110,21 @@ class _PaymentPageState extends State<PaymentPage> {
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
final methodsProvider = context.watch<PaymentMethodsProvider>();
|
||||
final recipientProvider = context.read<RecipientsProvider>();
|
||||
final recipient = context.select<RecipientsProvider, Recipient?>(
|
||||
(provider) => provider.currentObject,
|
||||
final recipientProvider = context.watch<RecipientsProvider>();
|
||||
final recipient = recipientProvider.currentObject;
|
||||
final filteredRecipients = filterRecipients(
|
||||
recipients: recipientProvider.recipients,
|
||||
query: _query,
|
||||
);
|
||||
|
||||
return PaymentPageBody(
|
||||
onBack: widget.onBack,
|
||||
fallbackDestination: widget.fallbackDestination,
|
||||
recipient: recipient,
|
||||
previousRecipient: _previousRecipient,
|
||||
recipientProvider: recipientProvider,
|
||||
searchQuery: _query,
|
||||
filteredRecipients: filteredRecipients,
|
||||
methodsProvider: methodsProvider,
|
||||
onWalletSelected: context.read<WalletsController>().selectWallet,
|
||||
searchController: _searchController,
|
||||
|
||||
Reference in New Issue
Block a user