new-visual-ajustments

This commit is contained in:
João Gustavo 2025-10-29 23:38:19 -03:00
parent cecadafac8
commit 093b873e86
3 changed files with 48 additions and 12 deletions

View File

@ -572,7 +572,7 @@ export default function PacientePage() {
<Button
variant="ghost"
size="sm"
className="transition duration-200 bg-white text-[#1e293b] border border-black/10 rounded-md shadow-[0_2px_6px_rgba(0,0,0,0.03)] hover:bg-[#2563eb] hover:text-white focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[#2563eb] dark:bg-slate-800 dark:text-slate-100 dark:border-white/10 dark:hover:bg-[#2563eb] dark:hover:text-white"
className="transition duration-200 bg-[#2563eb] text-white border border-[#2563eb]/40 rounded-md shadow-[0_2px_6px_rgba(0,0,0,0.03)] hover:bg-[#1e40af] hover:text-white focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[#2563eb]/60 dark:bg-[#2563eb] dark:text-white dark:border-[#2563eb]/50 dark:hover:bg-[#1e40af]"
onClick={() => setMostrarAgendadas(true)}
>
Ver consultas agendadas
@ -797,7 +797,7 @@ export default function PacientePage() {
<div className="text-sm text-muted-foreground">Data: {new Date(r.report_date || r.created_at || Date.now()).toLocaleDateString('pt-BR')}</div>
</div>
<div className="flex gap-2 mt-2 md:mt-0">
<Button variant="outline" onClick={async () => { setSelectedReport(r); }}>{strings.visualizarLaudo}</Button>
<Button variant="outline" className="hover:bg-primary/10 hover:text-primary dark:hover:bg-accent dark:hover:text-accent-foreground" onClick={async () => { setSelectedReport(r); }}>{strings.visualizarLaudo}</Button>
<Button variant="secondary" onClick={async () => { try { await navigator.clipboard.writeText(JSON.stringify(r)); setToast({ type: 'success', msg: 'Laudo copiado.' }) } catch { setToast({ type: 'error', msg: 'Falha ao copiar.' }) } }}>{strings.compartilhar}</Button>
</div>
</div>
@ -889,9 +889,15 @@ export default function PacientePage() {
Editar Perfil
</Button>
) : (
<div className="flex gap-2">
<div className="flex gap-2">
<Button onClick={handleSaveProfile} className="flex items-center gap-2">Salvar</Button>
<Button variant="outline" onClick={handleCancelEdit}>Cancelar</Button>
<Button
variant="outline"
onClick={handleCancelEdit}
className="transition duration-200 hover:bg-primary/10 hover:text-primary dark:hover:bg-accent dark:hover:text-accent-foreground"
>
Cancelar
</Button>
</div>
)}
</div>
@ -991,11 +997,39 @@ export default function PacientePage() {
<div className="flex flex-1 min-h-0">
{/* Sidebar vertical */}
<nav aria-label="Navegação do dashboard" className="w-56 bg-card border-r flex flex-col py-6 px-2 gap-2">
<Button variant={tab==='dashboard'?'secondary':'ghost'} aria-current={tab==='dashboard'} onClick={()=>setTab('dashboard')} className="justify-start"><Calendar className="mr-2 h-5 w-5" />{strings.dashboard}</Button>
<Button variant={tab==='consultas'?'secondary':'ghost'} aria-current={tab==='consultas'} onClick={()=>setTab('consultas')} className="justify-start"><Calendar className="mr-2 h-5 w-5" />{strings.consultas}</Button>
<Button variant={tab==='exames'?'secondary':'ghost'} aria-current={tab==='exames'} onClick={()=>setTab('exames')} className="justify-start"><FileText className="mr-2 h-5 w-5" />{strings.exames}</Button>
<Button
variant={tab==='dashboard'?'secondary':'ghost'}
aria-current={tab==='dashboard'}
onClick={()=>setTab('dashboard')}
className={`justify-start ${tab==='dashboard' ? 'bg-primary/10 text-primary' : ''}`}
>
<Calendar className="mr-2 h-5 w-5" />{strings.dashboard}
</Button>
<Button
variant={tab==='consultas'?'secondary':'ghost'}
aria-current={tab==='consultas'}
onClick={()=>setTab('consultas')}
className={`justify-start ${tab==='consultas' ? 'bg-primary/10 text-primary' : ''}`}
>
<Calendar className="mr-2 h-5 w-5" />{strings.consultas}
</Button>
<Button
variant={tab==='exames'?'secondary':'ghost'}
aria-current={tab==='exames'}
onClick={()=>setTab('exames')}
className={`justify-start ${tab==='exames' ? 'bg-primary/10 text-primary' : ''}`}
>
<FileText className="mr-2 h-5 w-5" />{strings.exames}
</Button>
<Button variant={tab==='perfil'?'secondary':'ghost'} aria-current={tab==='perfil'} onClick={()=>setTab('perfil')} className="justify-start"><UserCog className="mr-2 h-5 w-5" />{strings.perfil}</Button>
<Button
variant={tab==='perfil'?'secondary':'ghost'}
aria-current={tab==='perfil'}
onClick={()=>setTab('perfil')}
className={`justify-start ${tab==='perfil' ? 'bg-primary/10 text-primary' : ''}`}
>
<UserCog className="mr-2 h-5 w-5" />{strings.perfil}
</Button>
</nav>
{/* Conteúdo principal */}
<div className="flex-1 min-w-0 p-4 max-w-4xl mx-auto w-full">

View File

@ -617,7 +617,7 @@ export default function ResultadosClient() {
</Toggle>
<Select value={convenio} onValueChange={setConvenio}>
<SelectTrigger className="h-10 min-w-[180px] rounded-full border border-primary/40 bg-primary/10 text-primary hover:bg-primary hover:text-primary-foreground">
<SelectTrigger className="h-10 min-w-[180px] rounded-full border border-primary/40 bg-primary/10 text-primary transition duration-200 hover:bg-primary/10 hover:text-primary">
<SelectValue placeholder="Convênio" />
</SelectTrigger>
<SelectContent>
@ -631,7 +631,7 @@ export default function ResultadosClient() {
</Select>
<Select value={bairro} onValueChange={setBairro}>
<SelectTrigger className="h-10 min-w-[160px] rounded-full border border-primary/40 bg-primary/10 text-primary hover:bg-primary hover:text-primary-foreground">
<SelectTrigger className="h-10 min-w-[160px] rounded-full border border-primary/40 bg-primary/10 text-primary transition duration-200 hover:bg-primary/10 hover:text-primary">
<SelectValue placeholder="Bairro" />
</SelectTrigger>
<SelectContent>
@ -644,7 +644,7 @@ export default function ResultadosClient() {
<Button
variant="outline"
className="rounded-full border border-primary/40 bg-primary/10 text-primary hover:bg-primary hover:text-primary-foreground"
className="rounded-full border border-primary/40 bg-primary/10 text-primary transition duration-200 hover:bg-primary/10 hover:text-primary"
>
<Filter className="mr-2 h-4 w-4" />
Mais filtros
@ -782,7 +782,7 @@ export default function ResultadosClient() {
>
Agendar consulta
</Button>
<Button variant="outline" className="h-11 rounded-full border-primary/40 bg-primary/10 text-primary hover:bg-primary hover:text-primary-foreground">
<Button variant="outline" className="h-11 rounded-full border-primary/40 bg-primary/10 text-primary transition duration-200 hover:bg-primary/10 hover:text-primary">
Enviar mensagem
</Button>
<Button

View File

@ -90,6 +90,7 @@ export function UploadAvatar({ userId, currentAvatarUrl, onAvatarChange, userNam
size="sm"
onClick={() => document.getElementById('avatar-upload')?.click()}
disabled={isUploading}
className="transition duration-200 hover:bg-primary/10 hover:text-primary dark:hover:bg-accent dark:hover:text-accent-foreground"
>
<Upload className="h-4 w-4 mr-2" />
{isUploading ? 'Enviando...' : 'Upload'}
@ -100,6 +101,7 @@ export function UploadAvatar({ userId, currentAvatarUrl, onAvatarChange, userNam
variant="outline"
size="sm"
onClick={handleDownload}
className="transition duration-200 hover:bg-primary/10 hover:text-primary dark:hover:bg-accent dark:hover:text-accent-foreground"
>
<Download className="h-4 w-4 mr-2" />
Download