Compare commits

...
Author SHA1 Message Date
admin a57d6633bd Merge PR #55 · activar ficha compacta de Instalación de superficie
Corrige el matcher de tipo para que Instalación de superficie y Subinstalación usen realmente el Resumen compacto.
2026-09-11 14:50:17 -03:00
admin e18e86e918 fix(web): reconocer Instalación de superficie en ficha compacta 2026-09-11 14:44:42 -03:00
admin cadf766d3c Merge PR #54 · simplificar ficha de Instalación/Subinstalación
Compacta el Resumen de Instalaciones y Subinstalaciones, mueve el contexto físico al Historial y mantiene las funciones avanzadas accesibles sin alargar la ficha principal.
2026-09-11 14:32:07 -03:00
+17 -3
View File
@@ -78,6 +78,14 @@ function hasAttributeValue(definition: AssetAttributeDefinition, value: unknown)
return value !== undefined && value !== null && String(value).trim() !== '';
}
function normalizeStructuralType(value: string | null | undefined): string {
return (value ?? '')
.normalize('NFD')
.replace(/[\u0300-\u036f]/g, '')
.trim()
.toLowerCase();
}
export function AssetEditorPage() {
const { id } = useParams();
const editing = Boolean(id);
@@ -343,9 +351,15 @@ export function AssetEditorPage() {
? 'companies'
: 'territory';
const structuralTypeCode = selectedType?.code.trim().toLowerCase() ?? '';
const compactStructuralSummary = editing
&& (structuralTypeCode === 'instalacion' || structuralTypeCode === 'subinstalacion');
const structuralTypeCode = normalizeStructuralType(selectedType?.code);
const structuralTypeName = normalizeStructuralType(selectedType?.name);
const compactStructuralSummary = editing && (
['instalacion', 'instalacion-superficie', 'instalacion_de_superficie', 'instalacion-de-superficie', 'subinstalacion']
.includes(structuralTypeCode)
|| structuralTypeName === 'instalacion'
|| structuralTypeName === 'instalacion de superficie'
|| structuralTypeName === 'subinstalacion'
);
const technicalFilledCount = definitions.filter(
(definition) => hasAttributeValue(definition, attributeValues[definition.id]),