* Initial plan
* Replace YouTube iframe with clickable thumbnail
- Changed YouTube embed URL from embed format to watch format
- Added ThumbnailUrl property to YouTubeVideoEmbedProjection using YouTube's standard thumbnail URL
- Updated MessageGroupTemplate to render thumbnail image with link instead of iframe
- Updated CSS to style thumbnail appropriately
- Updated test to check for anchor link and thumbnail image instead of iframe
Co-authored-by: Tyrrrz <1935960+Tyrrrz@users.noreply.github.com>
* Address code review feedback
- Use hqdefault.jpg instead of maxresdefault.jpg (guaranteed to exist for all videos)
- Extract thumbnail URL logic to GetThumbnailUrl method for better testability
Co-authored-by: Tyrrrz <1935960+Tyrrrz@users.noreply.github.com>
* Simplify YouTube embed test to focus on data not structure
- Remove checks for HTML structure (class names, nested elements)
- Focus on verifying YouTube URL with correct video ID exists
- Follow same pattern as other embed tests (Spotify, Twitch)
Co-authored-by: Tyrrrz <1935960+Tyrrrz@users.noreply.github.com>
* Fix data-canonical-url and improve test specificity
- Use canonical (non-proxy) URL for data-canonical-url attribute
- Extract thumbnailUrl to local variable to avoid duplicate calls
- Update test to check for img with video ID in src, avoiding false positives
- Test now verifies the actual thumbnail data rather than any link
Co-authored-by: Tyrrrz <1935960+Tyrrrz@users.noreply.github.com>
* Inline thumbnail URL logic directly into attributes
- Remove GetThumbnailUrl method from YouTubeVideoEmbedProjection
- Remove local variables from template
- Put coalescing logic directly in src and data-canonical-url attributes
Co-authored-by: Tyrrrz <1935960+Tyrrrz@users.noreply.github.com>
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: Tyrrrz <1935960+Tyrrrz@users.noreply.github.com>