import 'package:flutter/material.dart'; import 'package:immich_mobile/extensions/build_context_extensions.dart'; class LargeLeadingTile extends StatelessWidget { const LargeLeadingTile({ super.key, required this.leading, required this.onTap, required this.title, this.subtitle, this.leadingPadding = const EdgeInsets.symmetric( vertical: 8, horizontal: 16.0, ), this.borderRadius = 20.0, this.trailing, this.selected = false, this.disabled = false, this.selectedTileColor, this.tileColor, }); final Widget leading; final VoidCallback onTap; final Widget title; final Widget? subtitle; final EdgeInsetsGeometry leadingPadding; final double borderRadius; final Widget? trailing; final bool selected; final bool disabled; final Color? selectedTileColor; final Color? tileColor; @override Widget build(BuildContext context) { return InkWell( borderRadius: BorderRadius.circular(borderRadius), onTap: disabled ? null : onTap, child: Container( decoration: BoxDecoration( color: selected ? selectedTileColor ?? Theme.of(context).primaryColor.withAlpha(30) : tileColor ?? Colors.transparent, borderRadius: BorderRadius.circular(borderRadius), ), child: Row( crossAxisAlignment: CrossAxisAlignment.center, children: [ Padding( padding: leadingPadding, child: leading, ), Expanded( child: Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ SizedBox( width: context.width * 0.6, child: title, ), subtitle ?? const SizedBox.shrink(), ], ), ), if (trailing != null) trailing!, ], ), ), ); } }