zioinfo-esn/frontend/src/components/Header.tsx
DESKTOP-TKLFCPR\ython 969fcd7284 feat(esn): zioinfo ESN ESL 통합 플랫폼 초기 구현
Spring Boot 3.5 / Java 17 + React 19 + PostgreSQL 단일 JAR.
멀티테넌트(LGINNOTEK/LGIT/EMART/ZIOINFO), HCore 게이트웨이 관제,
POS 연동 가격 자동 업데이트, Ollama 온프레미스 AI 알람 분석·POS 분류.
레거시 ESN 6개 프로젝트(Spring Boot 1.5/Java 8) 현대화 통합.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-16 01:07:05 +09:00

35 lines
1.3 KiB
TypeScript

import { useNavigate } from 'react-router-dom'
import { LogOut, User } from 'lucide-react'
export default function Header() {
const navigate = useNavigate()
const user = localStorage.getItem('esn_user') || 'admin'
const role = localStorage.getItem('esn_role') || 'ADMIN'
const tenant = localStorage.getItem('esn_tenant') || 'ALL'
function handleLogout() {
localStorage.removeItem('esn_token')
localStorage.removeItem('esn_role')
localStorage.removeItem('esn_user')
localStorage.removeItem('esn_tenant')
navigate('/login')
}
return (
<header className="h-14 bg-panel border-b border-edge flex items-center px-6 gap-4 flex-shrink-0">
<div className="flex-1" />
<span className="text-xs text-gray-400">: <span className="text-brand">{tenant}</span></span>
<span className="text-xs text-gray-400">|</span>
<div className="flex items-center gap-2 text-sm text-gray-300">
<User size={14} />
<span>{user}</span>
<span className="text-xs text-brand bg-brand/10 px-2 py-0.5 rounded">{role}</span>
</div>
<button onClick={handleLogout} className="flex items-center gap-1.5 text-gray-400 hover:text-white text-sm">
<LogOut size={14} />
</button>
</header>
)
}