Akash4911's picture
Production Deploy: Improved robustness and logging
66b6851
Raw
History Blame Contribute Delete
2.96 kB
import React from 'react';
import { Settings, Menu } from 'lucide-react';
import { useAuth } from '../../hooks/useAuth';
interface TopBarProps {
searchValue?: string;
onSearchChange?: (value: string) => void;
onMenuClick?: () => void;
}
const TopBar: React.FC<TopBarProps> = ({ searchValue, onSearchChange, onMenuClick }) => {
const { user } = useAuth();
return (
<div className="flex justify-between items-center mb-8 w-full gap-4">
<div className="flex items-center gap-4">
{onMenuClick && (
<button
onClick={onMenuClick}
className="lg:hidden p-2 rounded-xl border border-[var(--panel-border)] bg-[var(--panel-bg)] hover:bg-[var(--sidebar-hover-bg)] transition-colors"
>
<Menu size={20} style={{ color: 'var(--text-heading)' }} />
</button>
)}
<div className="min-w-0">
<h1 className="font-display text-3xl md:text-4xl font-black tracking-tighter truncate uppercase" style={{ color: '#00E5CC' }}>
{window.location.pathname === '/dashboard' ? 'Dashboard' :
window.location.pathname.split('/').pop()?.replace('Lab', ' Lab')}
</h1>
<p className="text-[10px] md:text-xs font-bold uppercase tracking-[0.2em] mt-1" style={{ color: 'var(--text-secondary)' }}>
Real-time deepfake & synthetic media intelligence
</p>
</div>
</div>
<div className="flex items-center gap-3 md:gap-6">
{/* Global Labs Search */}
<div className="hidden md:flex items-center gap-3 bg-[var(--bg-secondary)] px-4 py-2.5 rounded-2xl border border-[var(--panel-border)] group focus-within:border-[#00E5CC] transition-all w-64 lg:w-80 shadow-inner">
<svg className="w-4 h-4 text-[var(--text-muted)] group-focus-within:text-[#00E5CC] transition-colors" fill="none" stroke="currentColor" viewBox="0 0 24 24">
<path d="M21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0z" strokeLinecap="round" strokeLinejoin="round" strokeWidth="2.5"></path>
</svg>
<input
type="text"
placeholder="Search all labs & forensic data..."
className="bg-transparent border-none outline-none text-xs w-full font-medium"
style={{ color: 'var(--text-primary)' }}
value={searchValue}
onChange={onSearchChange ? (e) => onSearchChange(e.target.value) : undefined}
/>
<div className="flex items-center gap-1 opacity-40 group-focus-within:opacity-100 transition-opacity">
<span className="text-[9px] px-1.5 py-0.5 rounded bg-[var(--panel-bg)] border border-[var(--panel-border)] text-[var(--text-muted)]"></span>
<span className="text-[9px] px-1.5 py-0.5 rounded bg-[var(--panel-bg)] border border-[var(--panel-border)] text-[var(--text-muted)]">K</span>
</div>
</div>
</div>
</div>
);
};
export default TopBar;