import 'package:flutter/material.dart'; import '../../../../common/theme/theme.dart'; import '../../../components/spacer/spacer.dart'; import '../../../components/widgets/particle_card.dart'; class HomePromoBanner extends StatelessWidget { const HomePromoBanner({super.key}); static const _outlets = [ {'name': 'ENAKLO RAWAMANGUNG', 'isHealthy': true}, {'name': 'ENAKLO WOKU PEDAS\nKELAPA GADING', 'isHealthy': true}, ]; @override Widget build(BuildContext context) { return Padding( padding: const EdgeInsets.fromLTRB( AppValue.padding, 24, AppValue.padding, 0, ), child: Row( children: [ for (int i = 0; i < _outlets.length; i++) ...[ Expanded( child: ParticleCard( height: 110, padding: const EdgeInsets.symmetric( horizontal: 12, vertical: 12, ), decorationOpacity: 0.8, child: Column( crossAxisAlignment: CrossAxisAlignment.start, mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [ Row( children: [ Spacer(), _buildHealthIndicator(_outlets[i]['isHealthy'] as bool), ], ), const SpaceHeight(6), Text( _outlets[i]['name'] as String, style: AppStyle.sm.copyWith( color: AppColor.white, fontWeight: FontWeight.w800, height: 1.25, ), maxLines: 3, overflow: TextOverflow.ellipsis, ), ], ), ), ), if (i < _outlets.length - 1) const SpaceWidth(12), ], ], ), ); } Widget _buildHealthIndicator(bool isHealthy) { return Container( padding: const EdgeInsets.symmetric(horizontal: 8, vertical: 3), decoration: BoxDecoration( color: isHealthy ? AppColor.success.withOpacity(0.9) : AppColor.error.withOpacity(0.9), borderRadius: BorderRadius.circular(12), boxShadow: [ BoxShadow( color: (isHealthy ? AppColor.success : AppColor.error) .withOpacity(0.3), blurRadius: 4, offset: const Offset(0, 2), ), ], ), child: Row( mainAxisSize: MainAxisSize.min, children: [ Icon( isHealthy ? Icons.check_circle : Icons.warning_rounded, color: AppColor.white, size: 12, ), const SpaceWidth(4), Text( isHealthy ? 'Sehat' : 'Tidak Sehat', style: AppStyle.xs.copyWith( color: AppColor.white, fontWeight: FontWeight.w700, fontSize: 9, ), ), ], ), ); } }