Files
GameTime/lib/presentation/home_screen.dart
Blomios 89d89a3005 feat(ui): écran Composition de séance-modèle
Ajoute l'écran de composition de séance-modèle
(presentation/workout_template_screen.dart), avec les ajustements
application/domaine/repositories nécessaires et la navigation depuis
l'accueil. flutter analyze propre, 12/12 tests verts, build APK debug
validé.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-17 18:59:59 +02:00

63 lines
2.0 KiB
Dart

import 'package:flutter/material.dart';
import '../application/app_bootstrap.dart';
import 'exercise_library_screen.dart';
import 'program_screen.dart';
import 'workout_template_screen.dart';
final class HomeScreen extends StatelessWidget {
const HomeScreen({required this.bootstrap, super.key});
final AppBootstrap bootstrap;
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(title: const Text('GameTime')),
body: ListView(
children: [
ListTile(
leading: const Icon(Icons.fitness_center),
title: const Text('Exercices'),
trailing: const Icon(Icons.chevron_right),
onTap: () => Navigator.of(context).push(
MaterialPageRoute(
builder: (context) => ExerciseLibraryScreen(
exerciseUseCases: bootstrap.exerciseUseCases,
mediaUseCases: bootstrap.mediaUseCases,
),
),
),
),
ListTile(
leading: const Icon(Icons.list_alt),
title: const Text('Programmes'),
trailing: const Icon(Icons.chevron_right),
onTap: () => Navigator.of(context).push(
MaterialPageRoute(
builder: (context) => ProgramListScreen(
programUseCases: bootstrap.programUseCases,
exerciseUseCases: bootstrap.exerciseUseCases,
),
),
),
),
ListTile(
leading: const Icon(Icons.event_note),
title: const Text('Séances'),
trailing: const Icon(Icons.chevron_right),
onTap: () => Navigator.of(context).push(
MaterialPageRoute(
builder: (context) => WorkoutTemplateListScreen(
workoutTemplateUseCases: bootstrap.workoutTemplateUseCases,
programUseCases: bootstrap.programUseCases,
),
),
),
),
],
),
);
}
}