diff --git a/Dockerfile.business b/Dockerfile.business index 9048c4b..77d8381 100644 --- a/Dockerfile.business +++ b/Dockerfile.business @@ -136,6 +136,64 @@ try: with open(f, 'r', encoding='utf-8') as file: content = file.read() + # VÉRIFICATION PRÉLIMINAIRE: Détecter les doublons structurels + print("🔍 Vérification de la structure du composant...") + + # Compter les éléments structurels + nav_patterns = [ + r']*>', content)) + + # Compter les logos (Image avec logo ou logoFile) + logo_patterns = [ + r'logoFile', + r'logo\.svg', + r'[Ll]ogo', + r'Image.*logo' + ] + logo_count = sum(len(re.findall(pattern, content)) for pattern in logo_patterns) + + # Compter les fonctions Navigation + function_count = len(re.findall(r'(export\s+(default\s+)?function\s+Navigation|const\s+Navigation\s*=\s*\(|function\s+Navigation\s*\()', content)) + + print(f"📊 Structure détectée: {nav_count} nav, {ul_count} ul, {logo_count} logo, {function_count} fonction(s)") + + # Détecter les duplications structurelles + if function_count > 1: + print(f"⚠️ ATTENTION: {function_count} fonction(s) Navigation détectée(s) - possible duplication du composant", file=sys.stderr) + # Extraire uniquement la première fonction Navigation + matches = list(re.finditer(r'(export\s+(default\s+)?function\s+Navigation|const\s+Navigation\s*=\s*\(|function\s+Navigation\s*\()', content)) + if len(matches) > 1: + # Garder seulement jusqu'à la fin de la première fonction + first_end = matches[1].start() if len(matches) > 1 else len(content) + content = content[:first_end] + # Trouver la fin de la fonction (dernière accolade fermante avant la prochaine fonction) + brace_count = 0 + in_function = False + for i, char in enumerate(content[matches[0].start():], matches[0].start()): + if char == '{': + brace_count += 1 + in_function = True + elif char == '}': + brace_count -= 1 + if in_function and brace_count == 0: + content = content[:i+1] + break + print(f"✅ Duplication du composant supprimée") + + if ul_count > 3: # Plus de 3 ul suggère une duplication + print(f"⚠️ ATTENTION: {ul_count} éléments