Inmutabilidad en Ordenamientos con toSorted()

El método nativo Array.prototype.sort() muta el array original in-place. Si el array proviene de una propiedad (props), de una constante global (REGISTRY_COMPONENTS) o de un estado compartido, mutarlo provoca efectos secundarios impredecibles y bugs difíciles de rastrear.

1. Antipatrón vs Patrón Recomendado

// ANTIPATRÓN: Muta destructivamente el array original
const listaOriginal = [...componentes];
listaOriginal.sort((a, b) => a.name.localeCompare(b.name));
 
// PATRÓN RECOMENDADO: ECMAScript moderno inmutable
const listaOrdenada = componentes.toSorted((a, b) => a.name.localeCompare(b.name));

2. Aplicación en Componentes de Tabla de Datos

En DataTable.astro:

// Ordena los datos de la fila sin alterar los datos originales
const filasOrdenadas = filas.toSorted((a, b) => {
  const valA = a[columnaActual] ?? '';
  const valB = b[columnaActual] ?? '';
  return direccion === 'asc'
    ? String(valA).localeCompare(String(valB))
    : String(valB).localeCompare(String(valA));
});