UX: notificaciones de chat con toast y sonido (WebAudio) + skeletons de carga en Agenda y Chat

This commit is contained in:
2026-09-01 22:51:01 +00:00
parent f0d7ac4c01
commit cfacb23f45
4 changed files with 203 additions and 4 deletions

View File

@@ -1179,7 +1179,29 @@ const Agenda: FC = () => {
{error && <p className="text-rose-600 text-sm mb-4">{error}</p>}
{loading ? (
<Skeleton count={6} className="h-12 w-full" />
viewMode === 'lista' ? (
<Skeleton count={6} className="h-12 w-full" />
) : (
/* Skeleton con forma de grid (columnas de médicos × filas) */
<div className="rounded-2xl border border-theme-border p-3 animate-pulse">
<div className="flex gap-2 mb-2">
<div className="h-9 w-20 shrink-0 rounded-xl bg-theme-border-strong" />
{Array.from({ length: 5 }).map((_, i) => (
<div key={i} className="h-9 flex-1 rounded-xl bg-theme-border-strong" />
))}
</div>
<div className="space-y-1.5">
{Array.from({ length: 6 }).map((_, r) => (
<div key={r} className="flex gap-2">
<div className="h-10 w-20 shrink-0 rounded-xl bg-theme-border-strong" />
{Array.from({ length: 5 }).map((_, c) => (
<div key={c} className="h-10 flex-1 rounded-xl bg-theme-border-strong" />
))}
</div>
))}
</div>
</div>
)
) : viewMode === 'doctores' ? (
gridColumns.length === 0 ? (
<EmptyState