import 'package:chat/configs/app_colors.dart'; import 'package:flutter/material.dart'; class ActionItem extends StatelessWidget { final String title; final String? extend; final Widget? rightWidget; final String? bottom; final VoidCallback? onTap; final bool isFirst; final bool isLast; final double indent; const ActionItem( this.title, { this.extend, this.rightWidget, this.bottom, this.onTap, this.isFirst = false, this.isLast = false, this.indent = 16, Key? key, }) : super(key: key); @override Widget build(BuildContext context) { return GestureDetector( behavior: HitTestBehavior.opaque, onTap: () { onTap?.call(); }, child: Column( children: [ if (isFirst) const Divider( height: 0.4, color: AppColors.border, ), Container( padding: const EdgeInsets.all(16), decoration: const BoxDecoration( color: AppColors.white, ), child: Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ Row( mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [ Text( title, style: const TextStyle( fontSize: 16, ), ), Expanded(child: Container()), if (extend != null) Text( extend!, style: const TextStyle( color: AppColors.unactive, ), ), rightWidget ?? const Icon( Icons.arrow_forward_ios, size: 14, color: AppColors.unactive, ), ], ), if (bottom != null && bottom!.isNotEmpty) Padding( padding: const EdgeInsets.only(top: 4), child: Text( bottom!, maxLines: 1, overflow: TextOverflow.ellipsis, style: const TextStyle( color: AppColors.unactive, fontSize: 12, ), ), ), ], ), ), if (isLast) const Divider( height: 0, color: AppColors.border, ), if (!isLast) Divider( height: 0, color: AppColors.border, indent: indent, ), ], ), ); } }