mirror of
https://github.com/R0m1k3/xtremflow.git
synced 2026-10-11 17:30:00 +02:00
feat: implement Live TV tab with grouped channels, pagination, and state management
This commit is contained in:
1 parent
9c49707e11
commit
6eed235299
3 files changed
+13
-3
No files matched your search
@@ -38,6 +38,12 @@ final liveChannelsProvider = FutureProvider.autoDispose((ref) async {
|
||||
return await service.getLiveChannels();
|
||||
});
|
||||
|
||||
/// Provider for live TV channels by playlist (family provider)
|
||||
final liveChannelsByPlaylistProvider = FutureProvider.family.autoDispose((ref, PlaylistConfig playlist) async {
|
||||
final service = ref.watch(xtreamServiceProvider(playlist));
|
||||
return await service.getLiveChannels();
|
||||
});
|
||||
|
||||
/// Provider for VOD items (movies) grouped by category
|
||||
final vodItemsProvider = FutureProvider.autoDispose((ref) async {
|
||||
final service = ref.watch(activeXtreamServiceProvider);
|
||||
|
||||
@@ -28,7 +28,7 @@ class _DashboardScreenState extends ConsumerState<DashboardScreen> {
|
||||
void initState() {
|
||||
super.initState();
|
||||
_tabs = [
|
||||
const LiveTVTab(),
|
||||
LiveTVTab(playlist: widget.playlist),
|
||||
MoviesTab(playlist: widget.playlist),
|
||||
SeriesTab(playlist: widget.playlist),
|
||||
const SettingsTab(),
|
||||
|
||||
@@ -4,10 +4,13 @@ import 'package:cached_network_image/cached_network_image.dart';
|
||||
import '../providers/xtream_provider.dart';
|
||||
import '../screens/player_screen.dart';
|
||||
import '../../../core/models/iptv_models.dart';
|
||||
import '../../../core/models/playlist_config.dart';
|
||||
|
||||
/// Live TV tab with group-based pagination
|
||||
class LiveTVTab extends ConsumerStatefulWidget {
|
||||
const LiveTVTab({super.key});
|
||||
final PlaylistConfig playlist;
|
||||
|
||||
const LiveTVTab({super.key, required this.playlist});
|
||||
|
||||
@override
|
||||
ConsumerState<LiveTVTab> createState() => _LiveTVTabState();
|
||||
@@ -26,7 +29,8 @@ class _LiveTVTabState extends ConsumerState<LiveTVTab>
|
||||
Widget build(BuildContext context) {
|
||||
super.build(context);
|
||||
|
||||
final channelsAsync = ref.watch(liveChannelsProvider);
|
||||
final service = ref.watch(xtreamServiceProvider(widget.playlist));
|
||||
final channelsAsync = ref.watch(liveChannelsByPlaylistProvider(widget.playlist));
|
||||
|
||||
return channelsAsync.when(
|
||||
data: (groupedChannels) {
|
||||
|
||||
Reference in new issue
Block a user