feat: add logo to exam print view commit

This commit is contained in:
mengstabketemaw
2026-06-27 12:07:26 +03:00
parent 2b2ae71a8f
commit 346c3585c1

View File

@@ -245,9 +245,21 @@ export function ExamDetailPage() {
);
}
const handlePrint = () => {
const handlePrint = async () => {
const printWindow = window.open('', '_blank');
if (!printWindow) return;
let logoBase64 = '';
try {
const resp = await fetch('/ema-logo.png');
const blob = await resp.blob();
logoBase64 = await new Promise<string>((resolve) => {
const reader = new FileReader();
reader.onloadend = () => resolve(reader.result as string);
reader.readAsDataURL(blob);
});
} catch { /* logo not available */ }
const qHtml = (exam.questions ?? []).map((q, i) => `
<div style="margin-bottom: 24px; page-break-inside: avoid;">
<p style="font-weight: 700; margin-bottom: 4px; font-size: 13px;">Question ${i + 1} (${q.points} pts — ${FORM_LABEL[q.form] ?? q.form})</p>
@@ -262,6 +274,7 @@ export function ExamDetailPage() {
<style>
body { font-family: sans-serif; padding: 40px; max-width: 800px; margin: auto; }
.header { text-align: center; margin-bottom: 32px; border-bottom: 2px solid #333; padding-bottom: 16px; }
.header-logo { max-width: 80px; margin-bottom: 8px; }
.header h1 { font-size: 20px; margin: 0 0 4px; }
.header p { margin: 2px 0; font-size: 13px; color: #555; }
.directions { background: #f5f5f5; padding: 12px 16px; border-radius: 4px; margin-bottom: 24px; font-size: 13px; }
@@ -269,6 +282,7 @@ export function ExamDetailPage() {
@media print { @page { margin: 20mm; } body { -webkit-print-color-adjust: exact; } }
</style></head><body>
<div class="header">
${logoBase64 ? `<img src="${logoBase64}" alt="Logo" class="header-logo" />` : ''}
<h1>${exam.title.en}</h1>
<p>${exam.title.am}</p>
<p>Date: ${exam.date} | Venue: ${exam.venue}</p>