From 57310f6621c79fa5a9d46e1508ab387a58031e92 Mon Sep 17 00:00:00 2001 From: M-Gabrielly Date: Wed, 3 Dec 2025 21:31:34 -0300 Subject: [PATCH] fix(profissional): Standardized the creation of physician availability on the physician's page --- susconecta/app/profissional/page.tsx | 57 ++++++++++++++++++++++------ 1 file changed, 45 insertions(+), 12 deletions(-) diff --git a/susconecta/app/profissional/page.tsx b/susconecta/app/profissional/page.tsx index 038978c..4a29a85 100644 --- a/susconecta/app/profissional/page.tsx +++ b/susconecta/app/profissional/page.tsx @@ -160,6 +160,7 @@ const ProfissionalPage = () => { // Estados para disponibilidades e exceções do médico logado const [availabilities, setAvailabilities] = useState([]); const [exceptions, setExceptions] = useState([]); + const [availabilitiesForCreate, setAvailabilitiesForCreate] = useState([]); const [availLoading, setAvailLoading] = useState(false); const [exceptLoading, setExceptLoading] = useState(false); const [editingAvailability, setEditingAvailability] = useState(null); @@ -2842,7 +2843,28 @@ const ProfissionalPage = () => { availabilityByDay.set(day, a); } }); - const filteredAvailabilities = Array.from(availabilityByDay.values()); + let filteredAvailabilities = Array.from(availabilityByDay.values()); + + // Ordenar por dia da semana (Segunda a Domingo) + filteredAvailabilities = filteredAvailabilities.sort((a, b) => { + const weekdayOrder: Record = { + 'segunda': 1, 'segunda-feira': 1, 'mon': 1, 'monday': 1, '1': 1, + 'terca': 2, 'terça': 2, 'terça-feira': 2, 'tue': 2, 'tuesday': 2, '2': 2, + 'quarta': 3, 'quarta-feira': 3, 'wed': 3, 'wednesday': 3, '3': 3, + 'quinta': 4, 'quinta-feira': 4, 'thu': 4, 'thursday': 4, '4': 4, + 'sexta': 5, 'sexta-feira': 5, 'fri': 5, 'friday': 5, '5': 5, + 'sabado': 6, 'sábado': 6, 'sat': 6, 'saturday': 6, '6': 6, + 'domingo': 7, 'dom': 7, 'sun': 7, 'sunday': 7, '0': 7, '7': 7 + }; + + const getWeekdayOrder = (weekday: any) => { + if (typeof weekday === 'number') return weekday === 0 ? 7 : weekday; + const normalized = String(weekday).toLowerCase().normalize('NFD').replace(/\p{Diacritic}/gu, ''); + return weekdayOrder[normalized] || 999; + }; + + return getWeekdayOrder(a.weekday) - getWeekdayOrder(b.weekday); + }); // Filtrar apenas a primeira exceção de cada data const exceptionByDate = new Map(); @@ -2862,9 +2884,18 @@ const ProfissionalPage = () => {