new project stable version

This commit is contained in:
2026-05-10 19:11:31 +03:00
commit 3616f84556
391 changed files with 23857 additions and 0 deletions

View File

@@ -0,0 +1,131 @@
import 'package:bot_toast/bot_toast.dart';
import 'package:flutter/material.dart';
import 'package:go_router/go_router.dart';
class PaymentNotificationCard extends StatelessWidget {
final VoidCallback onBindCard;
final VoidCallback onClose;
const PaymentNotificationCard({
super.key,
required this.onBindCard,
required this.onClose,
});
@override
Widget build(BuildContext context) {
return Padding(
padding: const EdgeInsets.symmetric(horizontal: 20),
child: Stack(
clipBehavior: Clip.none,
children: [
Container(
padding: const EdgeInsets.fromLTRB(24, 10, 20, 24),
decoration: BoxDecoration(
color: const Color(0xFF2D2B4D),
borderRadius: BorderRadius.circular(32),
),
child: Column(
mainAxisSize: MainAxisSize.min,
crossAxisAlignment: CrossAxisAlignment.start,
children: [
const SizedBox(height: 8),
Padding(
padding: const EdgeInsets.only(left: 64),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
const Text(
'Не привязана карта',
style: TextStyle(
color: Colors.white,
fontSize: 18,
fontWeight: FontWeight.bold,
),
),
const SizedBox(height: 12),
const Text(
'Привяжите карту, чтобы начать поездку',
style: TextStyle(
color: Colors.white70,
fontSize: 14,
height: 1.2,
),
),
const SizedBox(height: 8),
FilledButton(
onPressed: onBindCard,
style: FilledButton.styleFrom(
backgroundColor: const Color(0xFF0D0B26),
padding: const EdgeInsets.symmetric(
horizontal: 20,
vertical: 10,
),
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(24),
),
),
child: const Row(
children: [
const Icon(
Icons.credit_card,
color: Color(0xFF80FFD1),
size: 28,
),
const SizedBox(width: 16),
const Expanded(
child: Text(
'Привязать карту',
style: TextStyle(
color: Colors.white,
fontSize: 14,
fontWeight: FontWeight.w500,
),
),
),
Icon(
Icons.add,
color: Colors.cyanAccent,
size: 20,
),
],
),
),
],
),
),
],
),
),
Positioned(
top: -20,
left: -30,
child: Image.asset(
'assets/icons/card-screen.png',
width: 120,
height: 120,
fit: BoxFit.contain,
),
),
Positioned(
top: 15,
right: 15,
child: GestureDetector(
onTap: onClose,
child: Container(
padding: const EdgeInsets.all(6),
decoration: BoxDecoration(
color: Colors.white.withOpacity(0.2),
shape: BoxShape.circle,
),
child: const Icon(Icons.close, color: Colors.white70, size: 20),
),
),
),
],
),
);
}
}