import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:go_router/go_router.dart'; import '../../auth/data/auth_providers.dart'; import '../data/recipe_providers.dart'; class RecipesScreen extends ConsumerWidget { const RecipesScreen({super.key}); Future _logout(BuildContext context, WidgetRef ref) async { await ref.read(authStateProvider.notifier).logout(); if (context.mounted) context.go('/login'); } @override Widget build(BuildContext context, WidgetRef ref) { final recipesAsync = ref.watch(recipesProvider); return Scaffold( appBar: AppBar( title: const Text('Recept'), actions: [ IconButton( tooltip: 'Profil', icon: const Icon(Icons.person), onPressed: () => context.go('/profile'), ), IconButton( tooltip: 'Logga ut', icon: const Icon(Icons.logout), onPressed: () => _logout(context, ref), ), ], ), body: recipesAsync.when( loading: () => const Center(child: CircularProgressIndicator()), error: (e, _) => Center(child: Text('Fel: $e')), data: (recipes) => ListView.builder( itemCount: recipes.length, itemBuilder: (context, index) { final recipe = recipes[index]; return ListTile( leading: recipe.imageUrl != null ? Image.network(recipe.imageUrl!, width: 56, fit: BoxFit.cover) : const Icon(Icons.restaurant), title: Text(recipe.title), subtitle: recipe.description != null ? Text( recipe.description!, maxLines: 1, overflow: TextOverflow.ellipsis, ) : null, ); }, ), ), ); } }