drug-ner / frontend /src /components /Layout.jsx
baob2004's picture
Deploy Drug NER PhoBERT
b211dba
Raw
History Blame Contribute Delete
2.09 kB
import { NAV_ITEMS, SITE_COVER_IMAGE } from "../config";
import { styles } from "../styles";
function Header({ currentPage, onNavigate }) {
return (
<header style={styles.header}>
<div style={styles.headerTopLine} />
<div style={styles.govMasthead}>
<div style={styles.govMastheadInner}>
<img
src={SITE_COVER_IMAGE}
alt="Ảnh bìa hệ thống"
style={styles.govLogoImage}
onError={(e) => {
e.currentTarget.style.display = "none";
}}
/>
<div style={styles.govTitleBlock}>
<div style={styles.govKicker}>HỆ THỐNG NHẬN DIỆN THỰC THỂ BẢN ÁN HÌNH SỰ MA TÚY</div>
<div style={styles.govMainTitle}>DRUG NER</div>
<div style={styles.govMeta}>Xử lý PDF · Highlight thực thể · Hỗ trợ nghiên cứu bản án tiếng Việt</div>
</div>
</div>
</div>
<div style={styles.navbarWrap}>
<nav style={styles.topNav}>
{NAV_ITEMS.map((item) => (
<button
key={item.key}
type="button"
onClick={() => onNavigate(item.key)}
style={{ ...styles.topNavBtn, ...(currentPage === item.key ? styles.topNavBtnActive : {}) }}
>
{item.label}
</button>
))}
</nav>
</div>
</header>
);
}
function Footer() {
return (
<footer style={styles.footer}>
<div style={styles.footerInner}>
<span><strong>Drug NER PhoBERT</strong> · Nhận diện thực thể trong bản án hình sự ma túy</span>
<span>FastAPI · React · Vietnamese Legal NER</span>
<span>© {new Date().getFullYear()} · v1.2</span>
</div>
</footer>
);
}
export default function Layout({ currentPage, onNavigate, children }) {
return (
<div style={styles.appShell}>
<Header currentPage={currentPage} onNavigate={onNavigate} />
<main style={styles.main}>{children}</main>
<Footer />
</div>
);
}