Files
2024-03-12 09:26:47 +01:00

74 lines
1.7 KiB
Dart

import 'package:flutter/material.dart';
import 'package:flutter_meals/models/meal.dart';
import 'package:flutter_meals/screens/meal_details.dart';
import 'package:flutter_meals/widgets/meal_item.dart';
class MealsScreen extends StatelessWidget {
const MealsScreen({
super.key,
this.title,
required this.meals,
});
final String? title;
final List<Meal> meals;
void selectMeal(BuildContext context, Meal meal) {
Navigator.of(context).push(
MaterialPageRoute(
builder: (ctx) => MealDetailsScreen(
meal: meal,
),
),
);
}
@override
Widget build(BuildContext context) {
Widget content = Center(
child: Column(
mainAxisSize: MainAxisSize.min,
children: [
Text(
'Uh oh ... nothing here!',
style: Theme.of(context).textTheme.headlineLarge!.copyWith(
color: Theme.of(context).colorScheme.onBackground,
),
),
const SizedBox(height: 16),
Text(
'Try selecting a different category!',
style: Theme.of(context).textTheme.bodyLarge!.copyWith(
color: Theme.of(context).colorScheme.onBackground,
),
),
],
),
);
if (meals.isNotEmpty) {
content = ListView.builder(
itemCount: meals.length,
itemBuilder: (ctx, index) => MealItem(
meal: meals[index],
onSelectMeal: (meal) {
selectMeal(context, meal);
},
),
);
}
if (title == null) {
return content;
}
return Scaffold(
appBar: AppBar(
title: Text(title!),
),
body: content,
);
}
}