/* project.jsx — individual project detail page (hash route #/project/:id) */
const { useEffect: pE } = React;
function ProjectDetail({ id, lang, onOpen, onBack, onNavigate }) {
const T = (v) => window.t(v, lang);
const all = window.OLV.projects;
const idx = all.findIndex((p) => p.id === id);
const p = all[idx];
pE(() => { window.scrollTo({ top: 0, behavior: "auto" }); }, [id]);
if (!p) return (
{T({ en: "Project not found", hi: "प्रोजेक्ट नहीं मिला" })}
{T({ en: "Back to portfolio", hi: "पोर्टफ़ोलियो पर वापस" })}
);
const cat = window.OLV.categories.find((c) => c.id === p.cat);
const status = window.OLV.statuses.find((s) => s.id === p.status);
const prev = all[(idx - 1 + all.length) % all.length];
const next = all[(idx + 1) % all.length];
const related = all.filter((r) => r.cat === p.cat && r.id !== p.id).slice(0, 3);
const facts = [
{ lbl: T({ en: "Category", hi: "श्रेणी" }), val: cat && T(cat) },
{ lbl: T({ en: "Type", hi: "प्रकार" }), val: T(p.type) },
{ lbl: T({ en: "Location", hi: "स्थान" }), val: T(p.loc) },
{ lbl: T({ en: "Scale", hi: "परिमाण" }), val: p.area },
{ lbl: T({ en: "Status", hi: "स्थिति" }), val: T(status) },
];
return (
{/* hero */}
{T({ en: "Portfolio", hi: "पोर्टफ़ोलियो" })}
{T(p.loc)}
{T(p.title)}
{T(cat)} {p.area} {T(status)}
{T(p.summary)}
{T(window.OLV.portfolio.highlights)}
{p.highlights.map((h, i) => {T(h)} )}
{T(window.OLV.portfolio.services)}
{p.services.map((s, i) => {s} )}
{T({ en: "Every project we deliver is a reflection of the client's vision — executed with military precision and IIT-level technical expertise.", hi: "हमारा हर प्रोजेक्ट क्लाइंट की दृष्टि का प्रतिबिंब है — सैन्य परिशुद्धता व आईआईटी-स्तरीय तकनीकी विशेषज्ञता से निष्पादित।" })}
{facts.map((f, i) => f.val &&
{f.lbl} {f.val}
)}
{T({ en: "Planning something similar?", hi: "कुछ ऐसा ही योजना में है?" })}
{T({ en: "Speak with Col Satwant about your project.", hi: "अपने प्रोजेक्ट पर कर्नल सतवंत से बात करें।" })}
onNavigate("contact")}>{T(window.OLV.cta.consult)}
{/* related */}
{related.length > 0 && (
{T({ en: "Related projects", hi: "संबंधित प्रोजेक्ट" })}
{related.map((r) => {
const rc = window.OLV.categories.find((c) => c.id === r.cat);
return (
onOpen(r.id)}>
{T(r.loc)}
{T(r.title)}
{rc && T(rc)} {r.area}
);
})}
)}
{/* prev / next */}
onOpen(prev.id)}>{T({ en: "Previous", hi: "पिछला" })} {T(prev.title)}
onOpen(next.id)}>{T({ en: "Next", hi: "अगला" })} {T(next.title)}
);
}
Object.assign(window, { ProjectDetail });