+
EN ESPERA
0
+
+
+
+
+
+ — ninguno seleccionado —
+
+
+
@@ -474,6 +489,7 @@ function renderCola(snap) {
const items = snap.cola || [];
const espera = items.filter(t => t.estado === 'en_espera_lugar');
document.getElementById('badge-count').textContent = espera.length;
+ _actualizarNavCola(items);
const lista = document.getElementById('cola-items');
if (!items.length) {
@@ -508,6 +524,52 @@ function enfocarFicha() {
document.getElementById('ficha-turno')?.scrollIntoView({ behavior: 'smooth', block: 'nearest' });
}
+// ── Navegación entre turnos en espera ─────────────────────────
+let _navItems = []; // lista de turnos en_espera_lugar actual
+let _navIdx = -1; // índice seleccionado
+
+function _actualizarNavCola(items) {
+ _navItems = items.filter(t => t.estado === 'en_espera_lugar');
+ // Mantener idx si el turno seleccionado sigue en lista
+ if (_navIdx >= _navItems.length) _navIdx = _navItems.length - 1;
+ const nav = document.getElementById('nav-cola');
+ if (_navItems.length > 0) {
+ nav.style.removeProperty('display');
+ if (_navIdx < 0) _navIdx = 0;
+ _renderNavPreview();
+ } else {
+ nav.style.display = 'none';
+ _navIdx = -1;
+ document.getElementById('nav-preview').innerHTML =
+ `— ninguno seleccionado —`;
+ }
+}
+
+function _renderNavPreview() {
+ const t = _navItems[_navIdx];
+ if (!t) return;
+ document.getElementById('nav-preview').innerHTML =
+ `${t.prioridad_codigo}
+ ${escHtml(t.codigo)}
+ ${escHtml(t.paciente_nombre || '')}
+ `;
+ // Resaltar la card en la lista
+ document.querySelectorAll('.cola-card').forEach(el => el.classList.remove('nav-selected'));
+ const cards = document.querySelectorAll('#cola-items .cola-card');
+ if (cards[_navIdx]) cards[_navIdx].classList.add('nav-selected');
+}
+
+function navCola(dir) {
+ if (!_navItems.length) return;
+ _navIdx = (_navIdx + dir + _navItems.length) % _navItems.length;
+ _renderNavPreview();
+}
+
+async function llamarNavActual() {
+ if (_navIdx < 0 || !_navItems[_navIdx]) return;
+ await llamarTurnoEspecifico(_navItems[_navIdx].id);
+}
+
// ── Llamar siguiente ──────────────────────────────────────────
async function llamarSiguiente() {
await _llamar({});