Quotation

This commit is contained in:
Arseni
2026-01-21 21:52:36 +03:00
parent 1e5ff51e07
commit 6284625977
40 changed files with 1085 additions and 346 deletions

View File

@@ -54,7 +54,7 @@ class PaymentPageContent extends StatelessWidget {
Widget build(BuildContext context) {
final dimensions = AppDimensions();
final loc = AppLocalizations.of(context)!;
return Align(
alignment: Alignment.topCenter,
child: ConstrainedBox(

View File

@@ -50,7 +50,7 @@ class PaymentPageContent extends StatelessWidget {
Widget build(BuildContext context) {
final dimensions = AppDimensions();
final loc = AppLocalizations.of(context)!;
return Align(
alignment: Alignment.topCenter,
child: ConstrainedBox(

View File

@@ -1,5 +1,6 @@
import 'package:flutter/material.dart';
import 'package:pweb/models/button_state.dart';
import 'package:pweb/utils/dimensions.dart';
import 'package:pweb/generated/i18n/app_localizations.dart';
@@ -7,38 +8,61 @@ import 'package:pweb/generated/i18n/app_localizations.dart';
class SendButton extends StatelessWidget {
final VoidCallback onPressed;
final ButtonState state;
const SendButton({super.key, required this.onPressed});
const SendButton({
super.key,
required this.onPressed,
this.state = ButtonState.enabled,
});
@override
Widget build(BuildContext context) {
final theme = Theme.of(context);
final dimensions = AppDimensions();
final isEnabled = state == ButtonState.enabled;
final isLoading = state == ButtonState.loading;
final backgroundColor = isEnabled || isLoading
? theme.colorScheme.primary
: theme.colorScheme.onSurface.withValues(alpha: 0.12);
final textColor = isEnabled || isLoading
? 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,
fontWeight: FontWeight.w600,
),
),
child: isLoading
? SizedBox(
width: dimensions.iconSizeMedium,
height: dimensions.iconSizeMedium,
child: CircularProgressIndicator(
strokeWidth: 2,
valueColor: AlwaysStoppedAnimation<Color>(textColor),
),
)
: Text(
AppLocalizations.of(context)!.send,
style: theme.textTheme.bodyLarge?.copyWith(
color: textColor,
fontWeight: FontWeight.w600,
),
),
),
),
),
),
);
}
}
}