import 'package:flutter/material.dart'; import 'package:provider/provider.dart'; import '../services/subscription_notification_service.dart'; import '../services/subscription_service.dart'; /// 구독 알림 위젯 class SubscriptionAlertWidget extends StatelessWidget { const SubscriptionAlertWidget({super.key}); @override Widget build(BuildContext context) { // 구독 알림 서비스 가져오기 final notificationService = Provider.of( context, listen: true, ); // 구독 서비스 가져오기 final subscriptionService = Provider.of( context, listen: false, ); // 알림 메시지 가져오기 final message = notificationService.getNotificationMessage(); // 알림이 없으면 빈 컨테이너 반환 if (message == null) { return const SizedBox.shrink(); } // 알림 배너 표시 return Container( width: double.infinity, padding: const EdgeInsets.symmetric(vertical: 8.0, horizontal: 16.0), color: notificationService.hasExpired ? Colors.red.shade100 : Colors.orange.shade100, child: Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ Row( children: [ Icon( notificationService.hasExpired ? Icons.error_outline : Icons.warning_amber_outlined, color: notificationService.hasExpired ? Colors.red.shade700 : Colors.orange.shade700, ), const SizedBox(width: 8), Expanded( child: Text( message, style: TextStyle( color: notificationService.hasExpired ? Colors.red.shade700 : Colors.orange.shade700, fontWeight: FontWeight.bold, ), ), ), ], ), const SizedBox(height: 8), Row( mainAxisAlignment: MainAxisAlignment.end, children: [ TextButton( onPressed: () { // 구독 화면으로 이동 Navigator.of(context).pushNamed('/subscription'); }, style: TextButton.styleFrom( backgroundColor: notificationService.hasExpired ? Colors.red.shade700 : Colors.orange.shade700, foregroundColor: Colors.white, ), child: const Text('구독 갱신하기'), ), ], ), ], ), ); } }