Ajoute l'écran de programme (presentation/program_screen.dart) et un écran d'accueil (presentation/home_screen.dart) pour la navigation, avec les ajustements application/domaine/repositories nécessaires. flutter analyze propre, 11/11 tests verts, build APK debug validé. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
49 lines
1.5 KiB
Dart
49 lines
1.5 KiB
Dart
import 'package:flutter/material.dart';
|
|
|
|
import '../application/app_bootstrap.dart';
|
|
import 'exercise_library_screen.dart';
|
|
import 'program_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,
|
|
),
|
|
),
|
|
),
|
|
),
|
|
],
|
|
),
|
|
);
|
|
}
|
|
}
|