import 'package:flutter/material.dart'; import 'package:superport/screens/common/theme_tailwind.dart'; /// 주소에 대한 지도 대화상자를 표시합니다. class MapDialog extends StatelessWidget { final String address; const MapDialog({Key? key, required this.address}) : super(key: key); static void show(BuildContext context, String address) { if (address.trim().isEmpty) { ScaffoldMessenger.of(context).showSnackBar( const SnackBar( content: Text('주소를 먼저 입력해주세요.'), duration: Duration(seconds: 2), ), ); return; } showDialog( context: context, builder: (BuildContext context) { return MapDialog(address: address); }, ); } @override Widget build(BuildContext context) { return Dialog( shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(12)), child: Container( width: MediaQuery.of(context).size.width * 0.9, height: MediaQuery.of(context).size.height * 0.7, padding: const EdgeInsets.all(16.0), child: Column( mainAxisSize: MainAxisSize.min, crossAxisAlignment: CrossAxisAlignment.start, children: [ Row( mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [ const Text( '주소 지도 보기', style: TextStyle(fontSize: 18, fontWeight: FontWeight.bold), ), IconButton( icon: const Icon(Icons.close), onPressed: () => Navigator.of(context).pop(), ), ], ), const SizedBox(height: 8), Text('주소: $address', style: const TextStyle(fontSize: 14)), const SizedBox(height: 16), Expanded( child: Container( decoration: BoxDecoration( color: Colors.grey.shade200, borderRadius: BorderRadius.circular(8), border: Border.all(color: Colors.grey.shade300), ), child: Center( child: Column( mainAxisAlignment: MainAxisAlignment.center, children: [ Icon( Icons.map, size: 64, color: AppThemeTailwind.primary, ), const SizedBox(height: 16), Text( '여기에 주소 "$address"에 대한\n지도가 표시됩니다.', textAlign: TextAlign.center, style: TextStyle(color: Colors.grey.shade700), ), const SizedBox(height: 24), Text( '실제 구현 시에는 Google Maps 또는\n다른 지도 서비스 API를 연동하세요.', textAlign: TextAlign.center, style: TextStyle( fontSize: 12, color: Colors.grey.shade600, fontStyle: FontStyle.italic, ), ), ], ), ), ), ), ], ), ), ); } }