import 'package:flutter/material.dart'; import 'package:twonly/src/utils/misc.dart'; class SelectableThumbnailComp extends StatelessWidget { const SelectableThumbnailComp({ required this.child, required this.isSelected, this.selectionMode = true, super.key, }); final Widget child; final bool isSelected; final bool selectionMode; @override Widget build(BuildContext context) { return AnimatedContainer( duration: const Duration(milliseconds: 200), curve: Curves.easeInOut, decoration: BoxDecoration( color: isSelected ? context.color.primary : Colors.transparent, boxShadow: const [ BoxShadow( color: Colors.black12, blurRadius: 4, offset: Offset(0, 2), ), ], ), child: AnimatedContainer( duration: const Duration(milliseconds: 200), curve: Curves.easeInOut, margin: EdgeInsets.all(isSelected ? 4 : 0), decoration: BoxDecoration( borderRadius: BorderRadius.circular( isSelected ? 12 : 0, ), ), clipBehavior: Clip.antiAlias, child: Stack( fit: StackFit.expand, children: [ child, if (selectionMode) Positioned( top: 6, right: 6, child: Container( padding: const EdgeInsets.all(2), decoration: BoxDecoration( color: isSelected ? context.color.primary : Colors.black38, shape: BoxShape.circle, border: Border.all( color: Theme.of(context).brightness == Brightness.dark ? Colors.white : Colors.black, width: 1.5, ), ), child: isSelected ? const Icon( Icons.check, size: 14, color: Colors.white, ) : const SizedBox(width: 14, height: 14), ), ), ], ), ), ); } }