Kairo-Jinkendo/frontend/src/components/RecentlyOpened.jsx
Lars e42edd86fa
Some checks failed
Deploy Development / deploy (push) Successful in 47s
Test Suite / pytest-backend (push) Failing after 1m46s
Test Suite / k6 /api/health Baseline (push) Has been skipped
Test Suite / playwright-smoke (push) Has been skipped
Test Suite / lint-backend (push) Successful in 2s
Test Suite / compose-smoke (push) Has been skipped
AP1.9a: Arbeitsmodi-Shell mit Scope, Objekt-Routen und Legacy-Redirects.
Ersetzt die Vorhaben-Tab-Navigation durch Cockpit/Ausführen/Planen/Kontrolle/Team, Deep Links für APs/Projekte/Gates und Programm-Scope im Header.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-08 12:55:37 +02:00

34 lines
956 B
JavaScript

import { Link } from 'react-router-dom'
import { loadRecentObjects } from '../utils/recentObjects.js'
const TYPE_LABELS = {
action: 'AP',
project: 'Projekt',
gate: 'Gate',
initiative: 'Vorhaben',
}
export function RecentlyOpened() {
const items = loadRecentObjects().slice(0, 5)
if (items.length === 0) return null
return (
<div className="recently-opened" aria-label="Zuletzt geöffnet">
<span className="recently-opened__label">Zuletzt</span>
<div className="recently-opened__items">
{items.map((item) => (
<Link
key={`${item.type}-${item.id}`}
to={item.href}
className="recently-opened__chip"
title={item.title}
>
<span className="recently-opened__type">{TYPE_LABELS[item.type] || item.type}</span>
<span className="recently-opened__title">{item.title}</span>
</Link>
))}
</div>
</div>
)
}