import 'package:flutter/material.dart'; import 'package:flutter_svg/flutter_svg.dart'; import 'package:syncrow_web/utils/color_manager.dart'; import 'package:syncrow_web/utils/constants/assets.dart'; import 'package:syncrow_web/utils/extension/build_context_x.dart'; import 'package:syncrow_web/utils/style.dart'; class AqiLocation extends StatelessWidget { const AqiLocation({ required this.city, required this.country, required this.address, super.key, }); final String? city; final String? country; final String? address; String _getFormattedLocation() { if (city == null && country == null && address == null) { return 'N/A'; } final parts = []; if (city != null) parts.add(city!); if (address != null) parts.add(address!); final locationPart = parts.join(', '); if (country != null) { return locationPart.isEmpty ? country! : '$locationPart - $country'; } return locationPart; } @override Widget build(BuildContext context) { return Container( decoration: subSectionContainerDecoration.copyWith( boxShadow: const [], borderRadius: BorderRadius.circular(10), ), padding: const EdgeInsetsDirectional.all(10), child: Row( spacing: 10, crossAxisAlignment: CrossAxisAlignment.center, mainAxisSize: MainAxisSize.min, children: [ _buildLocationPin(), Expanded( child: Text( _getFormattedLocation(), style: context.textTheme.bodySmall?.copyWith( color: ColorsManager.textPrimaryColor, fontWeight: FontWeight.w400, fontSize: 12, ), ), ), ], ), ); } Widget _buildLocationPin() { return SvgPicture.asset( Assets.locationPin, height: 12, width: 12, alignment: AlignmentDirectional.centerStart, colorFilter: const ColorFilter.mode( ColorsManager.vividBlue, BlendMode.srcIn, ), ); } }