Arquivos afetados:
src/App.jsx (linhas 66-87) — dentro de loadEvents
src/admin/Dashboard.jsx (linhas 208-229) — sortedEvents useMemo
Problema
A mesma logica de ordenacao (futuros primeiro por proximidade, passados por mais recente) esta implementada em dois lugares.
Refatoracao Proposta
Extrair para utility:
// src/utils/eventSort.js
import { parseEventDate } from './dateUtils'
export function sortEventsByDate(events) {
const today = new Date()
today.setHours(0, 0, 0, 0)
return [...events].sort((a, b) => {
const dateA = parseEventDate(a.data_evento)
const dateB = parseEventDate(b.data_evento)
const isAFuture = dateA >= today
const isBFuture = dateB >= today
if (isAFuture && !isBFuture) return -1
if (!isAFuture && isBFuture) return 1
if (isAFuture) return dateA - dateB
return dateB - dateA
})
}
Arquivos afetados:
src/App.jsx(linhas 66-87) — dentro deloadEventssrc/admin/Dashboard.jsx(linhas 208-229) —sortedEventsuseMemoProblema
A mesma logica de ordenacao (futuros primeiro por proximidade, passados por mais recente) esta implementada em dois lugares.
Refatoracao Proposta
Extrair para utility: