회원목록
This commit is contained in:
@@ -0,0 +1,90 @@
|
||||
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<SubscriptionNotificationService>(
|
||||
context,
|
||||
listen: true,
|
||||
);
|
||||
|
||||
// 구독 서비스 가져오기
|
||||
final subscriptionService = Provider.of<SubscriptionService>(
|
||||
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('구독 갱신하기'),
|
||||
),
|
||||
],
|
||||
),
|
||||
],
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user