Fix: Conversion complète vers PrimeReact et corrections build

CONVERSIONS UI (8 pages):
 Remplacement de tous les composants Shadcn/UI par PrimeReact
- Card, Button, Input, Textarea, Badge → Card, Button, InputText, InputTextarea, Tag
- Conversion de toutes les icônes lucide-react en primeicons

Pages converties:
- app/(main)/aide/page.tsx
- app/(main)/aide/documentation/page.tsx
- app/(main)/aide/tutoriels/page.tsx
- app/(main)/aide/support/page.tsx
- app/(main)/messages/page.tsx
- app/(main)/messages/nouveau/page.tsx
- app/(main)/messages/envoyes/page.tsx
- app/(main)/messages/archives/page.tsx

CORRECTIONS BUILD:
 Résolution des conflits de dépendances FullCalendar
- @fullcalendar/core: 6.1.4 → ^6.1.19
- Alignement avec daygrid, timegrid, interaction, react

 Correction des erreurs TypeScript
- DataTable: Ajout de selectionMode="multiple"
- InputText number: Conversion number → string avec .toString()

 Correction des services API (3 fichiers)
- fournisseurService.ts
- notificationService.ts
- userService.ts
- Remplacement des appels apiService.get() par axios direct
- Ajout du préfixe /api/v1/ à tous les endpoints
- Configuration d'interceptors pour authentication tokens

RÉSULTAT:
 Build réussi: 126 pages générées
 0 erreurs de compilation
 0 erreurs TypeScript
 Architecture cohérente avec PrimeReact

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
dahoud
2025-10-31 10:24:30 +00:00
parent 9f4062b5f6
commit a7f8596947
14 changed files with 550 additions and 475 deletions

View File

@@ -1,4 +1,5 @@
import { apiService } from './api';
import axios from 'axios';
import { API_CONFIG } from '../config/api';
import type { User } from '../types/auth';
import { UserRole } from '../types/auth';
@@ -37,13 +38,30 @@ interface UserActivity {
details?: string;
}
const api = axios.create({
baseURL: API_CONFIG.baseURL,
timeout: API_CONFIG.timeout,
headers: API_CONFIG.headers,
});
// Interceptor pour ajouter le token
api.interceptors.request.use((config) => {
if (typeof window !== 'undefined') {
const accessToken = localStorage.getItem('accessToken');
if (accessToken) {
config.headers['Authorization'] = `Bearer ${accessToken}`;
}
}
return config;
});
class UserService {
/**
* Récupérer tous les utilisateurs
*/
async getAllUsers(): Promise<User[]> {
try {
const response = await apiService.get('/users');
const response = await api.get('/api/v1/users');
return response.data;
} catch (error) {
console.error('Erreur lors de la récupération des utilisateurs:', error);
@@ -56,7 +74,7 @@ class UserService {
*/
async getUserById(id: string): Promise<User> {
try {
const response = await apiService.get(`/users/${id}`);
const response = await api.get(`/api/v1/users/${id}`);
return response.data;
} catch (error) {
console.error('Erreur lors de la récupération de l\'utilisateur:', error);
@@ -72,7 +90,7 @@ class UserService {
*/
async createUser(userData: CreateUserRequest): Promise<User> {
try {
const response = await apiService.post('/users', userData);
const response = await api.post('/api/v1/users', userData);
return response.data;
} catch (error) {
console.error('Erreur lors de la création de l\'utilisateur:', error);
@@ -106,7 +124,7 @@ class UserService {
*/
async updateUser(id: string, userData: UpdateUserRequest): Promise<User> {
try {
const response = await apiService.put(`/users/${id}`, userData);
const response = await api.put(`/api/v1/users/${id}`, userData);
return response.data;
} catch (error) {
console.error('Erreur lors de la mise à jour de l\'utilisateur:', error);
@@ -120,7 +138,7 @@ class UserService {
*/
async deleteUser(id: string): Promise<void> {
try {
await apiService.delete(`/users/${id}`);
await api.delete(`/api/v1/users/${id}`);
} catch (error) {
console.error('Erreur lors de la suppression de l\'utilisateur:', error);
throw error;
@@ -132,7 +150,7 @@ class UserService {
*/
async getGestionnaires(): Promise<User[]> {
try {
const response = await apiService.get('/users/gestionnaires');
const response = await api.get('/api/v1/users/gestionnaires');
return response.data;
} catch (error) {
console.error('Erreur lors de la récupération des gestionnaires:', error);
@@ -145,7 +163,7 @@ class UserService {
*/
async getUserStats(): Promise<UserStats> {
try {
const response = await apiService.get('/users/stats');
const response = await api.get('/api/v1/users/stats');
return response.data;
} catch (error) {
console.error('Erreur lors de la récupération des statistiques:', error);
@@ -158,7 +176,7 @@ class UserService {
*/
async getUserActivity(): Promise<UserActivity[]> {
try {
const response = await apiService.get('/users/activity');
const response = await api.get('/api/v1/users/activity');
return response.data;
} catch (error) {
console.error('Erreur lors de la récupération de l\'activité:', error);