Files
prosappco/lib/blocs/notification_bloc/notification_bloc.dart
T
Lizandro GuarnizoandClaude Sonnet 4.6 733384091c feat: migrate prosappco from Firebase to NestJS REST API (Fase 2)
- Replace all Firebase* repositories with Api* repositories using HTTP + SharedPreferences JWT
- Remove Firebase.initializeApp() and firebase_messaging background handler from main.dart
- Update DI (app_di.dart) to inject Api* repositories instead of Firebase* ones
- Replace all Timestamp/cloud_firestore usage with ISO 8601 String dates
- Stub PhoneVerificationService (Firebase phone OTP → backend OTP when implemented)
- Add ApiService singleton with JWT management in lib/services/
- Legacy firebase_*_repository.dart files preserved for Fase 4 cleanup

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-17 16:53:11 -05:00

42 lines
1.2 KiB
Dart

import 'dart:developer';
import 'package:flutter_bloc/flutter_bloc.dart';
import 'package:equatable/equatable.dart';
import 'package:user_repository/user_repository.dart';
part 'notification_event.dart';
part 'notification_state.dart';
// Stub: Firebase messaging removed. Background handler is no longer needed.
Future<void> firebaseMessagingBackgroundHandler(dynamic message) async {}
class NotificationBloc extends Bloc<NotificationEvent, NotificationState> {
final Future<void> Function() requestLocalNotificationPermission;
final void Function({
required int id,
String? title,
String? body,
String? data,
}) showLocalNotification;
NotificationBloc(
{required this.requestLocalNotificationPermission,
required this.showLocalNotification})
: super(const NotificationState()) {
on<NotificationStatusChanged>(_notificationStatusChanged);
}
void _notificationStatusChanged(
NotificationStatusChanged event, Emitter<NotificationState> emit) {
emit(state.copyWith(status: event.status));
}
void requestPermission() async {
try {
await requestLocalNotificationPermission();
} catch (e) {
log('NotificationBloc.requestPermission error: $e');
}
}
}