share job

This commit is contained in:
JAE SIK CHO
2026-04-09 11:12:12 +09:00
commit f8427ee1d0
193 changed files with 23830 additions and 0 deletions

View File

@@ -0,0 +1,47 @@
'use client'
import { useAuthStore } from '@/lib/store/authStore'
import { buildTree, type TreeNode } from './Sidebar'
function findTrail(nodes: TreeNode[], targetMenuNo: string | null): TreeNode[] {
if (!targetMenuNo) return []
for (const node of nodes) {
if (node.menuNo === targetMenuNo) return [node]
const childTrail = findTrail(node.children, targetMenuNo)
if (childTrail.length > 0) return [node, ...childTrail]
}
return []
}
export function Breadcrumb() {
const menuList = useAuthStore((s) => s.menuList)
const selectedMenuNo = useAuthStore((s) => s.selectedMenuNo)
const tree = buildTree(menuList)
const trail = findTrail(tree, selectedMenuNo)
if (trail.length === 0) return null
const current = trail[trail.length - 1]
return (
<div className="bg-white border-b px-6 py-2.5 flex items-center gap-3 shrink-0">
<h1 className="text-sm font-semibold text-gray-800">{current.menuNm}</h1>
{trail.length > 1 && (
<>
<span className="text-gray-200">|</span>
<nav className="flex items-center gap-1 text-xs text-gray-400">
{trail.map((item, i) => (
<span key={item.menuNo} className="flex items-center gap-1">
{i > 0 && <span className="text-gray-300"></span>}
<span className={i === trail.length - 1 ? 'text-blue-600 font-medium' : ''}>
{item.menuNm}
</span>
</span>
))}
</nav>
</>
)}
</div>
)
}