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:
dahoud
2025-10-18 13:23:08 +00:00
parent c377291608
commit a8825a058b
164 changed files with 1228 additions and 1824 deletions

View File

@@ -14,7 +14,7 @@ import phaseValidationService, {
type ValidationError,
type ValidationWarning
} from '../../services/phaseValidationService';
import type { PhaseChantier } from '../../types/btp';
import type { PhaseChantier } from '../../types/btp-extended';
interface PhaseValidationPanelProps {
phase: PhaseChantier;
@@ -35,7 +35,7 @@ const PhaseValidationPanel: React.FC<PhaseValidationPanelProps> = ({
}) => {
const [validation, setValidation] = useState<PhaseValidationResult | null>(null);
const [loading, setLoading] = useState(true);
const [expandedSections, setExpandedSections] = useState<string[]>(['errors']);
const [expandedSections, setExpandedSections] = useState<number[]>([0]);
useEffect(() => {
validatePhase();
@@ -163,7 +163,8 @@ const PhaseValidationPanel: React.FC<PhaseValidationPanelProps> = ({
);
}
const prerequisitePhases = phase.prerequis
const prerequisIds = phase.prerequis ? phase.prerequis.split(',').map(id => id.trim()) : [];
const prerequisitePhases = prerequisIds
.map(prereqId => allPhases.find(p => p.id === prereqId))
.filter(Boolean) as PhaseChantier[];
@@ -324,10 +325,10 @@ const PhaseValidationPanel: React.FC<PhaseValidationPanelProps> = ({
{renderValidationStatus()}
{renderBlockingPhases()}
<Accordion
multiple
<Accordion
multiple
activeIndex={expandedSections}
onTabChange={(e) => setExpandedSections(e.index as string[])}
onTabChange={(e) => setExpandedSections(e.index as number[])}
>
<AccordionTab
header={