✨ Nouvelles fonctionnalités: - Ajout du mode terrain pour utilisation mobile hors connexion - Génération automatique de reçus PDF avec template personnalisé - Révision complète du système de cartes avec amélioration des performances 🔧 Améliorations techniques: - Refactoring du module chat avec architecture simplifiée - Optimisation du système de sécurité NIST SP 800-63B - Amélioration de la gestion des secteurs géographiques - Support UTF-8 étendu pour les noms d'utilisateurs 📱 Application mobile: - Nouveau mode terrain dans user_field_mode_page - Interface utilisateur adaptative pour conditions difficiles - Synchronisation offline améliorée 🗺️ Cartographie: - Optimisation des performances MapBox - Meilleure gestion des tuiles hors ligne - Amélioration de l'affichage des secteurs 📄 Documentation: - Ajout guide Android (ANDROID-GUIDE.md) - Documentation sécurité API (API-SECURITY.md) - Guide module chat (CHAT_MODULE.md) 🐛 Corrections: - Résolution des erreurs 400 lors de la création d'utilisateurs - Correction de la validation des noms d'utilisateurs - Fix des problèmes de synchronisation chat 🤖 Generated with Claude Code (https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
118 lines
3.1 KiB
Dart
118 lines
3.1 KiB
Dart
/// Exemple d'utilisation du module chat
|
|
///
|
|
/// Ce fichier montre comment intégrer le module chat dans votre application
|
|
|
|
import 'package:flutter/material.dart';
|
|
import 'chat_module.dart';
|
|
|
|
class ExampleApp extends StatelessWidget {
|
|
const ExampleApp({super.key});
|
|
|
|
@override
|
|
Widget build(BuildContext context) {
|
|
return MaterialApp(
|
|
title: 'Chat Module Example',
|
|
home: const HomePage(),
|
|
);
|
|
}
|
|
}
|
|
|
|
class HomePage extends StatefulWidget {
|
|
const HomePage({super.key});
|
|
|
|
@override
|
|
State<HomePage> createState() => _HomePageState();
|
|
}
|
|
|
|
class _HomePageState extends State<HomePage> {
|
|
bool _isInitialized = false;
|
|
|
|
@override
|
|
void initState() {
|
|
super.initState();
|
|
_initChat();
|
|
}
|
|
|
|
Future<void> _initChat() async {
|
|
// Initialiser le module chat avec vos paramètres et rôle
|
|
await ChatModule.init(
|
|
apiUrl: 'https://api.votre-domaine.com',
|
|
userId: 123, // ID de l'utilisateur connecté
|
|
userName: 'Jean Dupont', // Nom de l'utilisateur
|
|
userRole: 2, // Rôle: 1=membre, 2=admin amicale, 9=superadmin
|
|
userEntite: 5, // ID de l'amicale/entité (optionnel)
|
|
authToken: 'votre-token-jwt', // Token d'authentification (optionnel)
|
|
);
|
|
|
|
setState(() => _isInitialized = true);
|
|
}
|
|
|
|
@override
|
|
Widget build(BuildContext context) {
|
|
return Scaffold(
|
|
appBar: AppBar(
|
|
title: const Text('Application Example'),
|
|
),
|
|
body: Center(
|
|
child: Column(
|
|
mainAxisAlignment: MainAxisAlignment.center,
|
|
children: [
|
|
const Text('Bienvenue dans votre application'),
|
|
const SizedBox(height: 20),
|
|
if (_isInitialized)
|
|
ElevatedButton(
|
|
onPressed: () {
|
|
// Ouvrir le chat
|
|
ChatModule.openChat(context);
|
|
},
|
|
child: const Text('Ouvrir le Chat'),
|
|
)
|
|
else
|
|
const CircularProgressIndicator(),
|
|
],
|
|
),
|
|
),
|
|
);
|
|
}
|
|
|
|
@override
|
|
void dispose() {
|
|
// Nettoyer les ressources du chat
|
|
ChatModule.dispose();
|
|
super.dispose();
|
|
}
|
|
}
|
|
|
|
/// Comment l'utiliser dans votre application :
|
|
///
|
|
/// 1. Copier le dossier lib/chat dans votre projet
|
|
///
|
|
/// 2. Ajouter les dépendances dans pubspec.yaml :
|
|
/// dependencies:
|
|
/// dio: ^5.4.0
|
|
/// hive: ^2.2.3
|
|
/// hive_flutter: ^1.1.0
|
|
/// dev_dependencies:
|
|
/// hive_generator: ^2.0.1
|
|
/// build_runner: ^2.4.8
|
|
///
|
|
/// 3. Initialiser le module au démarrage :
|
|
/// await ChatModule.init(
|
|
/// apiUrl: 'https://votre-api.com',
|
|
/// userId: currentUserId,
|
|
/// userName: currentUserName,
|
|
/// userRole: currentUserRole, // 1, 2 ou 9
|
|
/// userEntite: currentUserEntite, // ID amicale
|
|
/// authToken: authToken,
|
|
/// );
|
|
///
|
|
/// 4. Ouvrir le chat depuis n'importe où :
|
|
/// ChatModule.openChat(context);
|
|
///
|
|
/// 5. Ou naviguer directement vers une conversation :
|
|
/// Navigator.push(
|
|
/// context,
|
|
/// MaterialPageRoute(
|
|
/// builder: (_) => ChatModule.getChatPage(roomId, roomTitle),
|
|
/// ),
|
|
/// ); |