mirror of
https://github.com/R0m1k3/xtremflow.git
synced 2026-10-11 17:30:00 +02:00
commit
42fc08ed97
4 files changed
+15
-5
No files matched your search
+2
-2
@@ -26,8 +26,8 @@ COPY . .
|
||||
# Re-run pub get after copying source to ensure lockfile consistency
|
||||
RUN flutter pub get
|
||||
|
||||
# Build web application (CanvasKit renderer is now default)
|
||||
RUN flutter build web --release --verbose
|
||||
# Build web application (Debug mode for better error messages)
|
||||
RUN flutter build web --debug --verbose
|
||||
|
||||
# ============================================
|
||||
# Stage 2: Serve with dhttpd (Dart HTTP server)
|
||||
|
||||
@@ -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