flutter-freaccess-hub/lib/commons/components/atoms/menu_card_item/widget.dart

109 lines
5.1 KiB
Dart

import 'package:flutter/material.dart';
import 'package:google_fonts/google_fonts.dart';
import 'package:hub/commons/components/molecules/menu_item/widget.dart';
import 'package:hub/commons/widgets/custom_icons.dart';
import 'package:hub/commons/widgets/flutter_flow_theme.dart';
import 'package:hub/commons/widgets/flutter_flow_util.dart';
class MenuButtonWidget extends MenuEntry {
const MenuButtonWidget({
Key? key,
this.action,
this.title,
this.icon,
}) : super(key: key);
final Function()? action;
final String? title;
final IconData? icon;
@override
_MenuButtonWidgetState createState() => _MenuButtonWidgetState();
}
class _MenuButtonWidgetState extends State<MenuButtonWidget> {
@override
Widget build(BuildContext context) {
return InkWell(
splashColor: Colors.transparent,
focusColor: Colors.transparent,
hoverColor: Colors.transparent,
highlightColor: Colors.transparent,
onTap: () async {
await widget.action?.call();
},
child: Padding(
padding: const EdgeInsetsDirectional.fromSTEB(
0.0, 0.0, 0.0, 1.0),
child: Container(
width: double.infinity,
decoration: BoxDecoration(
borderRadius: BorderRadius.circular(24.0),
),
child: Padding(
padding: const EdgeInsets.all(4.0),
child: Row(
mainAxisSize: MainAxisSize.max,
mainAxisAlignment:
MainAxisAlignment.spaceBetween,
children: [
Container(
width: 40.0,
height: 40.0,
decoration: const BoxDecoration(
shape: BoxShape.circle,
),
child: Icon(
FFIcons.kfast,
color:
FlutterFlowTheme.of(context)
.primary,
size: 20.0,
),
),
Expanded(
child: Padding(
padding:
const EdgeInsetsDirectional
.fromSTEB(
10.0, 0.0, 0.0, 0.0),
child: Text(
widget.title ?? 'Menu Item',
style: FlutterFlowTheme.of(
context)
.titleLarge
.override(
fontFamily: 'Nunito',
color:
FlutterFlowTheme.of(
context)
.primaryText,
fontSize: 15.0,
letterSpacing: 0.0,
fontWeight:
FontWeight.w500,
useGoogleFonts:
GoogleFonts.asMap()
.containsKey(
'Nunito'),
),
),
),
),
Icon(
widget.icon,
color: FlutterFlowTheme.of(context)
.customColor1,
size: 24.0,
),
],
),
),
),
),
);
}
}