@@ -149,10 +149,26 @@ class _SeriesScreenState extends State<SeriesScreen> {
149149 Expanded (
150150 child: Consumer <SeriesProvider >(
151151 builder: (context, seriesProvider, child) {
152- if (seriesProvider.isLoading &&
153- seriesProvider.series.isEmpty) {
152+ if (seriesProvider.isLoading && seriesProvider.series.isEmpty) {
154153 return const Center (child: CircularProgressIndicator ());
155154 }
155+
156+ // Add error handling similar to movies screen
157+ if (seriesProvider.errorMessage.isNotEmpty) {
158+ return Center (
159+ child: Column (
160+ mainAxisAlignment: MainAxisAlignment .center,
161+ children: [
162+ Text ('Error: ${seriesProvider .errorMessage }' ),
163+ const SizedBox (height: 20 ),
164+ ElevatedButton (
165+ onPressed: seriesProvider.refreshSeries,
166+ child: const Text ('تلاش مجدد' ),
167+ ),
168+ ],
169+ ),
170+ );
171+ }
156172
157173 return LayoutBuilder (
158174 builder: (context, constraints) {
@@ -165,13 +181,14 @@ class _SeriesScreenState extends State<SeriesScreen> {
165181 .floor ()
166182 .toInt ();
167183
184+ // Ensure at least 1 column and max 5 columns
168185 final count = crossAxisCount.clamp (1 , 5 );
169186
170187 return GridView .builder (
171188 controller: _scrollController,
172189 gridDelegate: SliverGridDelegateWithFixedCrossAxisCount (
173- crossAxisCount: count,
174- childAspectRatio: 0.68 ,
190+ crossAxisCount: count, // Use dynamic count instead of fixed 5
191+ childAspectRatio: 0.68 , // Adjusted for the new card dimensions
175192 crossAxisSpacing: 20 ,
176193 mainAxisSpacing: 20 ,
177194 ),
0 commit comments