Fix duplicate video embed when youtube_url is empty string

- Add .trim() checks to all video source conditions
- Prevents rendering empty youtube_url as valid video
- Fixes double embed card display issue
- Update sidebar icon check to use optional chaining with trim

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
This commit is contained in:
dwindown
2025-12-30 21:11:35 +07:00
parent 94aca1edec
commit a9ad84eb23
6 changed files with 34797 additions and 7 deletions

View File

@@ -247,13 +247,13 @@ export default function Bootcamp() {
// Get video based on product's active source
const getVideoSource = () => {
if (activeSource === 'youtube') {
if (lesson.youtube_url) {
if (lesson.youtube_url && lesson.youtube_url.trim()) {
return {
type: 'youtube',
url: lesson.youtube_url,
embedUrl: getYouTubeEmbedUrl(lesson.youtube_url)
};
} else if (lesson.video_url) {
} else if (lesson.video_url && lesson.video_url.trim()) {
// Fallback to old video_url for backward compatibility
return {
type: 'youtube',
@@ -262,24 +262,24 @@ export default function Bootcamp() {
};
} else {
// Fallback to embed if YouTube not available
return lesson.embed_code ? {
return lesson.embed_code && lesson.embed_code.trim() ? {
type: 'embed',
html: lesson.embed_code
} : null;
}
} else {
if (lesson.embed_code) {
if (lesson.embed_code && lesson.embed_code.trim()) {
return {
type: 'embed',
html: lesson.embed_code
};
} else {
// Fallback to YouTube if embed not available
return lesson.youtube_url ? {
return lesson.youtube_url && lesson.youtube_url.trim() ? {
type: 'youtube',
url: lesson.youtube_url,
embedUrl: getYouTubeEmbedUrl(lesson.youtube_url)
} : lesson.video_url ? {
} : lesson.video_url && lesson.video_url.trim() ? {
type: 'youtube',
url: lesson.video_url,
embedUrl: getYouTubeEmbedUrl(lesson.video_url)
@@ -360,7 +360,7 @@ export default function Bootcamp() {
>
{isCompleted ? (
<Check className="w-4 h-4 shrink-0 text-accent" />
) : lesson.video_url || lesson.youtube_url || lesson.embed_code ? (
) : (lesson.video_url?.trim() || lesson.youtube_url?.trim() || lesson.embed_code?.trim()) ? (
<Play className="w-4 h-4 shrink-0" />
) : (
<BookOpen className="w-4 h-4 shrink-0" />