Yimaru-Mobile/lib/ui/widgets/custom_column_button.dart
2026-02-19 10:43:31 +03:00

54 lines
1.4 KiB
Dart

import 'package:flutter/material.dart';
import 'package:yimaru_app/ui/common/ui_helpers.dart';
class CustomColumnButton extends StatelessWidget {
final Color color;
final String label;
final IconData icon;
final GestureTapCallback? onTap;
const CustomColumnButton(
{super.key,
this.onTap,
required this.icon,
required this.label,
required this.color});
@override
Widget build(BuildContext context) => _buildColumnWrapper();
Widget _buildColumnWrapper() => GestureDetector(
onTap: onTap,
child: _buildColumn(),
);
Widget _buildColumn() => Column(
mainAxisSize: MainAxisSize.min,
crossAxisAlignment: CrossAxisAlignment.center,
mainAxisAlignment: MainAxisAlignment.end,
children: _buildColumnChildren(),
);
List<Widget> _buildColumnChildren() => [_buildIconWrapper(), _buildLabel()];
Widget _buildIconWrapper() => Container(
padding: const EdgeInsets.all(5),
decoration: BoxDecoration(
shape: BoxShape.circle,
color: color.withOpacity(0.1),
border: Border.all(color: color.withOpacity(0.75))),
child: _buildIcon(),
);
Widget _buildLabel() => Text(
label,
style: style14LG400.copyWith(color: color),
);
Widget _buildIcon() => Icon(
icon,
size: 14,
color: color,
);
}