Files
sendico/frontend/pweb/lib/pages/payment_methods/add/wallet.dart
Arseni 3b04753f4e
Some checks are pending
ci/woodpecker/push/bump_version Pipeline is pending
ci/woodpecker/push/fx_oracle Pipeline is pending
ci/woodpecker/push/ledger Pipeline is pending
ci/woodpecker/push/nats Pipeline is pending
ci/woodpecker/push/notification Pipeline is pending
ci/woodpecker/push/payments_orchestrator Pipeline is pending
ci/woodpecker/push/billing_fees Pipeline was successful
ci/woodpecker/push/bff Pipeline was successful
ci/woodpecker/push/db Pipeline was successful
ci/woodpecker/push/frontend Pipeline is running
ci/woodpecker/push/chain_gateway Pipeline was successful
ci/woodpecker/push/fx_ingestor Pipeline is running
Revert "Merge branch 'devKA' into devka (resolve conflicts)"
This reverts commit 5f4184760d, reversing
changes made to 5e1da9617f.

Reverting changes on main
2025-12-04 15:38:01 +03:00

71 lines
1.8 KiB
Dart

import 'package:flutter/material.dart';
import 'package:pshared/models/payment/methods/wallet.dart';
import 'package:pweb/generated/i18n/app_localizations.dart';
import 'package:pweb/utils/text_field_styles.dart';
class WalletForm extends StatefulWidget {
final void Function(WalletPaymentMethod) onChanged;
final WalletPaymentMethod? initialData;
final bool isEditable;
const WalletForm({
super.key,
required this.onChanged,
this.initialData,
required this.isEditable,
});
@override
State<WalletForm> createState() => _WalletFormState();
}
class _WalletFormState extends State<WalletForm> {
late TextEditingController _walletIdController;
@override
void initState() {
super.initState();
_walletIdController = TextEditingController(text: widget.initialData?.walletId);
}
void _emit() {
if (_walletIdController.text.isNotEmpty) {
widget.onChanged(WalletPaymentMethod(walletId: _walletIdController.text));
} else {
}
}
@override
void didUpdateWidget(covariant WalletForm oldWidget) {
super.didUpdateWidget(oldWidget);
final newData = widget.initialData;
final oldData = oldWidget.initialData;
if (newData == null && oldData != null) {
_walletIdController.clear();
return;
}
if (newData != null && newData != oldData) {
_walletIdController.text = newData.walletId;
}
}
@override
Widget build(BuildContext context) {
final l10n = AppLocalizations.of(context)!;
return TextFormField(
readOnly: !widget.isEditable,
controller: _walletIdController,
decoration: getInputDecoration(context, l10n.walletId, widget.isEditable),
style: getTextFieldStyle(context, widget.isEditable),
onChanged: (_) => _emit(),
validator: (val) => (val?.isEmpty ?? true) ? l10n.enterWalletId : null,
);
}
}