{item.label}
{item.value}
import { useMemo, useState } from 'react' import { FeatureCallout } from '../components/FeatureState.jsx' import { visitRepository } from '../repositories/visitRepository.js' const tabs = [ { label: 'Fila ativa', value: 'ativa' }, { label: 'Em atendimento', value: 'atendimento' }, { label: 'Finalizadas', value: 'finalizadas' }, ] const cardClass = 'rounded-2xl border border-[#404040] bg-[#262626] shadow-sm' export function VisitsPage({ navigate }) { const careQueue = useMemo(() => visitRepository.getCareQueue(), []) const stages = useMemo(() => visitRepository.getStages(), []) const [activeTab, setActiveTab] = useState('ativa') const visibleQueue = useMemo(() => { if (activeTab === 'finalizadas') { return careQueue.filter((item) => isFinalizedStatus(item.status)) } if (activeTab === 'atendimento') { return careQueue.filter((item) => !isFinalizedStatus(item.status) && !isWaitingDoctorStatus(item.status)) } return careQueue.filter((item) => !isFinalizedStatus(item.status)) }, [activeTab, careQueue]) const summary = [ { label: 'Na fila', value: careQueue.filter((item) => !isFinalizedStatus(item.status)).length, tone: 'text-[#3b82f6]' }, { label: 'Alta prioridade', value: careQueue.filter((item) => item.priority === 'Alta').length, tone: 'text-red-400' }, { label: 'Finalizadas', value: careQueue.filter((item) => isFinalizedStatus(item.status)).length, tone: 'text-emerald-400' }, ] return (
Fila de atendimento, triagem e acompanhamento clínico local.
{item.label}
{item.value}
{visibleQueue.length} registros no filtro atual
{item.reason}
Nenhuma consulta caiu neste estado. Troque de aba para ver a fila mockada.
Etapa {index + 1}
{stage.description}
{label}
{value}