import 'package:flutter/material.dart'; import 'package:flutter_svg/flutter_svg.dart'; import 'package:syncrow_app/features/shared_widgets/text_widgets/body_medium.dart'; import 'package:syncrow_app/features/shared_widgets/text_widgets/body_small.dart'; import 'package:syncrow_app/generated/assets.dart'; import 'package:syncrow_app/utils/context_extension.dart'; import 'package:syncrow_app/utils/resource_manager/color_manager.dart'; class SceneListTile extends StatelessWidget { const SceneListTile({ super.key, this.assetPath, this.titleString, this.leadingWidget, this.trailingWidget, this.padding, this.textAlign, this.onPressed, this.assetHeight, this.minLeadingWidth, this.titleWidget, this.subtitleString, this.subtitleWidget, this.iconsSize, }); final String? assetPath; final String? titleString; final Widget? subtitleWidget; final String? subtitleString; final Widget? leadingWidget; final Widget? trailingWidget; final EdgeInsetsGeometry? padding; final TextAlign? textAlign; final void Function()? onPressed; final double? assetHeight; final double? minLeadingWidth; final Widget? titleWidget; final double? iconsSize; @override Widget build(BuildContext context) { return ListTile( minLeadingWidth: minLeadingWidth ?? 40, leading: leadingWidget ?? (assetPath != null ? SizedBox( width: iconsSize, child: SvgPicture.asset( assetPath ?? Assets.assetsImagesLogo, width: 20, height: assetHeight ?? 32, alignment: Alignment.center, fit: BoxFit.fill, ), ) : null), trailing: trailingWidget, contentPadding: padding, title: titleWidget ?? BodyMedium( text: titleString ?? '', textAlign: textAlign, style: context.bodyMedium.copyWith(fontSize: 15), ), subtitle: subtitleWidget ?? (subtitleString?.isNotEmpty == true ? BodySmall( text: subtitleString ?? '', style: context.bodySmall.copyWith( fontWeight: FontWeight.w400, color: ColorsManager.greyColor), ) : null), onTap: onPressed, ); } }