Skip to content

Commit 1936088

Browse files
feat: exclude game event type for speaker info
1 parent 56816db commit 1936088

File tree

1 file changed

+68
-57
lines changed

1 file changed

+68
-57
lines changed

src/components/home/CourseModal.astro

Lines changed: 68 additions & 57 deletions
Original file line numberDiff line numberDiff line change
@@ -495,67 +495,78 @@ import type { Course } from "../../types/schedule";
495495
if (modalTitleEl) modalTitleEl.textContent = course.title_zh?.split("\n")[0] || "";
496496
if (modalSubtitleEl) modalSubtitleEl.textContent = course.title_zh?.split("\n")[1] || "";
497497

498-
// Get speaker data
499-
const speakers = [
500-
{ name: course.speaker1, id: course.speaker1id, desc: course.speaker1Desc },
501-
{ name: course.speaker2, id: course.speaker2id, desc: course.speaker2Desc },
502-
{ name: course.speaker3, id: course.speaker3id, desc: course.speaker3Desc },
503-
{ name: course.speaker4, id: course.speaker4id, desc: course.speaker4Desc },
504-
{ name: course.speaker5, id: course.speaker5id, desc: course.speaker5Desc }
505-
].filter(speaker => speaker.name && speaker.name.trim() !== "");
506-
507-
const speakerText = speakers.map(speaker => speaker.name).join("");
508-
509-
if (speakerSectionTitleEl) {
510-
speakerSectionTitleEl.textContent = "講者介紹";
511-
}
498+
// Hide speaker section entirely for Game type events
499+
if (course.type === "Game") {
500+
if (speakerSectionTitleEl) speakerSectionTitleEl.style.display = "none";
501+
if (speakerDescriptionEl) speakerDescriptionEl.style.display = "none";
502+
if (modalPersonImageEl) modalPersonImageEl.style.display = "none";
503+
} else {
504+
// Show speaker section for non-Game events
505+
if (speakerSectionTitleEl) speakerSectionTitleEl.style.display = "block";
506+
if (speakerDescriptionEl) speakerDescriptionEl.style.display = "block";
507+
508+
// Get speaker data
509+
const speakers = [
510+
{ name: course.speaker1, id: course.speaker1id, desc: course.speaker1Desc },
511+
{ name: course.speaker2, id: course.speaker2id, desc: course.speaker2Desc },
512+
{ name: course.speaker3, id: course.speaker3id, desc: course.speaker3Desc },
513+
{ name: course.speaker4, id: course.speaker4id, desc: course.speaker4Desc },
514+
{ name: course.speaker5, id: course.speaker5id, desc: course.speaker5Desc }
515+
].filter(speaker => speaker.name && speaker.name.trim() !== "");
516+
517+
const speakerText = speakers.map(speaker => speaker.name).join("");
518+
519+
if (speakerSectionTitleEl) {
520+
speakerSectionTitleEl.textContent = "講者介紹";
521+
}
512522

513-
// Handle speaker images and descriptions
514-
if (speakerDescriptionEl) {
515-
const speakersWithDesc = speakers.filter(speaker => speaker.desc && speaker.desc.trim() !== "");
516-
517-
if (speakers.length === 1) {
518-
// Single speaker - show image in top-right position
519-
const speaker = speakers[0];
520-
if (modalPersonImageEl && speaker.id) {
521-
modalPersonImageEl.src = `/2025/speakers/${speaker.id}.webp`;
522-
modalPersonImageEl.style.display = "block";
523-
modalPersonImageEl.onerror = () => {
523+
// Handle speaker images and descriptions
524+
if (speakerDescriptionEl) {
525+
const speakersWithDesc = speakers.filter(speaker => speaker.desc && speaker.desc.trim() !== "");
526+
527+
if (speakers.length === 1) {
528+
// Single speaker - show image in top-right position
529+
const speaker = speakers[0];
530+
if (modalPersonImageEl && speaker.id) {
531+
modalPersonImageEl.src = `/2025/speakers/${speaker.id}.webp`;
532+
modalPersonImageEl.style.display = "block";
533+
modalPersonImageEl.onerror = () => {
534+
modalPersonImageEl.style.display = "none";
535+
};
536+
}
537+
538+
// Show speaker description without inline image
539+
if (speakersWithDesc.length > 0) {
540+
speakerDescriptionEl.innerHTML = `<div class="speaker-name emfont-NotoSansTC-600">${speakersWithDesc[0].name}</div>${renderMarkdown(speakersWithDesc[0].desc)}`;
541+
} else if (speakerText) {
542+
speakerDescriptionEl.innerHTML = `<div class="speaker-name emfont-NotoSansTC-600">${speaker.name}</div>${speakerText}是本課程的講師。<br>其他資訊可能得等你自己通靈`;
543+
}
544+
} else if (speakers.length > 1) {
545+
// Multiple speakers - hide top image and show inline images
546+
if (modalPersonImageEl) {
524547
modalPersonImageEl.style.display = "none";
525-
};
526-
}
527-
528-
// Show speaker description without inline image
529-
if (speakersWithDesc.length > 0) {
530-
speakerDescriptionEl.innerHTML = `<div class="speaker-name emfont-NotoSansTC-600">${speakersWithDesc[0].name}</div>${renderMarkdown(speakersWithDesc[0].desc)}`;
531-
} else if (speakerText) {
532-
speakerDescriptionEl.innerHTML = `<div class="speaker-name emfont-NotoSansTC-600">${speaker.name}</div>${speakerText}是本課程的講師。<br>其他資訊可能得等你自己通靈`;
533-
}
534-
} else if (speakers.length > 1) {
535-
// Multiple speakers - hide top image and show inline images
536-
if (modalPersonImageEl) {
537-
modalPersonImageEl.style.display = "none";
538-
}
539-
540-
if (speakersWithDesc.length > 0) {
541-
speakerDescriptionEl.innerHTML = speakersWithDesc.map(speaker => {
542-
const imageHtml = speaker.id ? `<img src="/2025/speakers/${speaker.id}.webp" alt="${speaker.name}" class="speaker-inline-image" onerror="this.style.display='none';">` : "";
543-
return `<div class="speaker-name emfont-NotoSansTC-600">${imageHtml}<span>${speaker.name}</span></div>${renderMarkdown(speaker.desc)}`;
544-
}).join("");
545-
} else if (speakerText) {
546-
speakerDescriptionEl.innerHTML = speakers.map(speaker => {
547-
const imageHtml = speaker.id ? `<img src="/2025/speakers/${speaker.id}.webp" alt="${speaker.name}" class="speaker-inline-image" onerror="this.style.display='none';">` : "";
548-
return `<div class="speaker-name emfont-NotoSansTC-600">${imageHtml}<span>${speaker.name}</span></div>`;
549-
}).join("") + `<p>${speakerText}是本課程的講師。<br>其他資訊可能得等你自己通靈</p>`;
550-
}
551-
} else {
552-
// No speakers
553-
if (modalPersonImageEl) {
554-
modalPersonImageEl.style.display = "none";
548+
}
549+
550+
if (speakersWithDesc.length > 0) {
551+
speakerDescriptionEl.innerHTML = speakersWithDesc.map(speaker => {
552+
const imageHtml = speaker.id ? `<img src="/2025/speakers/${speaker.id}.webp" alt="${speaker.name}" class="speaker-inline-image" onerror="this.style.display='none';">` : "";
553+
return `<div class="speaker-name emfont-NotoSansTC-600">${imageHtml}<span>${speaker.name}</span></div>${renderMarkdown(speaker.desc)}`;
554+
}).join("");
555+
} else if (speakerText) {
556+
speakerDescriptionEl.innerHTML = speakers.map(speaker => {
557+
const imageHtml = speaker.id ? `<img src="/2025/speakers/${speaker.id}.webp" alt="${speaker.name}" class="speaker-inline-image" onerror="this.style.display='none';">` : "";
558+
return `<div class="speaker-name emfont-NotoSansTC-600">${imageHtml}<span>${speaker.name}</span></div>`;
559+
}).join("") + `<p>${speakerText}是本課程��講師。<br>其他資訊可能得等你自己通靈</p>`;
560+
}
561+
} else {
562+
// No speakers
563+
if (modalPersonImageEl) {
564+
modalPersonImageEl.style.display = "none";
565+
}
566+
speakerDescriptionEl.innerHTML = "無講者資訊";
555567
}
556-
speakerDescriptionEl.innerHTML = "無講者資訊";
568+
speakerDescriptionEl.classList.add("description-text");
557569
}
558-
speakerDescriptionEl.classList.add("description-text");
559570
}
560571

561572
if (modalDescriptionEl) {

0 commit comments

Comments
 (0)