feat: Release version 3.1.4 - Mode terrain et génération PDF
✨ 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>
This commit is contained in:
118
app/lib/chat/example_usage.dart
Normal file
118
app/lib/chat/example_usage.dart
Normal file
@@ -0,0 +1,118 @@
|
||||
/// 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),
|
||||
/// ),
|
||||
/// );
|
||||
Reference in New Issue
Block a user