added comment for payment, changed intent and added amount ui in operations

This commit is contained in:
Arseni
2026-03-12 00:09:38 +03:00
parent ddc2f1facc
commit 13b84e1e0f
26 changed files with 271 additions and 298 deletions

View File

@@ -0,0 +1,53 @@
import 'package:flutter/material.dart';
import 'package:pshared/provider/payment/amount.dart';
class PaymentCommentFieldController extends ChangeNotifier {
final TextEditingController textController;
PaymentAmountProvider? _provider;
bool _isSyncingText = false;
PaymentCommentFieldController({required String initialComment})
: textController = TextEditingController(text: initialComment);
void update(PaymentAmountProvider provider) {
if (identical(_provider, provider)) {
_syncTextWithComment(provider.comment);
return;
}
_provider?.removeListener(_handleProviderChanged);
_provider = provider;
_provider?.addListener(_handleProviderChanged);
_syncTextWithComment(provider.comment);
}
void handleChanged(String value) {
if (_isSyncingText) return;
_provider?.setComment(value);
}
void _handleProviderChanged() {
final provider = _provider;
if (provider == null) return;
_syncTextWithComment(provider.comment);
}
void _syncTextWithComment(String comment) {
if (textController.text == comment) return;
_isSyncingText = true;
textController.value = TextEditingValue(
text: comment,
selection: TextSelection.collapsed(offset: comment.length),
);
_isSyncingText = false;
}
@override
void dispose() {
_provider?.removeListener(_handleProviderChanged);
textController.dispose();
super.dispose();
}
}