import 'package:refilc/theme/colors/colors.dart'; import 'package:flutter/material.dart'; class PanelButton extends StatelessWidget { const PanelButton({ super.key, this.onPressed, this.padding = const EdgeInsets.symmetric(horizontal: 14.0), this.leading, this.title, this.trailing, this.trailingDivider = false, }); final void Function()? onPressed; final EdgeInsetsGeometry padding; final Widget? leading; final Widget? title; final Widget? trailing; final bool trailingDivider; @override Widget build(BuildContext context) { return Padding( padding: const EdgeInsets.symmetric(horizontal: 12.0), child: RawMaterialButton( onPressed: onPressed, padding: padding, shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(12.0)), child: ListTile( leading: leading != null ? Theme( data: Theme.of(context).copyWith( iconTheme: IconThemeData( color: Theme.of(context).colorScheme.secondary)), child: leading!, ) : null, trailing: trailingDivider ? Row( mainAxisSize: MainAxisSize.min, children: [ Container( margin: const EdgeInsets.only(right: 6.0), width: 2.0, height: 32.0, decoration: BoxDecoration( color: AppColors.of(context).text.withOpacity(.15), borderRadius: BorderRadius.circular(45.0), ), ), if (trailing != null) trailing!, ], ) : trailing, title: title != null ? DefaultTextStyle( style: Theme.of(context) .textTheme .titleMedium! .copyWith(fontWeight: FontWeight.w600, fontSize: 14.0), child: title!, ) : null, contentPadding: EdgeInsets.zero, visualDensity: VisualDensity.compact, ), ), ); } }