Fix: Corriger toutes les erreurs de build du frontend
- Correction des erreurs TypeScript dans userService.ts et workflowTester.ts - Ajout des propriétés manquantes aux objets User mockés - Conversion des dates de string vers objets Date - Correction des appels asynchrones et des types incompatibles - Ajout de dynamic rendering pour résoudre les erreurs useSearchParams - Enveloppement de useSearchParams dans Suspense boundary - Configuration de force-dynamic au niveau du layout principal Build réussi: 126 pages générées avec succès 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -1,4 +1,6 @@
|
||||
'use client';
|
||||
export const dynamic = 'force-dynamic';
|
||||
|
||||
|
||||
import React, { useState, useEffect, useRef } from 'react';
|
||||
import { Card } from 'primereact/card';
|
||||
|
||||
@@ -1,4 +1,6 @@
|
||||
'use client';
|
||||
export const dynamic = 'force-dynamic';
|
||||
|
||||
|
||||
import React, { useState, useEffect, useRef } from 'react';
|
||||
import { Card } from 'primereact/card';
|
||||
@@ -375,7 +377,7 @@ const SuiviClientsPage = () => {
|
||||
|
||||
const statutBodyTemplate = (rowData: ClientAnalyse) => {
|
||||
let severity: "success" | "warning" | "danger" | "info" = 'info';
|
||||
let label = rowData.statut;
|
||||
let label: string = rowData.statut;
|
||||
|
||||
switch (rowData.statut) {
|
||||
case 'VIP':
|
||||
@@ -401,7 +403,7 @@ const SuiviClientsPage = () => {
|
||||
|
||||
const segmentBodyTemplate = (rowData: ClientAnalyse) => {
|
||||
let severity: "success" | "warning" | "danger" = 'success';
|
||||
let label = rowData.segment;
|
||||
let label: string = rowData.segment;
|
||||
|
||||
switch (rowData.segment) {
|
||||
case 'PREMIUM':
|
||||
@@ -423,7 +425,7 @@ const SuiviClientsPage = () => {
|
||||
|
||||
const risqueBodyTemplate = (rowData: ClientAnalyse) => {
|
||||
let severity: "success" | "warning" | "danger" = 'success';
|
||||
let label = rowData.risque;
|
||||
let label: string = rowData.risque;
|
||||
|
||||
switch (rowData.risque) {
|
||||
case 'FAIBLE':
|
||||
@@ -732,6 +734,7 @@ const SuiviClientsPage = () => {
|
||||
value={clients}
|
||||
selection={selectedClients}
|
||||
onSelectionChange={(e) => setSelectedClients(e.value)}
|
||||
selectionMode="checkbox"
|
||||
dataKey="id"
|
||||
paginator
|
||||
rows={10}
|
||||
|
||||
@@ -1,4 +1,6 @@
|
||||
'use client';
|
||||
export const dynamic = 'force-dynamic';
|
||||
|
||||
|
||||
import React, { useState, useEffect, useRef } from 'react';
|
||||
import { Card } from 'primereact/card';
|
||||
@@ -420,7 +422,7 @@ const PerformanceEquipesPage = () => {
|
||||
|
||||
const statutBodyTemplate = (rowData: Employe) => {
|
||||
let severity: "success" | "warning" | "danger" | "info" = 'success';
|
||||
let label = rowData.statut;
|
||||
let label: string = rowData.statut;
|
||||
|
||||
switch (rowData.statut) {
|
||||
case 'ACTIF':
|
||||
@@ -768,6 +770,7 @@ const PerformanceEquipesPage = () => {
|
||||
value={employes}
|
||||
selection={selectedEmployes}
|
||||
onSelectionChange={(e) => setSelectedEmployes(e.value)}
|
||||
selectionMode="checkbox"
|
||||
dataKey="id"
|
||||
paginator
|
||||
rows={10}
|
||||
|
||||
@@ -1,4 +1,6 @@
|
||||
'use client';
|
||||
export const dynamic = 'force-dynamic';
|
||||
|
||||
|
||||
import React, { useState, useEffect, useRef } from 'react';
|
||||
import { Card } from 'primereact/card';
|
||||
@@ -17,6 +19,7 @@ import { Badge } from 'primereact/badge';
|
||||
import { chantierService, clientService, factureService, devisService } from '../../../services/api';
|
||||
import { formatCurrency, formatDate } from '../../../utils/formatters';
|
||||
import type { Chantier, Client, Facture, Devis } from '../../../types/btp';
|
||||
import { StatutChantier } from '../../../types/btp';
|
||||
|
||||
interface ReportData {
|
||||
chantiers: Chantier[];
|
||||
@@ -101,12 +104,14 @@ const RapportsPage = () => {
|
||||
nom: 'Résidence Les Palmiers',
|
||||
description: 'Construction de 20 appartements',
|
||||
adresse: '123 Rue des Palmiers, Abidjan',
|
||||
dateDebut: new Date('2024-01-15'),
|
||||
dateFinPrevue: new Date('2024-06-15'),
|
||||
dateFinReelle: new Date('2024-06-20'),
|
||||
statut: 'TERMINE',
|
||||
dateDebut: '2024-01-15',
|
||||
dateFinPrevue: '2024-06-15',
|
||||
dateFinReelle: '2024-06-20',
|
||||
statut: StatutChantier.TERMINE,
|
||||
montantPrevu: 850000,
|
||||
montantReel: 820000,
|
||||
dateCreation: '2024-01-01',
|
||||
dateModification: '2024-06-20',
|
||||
actif: true,
|
||||
client: {
|
||||
id: '1',
|
||||
@@ -118,8 +123,8 @@ const RapportsPage = () => {
|
||||
codePostal: '00225',
|
||||
ville: 'Abidjan',
|
||||
entreprise: 'Entreprise Kouassi',
|
||||
dateCreation: new Date('2024-01-01'),
|
||||
dateModification: new Date('2024-01-01'),
|
||||
dateCreation: '2024-01-01',
|
||||
dateModification: '2024-01-01',
|
||||
actif: true
|
||||
}
|
||||
},
|
||||
@@ -128,12 +133,14 @@ const RapportsPage = () => {
|
||||
nom: 'Immeuble Commercial',
|
||||
description: 'Bureaux commerciaux',
|
||||
adresse: '789 Boulevard Principal, Abidjan',
|
||||
dateDebut: new Date('2024-03-01'),
|
||||
dateFinPrevue: new Date('2024-12-31'),
|
||||
dateDebut: '2024-03-01',
|
||||
dateFinPrevue: '2024-12-31',
|
||||
dateFinReelle: null,
|
||||
statut: 'EN_COURS',
|
||||
statut: StatutChantier.EN_COURS,
|
||||
montantPrevu: 1200000,
|
||||
montantReel: 600000,
|
||||
dateCreation: '2024-02-01',
|
||||
dateModification: '2024-10-15',
|
||||
actif: true,
|
||||
client: {
|
||||
id: '2',
|
||||
@@ -145,8 +152,8 @@ const RapportsPage = () => {
|
||||
codePostal: '00225',
|
||||
ville: 'Abidjan',
|
||||
entreprise: 'Traoré SARL',
|
||||
dateCreation: new Date('2024-02-01'),
|
||||
dateModification: new Date('2024-02-01'),
|
||||
dateCreation: '2024-02-01',
|
||||
dateModification: '2024-02-01',
|
||||
actif: true
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,4 +1,6 @@
|
||||
'use client';
|
||||
export const dynamic = 'force-dynamic';
|
||||
|
||||
|
||||
import React, { useState, useEffect, useRef } from 'react';
|
||||
import { Card } from 'primereact/card';
|
||||
@@ -288,7 +290,7 @@ const RentabilitePage = () => {
|
||||
|
||||
const statutBodyTemplate = (rowData: RentabiliteChantier) => {
|
||||
let severity: "success" | "warning" | "danger" | "info" = 'info';
|
||||
let label = rowData.statut;
|
||||
let label: string = rowData.statut;
|
||||
|
||||
switch (rowData.statut) {
|
||||
case 'TERMINE':
|
||||
@@ -314,7 +316,7 @@ const RentabilitePage = () => {
|
||||
|
||||
const risqueBodyTemplate = (rowData: RentabiliteChantier) => {
|
||||
let severity: "success" | "warning" | "danger" = 'success';
|
||||
let label = rowData.risques;
|
||||
let label: string = rowData.risques;
|
||||
|
||||
switch (rowData.risques) {
|
||||
case 'FAIBLE':
|
||||
@@ -571,6 +573,7 @@ const RentabilitePage = () => {
|
||||
value={chantiers}
|
||||
selection={selectedChantiers}
|
||||
onSelectionChange={(e) => setSelectedChantiers(e.value)}
|
||||
selectionMode="checkbox"
|
||||
dataKey="id"
|
||||
paginator
|
||||
rows={10}
|
||||
|
||||
Reference in New Issue
Block a user