Files
buzz/mobile/lib/features/activity/activity_provider.dart
2026-04-16 09:02:29 -07:00

38 lines
1018 B
Dart

import 'package:hooks_riverpod/hooks_riverpod.dart';
import '../../shared/relay/relay.dart';
import 'feed_item.dart';
class ActivityNotifier extends AsyncNotifier<HomeFeedResponse> {
@override
Future<HomeFeedResponse> build() {
ref.watch(relayClientProvider);
// Re-fetch when websocket reconnects so feed stays fresh.
ref.watch(relaySessionProvider);
return _fetch();
}
Future<HomeFeedResponse> _fetch() async {
final client = ref.read(relayClientProvider);
final json =
await client.get(
'/api/feed',
queryParams: {
'limit': '20',
'types': 'mentions,needs_action,activity,agent_activity',
},
)
as Map<String, dynamic>;
return HomeFeedResponse.fromJson(json);
}
Future<void> refresh() async {
state = await AsyncValue.guard(_fetch);
}
}
final activityProvider =
AsyncNotifierProvider<ActivityNotifier, HomeFeedResponse>(
ActivityNotifier.new,
);