Aditya Siregar 73320561b0 first commit
2025-07-30 22:38:44 +07:00

77 lines
2.2 KiB
Dart

import 'package:flutter/material.dart';
import 'package:enaklo_pos/core/extensions/build_context_ext.dart';
import 'package:flutter_svg/flutter_svg.dart';
import '../constants/colors.dart';
import 'components.dart';
class MenuButton extends StatelessWidget {
final String iconPath;
final String label;
final bool isActive;
final VoidCallback onPressed;
final bool isImage;
final double size;
const MenuButton({
super.key,
required this.iconPath,
required this.label,
this.isActive = false,
required this.onPressed,
this.isImage = false,
this.size = 90,
});
@override
Widget build(BuildContext context) {
return Flexible(
child: InkWell(
onTap: onPressed,
borderRadius: const BorderRadius.all(Radius.circular(6.0)),
child: Container(
width: context.deviceWidth,
padding: const EdgeInsets.all(15.0),
decoration: BoxDecoration(
color: isActive ? AppColors.primary : AppColors.white,
borderRadius: const BorderRadius.all(Radius.circular(6.0)),
boxShadow: [
BoxShadow(
offset: const Offset(0, 4),
blurRadius: 20.0,
blurStyle: BlurStyle.outer,
spreadRadius: 0,
color: AppColors.black.withOpacity(0.1),
),
],
),
child: Column(
children: [
isImage
? Image.asset(iconPath,
width: size, height: size, fit: BoxFit.contain)
: SvgPicture.asset(
iconPath,
colorFilter: ColorFilter.mode(
isActive ? AppColors.white : AppColors.primary,
BlendMode.srcIn,
),
),
const SpaceHeight(10.0),
Text(
label,
style: TextStyle(
color: isActive ? AppColors.white : AppColors.primary,
fontSize: 12,
fontWeight: FontWeight.w700,
),
),
],
),
),
),
);
}
}