Merge pull request #13 from R0m1k3/antigravity

Antigravity
This commit is contained in:
LogiFlow authored and GitHub committed 2025-12-06 00:34:17 +01:00
commit 267f40e261
4 files changed
+15 -5

No files matched your search

+2 -2
View File
@@ -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(),
+6 -2
View File
@@ -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) {