mirror of
				https://github.com/immich-app/immich.git
				synced 2025-10-31 10:37:11 -04:00 
			
		
		
		
	* Add filter to people_picker.dart * feat: styling --------- Co-authored-by: Alex <alex.tran1502@gmail.com>
		
			
				
	
	
		
			74 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			Dart
		
	
	
	
	
	
			
		
		
	
	
			74 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			Dart
		
	
	
	
	
	
| 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!,
 | |
|           ],
 | |
|         ),
 | |
|       ),
 | |
|     );
 | |
|   }
 | |
| }
 |