Reuploading fixed qoutation

This commit is contained in:
Arseni
2026-01-20 19:05:41 +03:00
parent ae6c617136
commit d14e6d0f7a
35 changed files with 951 additions and 286 deletions

View File

@@ -4,6 +4,8 @@ import 'package:provider/provider.dart';
import 'package:pshared/models/payment/wallet.dart';
import 'package:pshared/models/recipient/recipient.dart';
import 'package:pshared/provider/payment/provider.dart';
import 'package:pshared/provider/payment/quotation/quotation.dart';
import 'package:pshared/provider/payment/wallets.dart';
import 'package:pshared/provider/recipient/provider.dart';
@@ -54,6 +56,9 @@ class PaymentPageContent extends StatelessWidget {
Widget build(BuildContext context) {
final dimensions = AppDimensions();
final loc = AppLocalizations.of(context)!;
final quotationProvider = context.watch<QuotationProvider>();
final paymentProvider = context.watch<PaymentProvider>();
final isSendEnabled = quotationProvider.hasLiveQuote && !paymentProvider.isLoading;
return Align(
alignment: Alignment.topCenter,
@@ -112,7 +117,7 @@ class PaymentPageContent extends StatelessWidget {
SizedBox(height: dimensions.paddingLarge),
const PaymentFormWidget(),
SizedBox(height: dimensions.paddingXXXLarge),
SendButton(onPressed: onSend),
SendButton(onPressed: onSend, isEnabled: isSendEnabled),
SizedBox(height: dimensions.paddingLarge),
],
),

View File

@@ -1,7 +1,11 @@
import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
import 'package:pshared/models/payment/wallet.dart';
import 'package:pshared/models/recipient/recipient.dart';
import 'package:pshared/provider/payment/provider.dart';
import 'package:pshared/provider/payment/quotation/quotation.dart';
import 'package:pshared/provider/recipient/provider.dart';
import 'package:pweb/pages/dashboard/payouts/form.dart';
@@ -50,6 +54,9 @@ class PaymentPageContent extends StatelessWidget {
Widget build(BuildContext context) {
final dimensions = AppDimensions();
final loc = AppLocalizations.of(context)!;
final quotationProvider = context.watch<QuotationProvider>();
final paymentProvider = context.watch<PaymentProvider>();
final isSendEnabled = quotationProvider.hasLiveQuote && !paymentProvider.isLoading;
return Align(
alignment: Alignment.topCenter,
@@ -95,7 +102,7 @@ class PaymentPageContent extends StatelessWidget {
SizedBox(height: dimensions.paddingLarge),
const PaymentFormWidget(),
SizedBox(height: dimensions.paddingXXXLarge),
SendButton(onPressed: onSend),
SendButton(onPressed: onSend, isEnabled: isSendEnabled),
SizedBox(height: dimensions.paddingLarge),
],
),

View File

@@ -7,31 +7,43 @@ import 'package:pweb/generated/i18n/app_localizations.dart';
class SendButton extends StatelessWidget {
final VoidCallback onPressed;
final bool isEnabled;
const SendButton({super.key, required this.onPressed});
const SendButton({
super.key,
required this.onPressed,
this.isEnabled = true,
});
@override
Widget build(BuildContext context) {
final theme = Theme.of(context);
final dimensions = AppDimensions();
final backgroundColor = isEnabled
? theme.colorScheme.primary
: theme.colorScheme.onSurface.withValues(alpha: 0.12);
final textColor = isEnabled
? theme.colorScheme.onSecondary
: theme.colorScheme.onSurface.withValues(alpha: 0.38);
return Center(
child: SizedBox(
width: dimensions.buttonWidth,
height: dimensions.buttonHeight,
child: InkWell(
borderRadius: BorderRadius.circular(dimensions.borderRadiusSmall),
onTap: onPressed,
onTap: isEnabled ? onPressed : null,
child: Container(
decoration: BoxDecoration(
color: theme.colorScheme.primary,
color: backgroundColor,
borderRadius: BorderRadius.circular(dimensions.borderRadiusSmall),
),
child: Center(
child: Text(
AppLocalizations.of(context)!.send,
style: theme.textTheme.bodyLarge?.copyWith(
color: theme.colorScheme.onSecondary,
color: textColor,
fontWeight: FontWeight.w600,
),
),
@@ -41,4 +53,4 @@ class SendButton extends StatelessWidget {
),
);
}
}
}