import 'dart:io'; import 'package:camerawesome/camerawesome_plugin.dart'; import 'package:flutter/material.dart'; import 'package:logger/logger.dart'; import 'package:path_provider/path_provider.dart'; import '../../core/constants/colors.dart'; class CreateStoryPage extends StatefulWidget { const CreateStoryPage({super.key}); @override _CreateStoryPageState createState() => _CreateStoryPageState(); } class _CreateStoryPageState extends State { final Logger logger = Logger(); @override Widget build(BuildContext context) { return Scaffold( extendBodyBehindAppBar: true, // Permet à l'AppBar de passer en mode transparent appBar: AppBar( title: const Text('Créer une nouvelle story'), backgroundColor: Colors.transparent, // Transparence elevation: 0, // Pas d'ombre pour l'en-tête leading: IconButton( icon: Icon(Icons.arrow_back, color: AppColors.onPrimary), // Couleur adaptative onPressed: () { Navigator.of(context).pop(); // Bouton retour }, ), ), body: Stack( children: [ CameraAwesomeBuilder.awesome( saveConfig: SaveConfig.photoAndVideo( photoPathBuilder: (sensors) async { final sensor = sensors.first; // Utilisation du premier capteur final Directory extDir = await getTemporaryDirectory(); final Directory testDir = await Directory('${extDir.path}/camerawesome').create(recursive: true); final String filePath = '${testDir.path}/${DateTime.now().millisecondsSinceEpoch}.jpg'; return SingleCaptureRequest(filePath, sensor); // CaptureRequest pour la photo }, videoPathBuilder: (sensors) async { final sensor = sensors.first; // Utilisation du premier capteur final Directory extDir = await getTemporaryDirectory(); final Directory testDir = await Directory('${extDir.path}/camerawesome').create(recursive: true); final String filePath = '${testDir.path}/${DateTime.now().millisecondsSinceEpoch}.mp4'; return SingleCaptureRequest(filePath, sensor); // CaptureRequest pour la vidéo }, ), sensorConfig: SensorConfig.single( sensor: Sensor.position(SensorPosition.back), // Configuration correcte du capteur ), onMediaTap: (mediaCapture) async { final captureRequest = mediaCapture.captureRequest; if (captureRequest is SingleCaptureRequest) { final filePath = captureRequest.path; // Accès au chemin de fichier if (filePath != null) { logger.i('Média capturé : $filePath'); ScaffoldMessenger.of(context).showSnackBar(SnackBar( content: Text('Média sauvegardé à $filePath'), backgroundColor: AppColors.accentColor, // Couleur adaptative du snack bar )); } else { logger.e('Erreur : Aucun fichier capturé.'); } } else { logger.e('Erreur : Capture non reconnue.'); } }, ), ], ), ); } }