Files
clube67_newwhats.local/base-scoreodonto/medico/MedLayout.tsx
T
VPS 4 Deploy Agent 5ec6bd6354
continuous-integration/webhook Falha no deploy de clube67_newwhats.local (VPS 4)
chore(ops): migrate clube67 to newwhats.clube67.com directory
2026-05-18 03:26:41 +02:00

88 lines
4.6 KiB
TypeScript

import React, { useState } from 'react';
import { MedSidebar } from './MedSidebar.tsx';
import { Bell, Search, Settings, HelpCircle } from 'lucide-react';
interface MedLayoutProps {
children: React.ReactNode;
currentView: string;
onNavigate: (view: any) => void;
}
export const MedLayout: React.FC<MedLayoutProps> = ({ children, currentView, onNavigate }) => {
return (
<div className="flex min-h-screen bg-[#020617] text-slate-200 overflow-hidden font-sans">
{/* Sidebar */}
<MedSidebar activeTab={currentView} setActiveTab={onNavigate} />
{/* Main Content Area */}
<div className="flex-1 ml-72 flex flex-col h-screen overflow-hidden">
{/* Premium Top Bar */}
<header className="h-24 px-10 flex items-center justify-between border-b border-white/5 bg-[#020617]/50 backdrop-blur-xl sticky top-0 z-40">
<div className="flex items-center gap-6 flex-1 max-w-xl">
<div className="relative group w-full">
<Search className="absolute left-4 top-1/2 -translate-y-1/2 text-slate-500 group-focus-within:text-cyan-400 transition-colors" size={18} />
<input
type="text"
placeholder="BUSCAR PACIENTES, AGENDAMENTOS OU GUIAS..."
className="w-full bg-white/5 border border-white/10 rounded-2xl py-3.5 pl-12 pr-6 text-xs font-bold uppercase tracking-widest focus:outline-none focus:border-cyan-500/50 focus:bg-white/[0.08] transition-all"
/>
</div>
</div>
<div className="flex items-center gap-6">
<div className="flex items-center gap-2">
{[
{ icon: Bell, alert: true },
{ icon: HelpCircle, alert: false },
{ icon: Settings, alert: false }
].map((item, i) => (
<button key={i} className="w-12 h-12 rounded-2xl bg-white/5 border border-white/10 flex items-center justify-center hover:bg-white/10 transition-all relative">
<item.icon size={20} className="text-slate-400" />
{item.alert && <div className="absolute top-3 right-3 w-2.5 h-2.5 bg-cyan-500 border-2 border-[#020617] rounded-full"></div>}
</button>
))}
</div>
<div className="h-10 w-px bg-white/10 mx-2"></div>
<div className="flex items-center gap-3 pl-2">
<div className="text-right">
<span className="text-[10px] font-black text-cyan-500 block leading-none uppercase tracking-widest">Acesso Premium</span>
<span className="text-xs font-black text-white uppercase tracking-tighter">Portal Médico Cassems</span>
</div>
<div className="w-12 h-12 rounded-full bg-gradient-to-tr from-cyan-500 to-blue-600 p-[2px] shadow-lg shadow-cyan-500/20">
<div className="w-full h-full rounded-full bg-slate-900 flex items-center justify-center text-xs font-black text-white">
MED
</div>
</div>
</div>
</div>
</header>
{/* Dashboard/View Container */}
<main className="flex-1 overflow-y-auto p-10 custom-scrollbar">
<div className="max-w-7xl mx-auto pb-20">
{children}
</div>
</main>
</div>
<style>{`
.custom-scrollbar::-webkit-scrollbar {
width: 6px;
}
.custom-scrollbar::-webkit-scrollbar-track {
background: transparent;
}
.custom-scrollbar::-webkit-scrollbar-thumb {
background: rgba(255, 255, 255, 0.05);
border-radius: 10px;
}
.custom-scrollbar::-webkit-scrollbar-thumb:hover {
background: rgba(255, 255, 255, 0.1);
}
`}</style>
</div>
);
};