import 'package:didvan/models/requests/studio.dart'; import 'package:didvan/views/podcasts/podcasts_state.dart'; import 'package:didvan/views/widgets/overview/podcast.dart'; import 'package:didvan/views/widgets/state_handlers/empty_result.dart'; import 'package:didvan/views/widgets/state_handlers/state_handler.dart'; import 'package:flutter/material.dart'; import 'package:provider/provider.dart'; class PodcastTabPage extends StatefulWidget { const PodcastTabPage({super.key}); @override State createState() => _PodcastTabPageState(); } class _PodcastTabPageState extends State { @override void initState() { super.initState(); Future.microtask(() { context.read().init(true); context.read().getStudios(page: 1); }); } @override Widget build(BuildContext context) { final state = context.watch(); return StateHandler( state: state, emptyState: EmptyResult( onNewSearch: () {}, ), enableEmptyState: state.studios.isEmpty, placeholder: PodcastOverview.placeholder, builder: (context, state) { return ListView.builder( itemCount: state.studios.length, itemBuilder: (context, index) { final podcast = state.studios[index]; return Padding( padding: const EdgeInsets.only( bottom: 8, left: 16, right: 16, ), child: PodcastOverview( podcast: podcast, onMarkChanged: state.changeMark, studioRequestArgs: StudioRequestArgs( page: state.page, order: state.order, search: state.search, type: state.type, asc: state.selectedSortTypeIndex == 1, ), ), ); }, ); }, onRetry: () => context.read().getStudios(page: 1), ); } }