fix(live): expose row logos for projected channels

Derive live channel row logos from the selected or preferred stream variant so the frontend can render logos without falling back to placeholders.

Refs #45

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
blomios
2026-10-08 19:39:42 +02:00
parent 22f905cd78
commit 31a5763b64
3 changed files with 135 additions and 1 deletions

View File

@ -486,6 +486,16 @@ function pageMetadata(total, bounds) {
function listChannel(channel) {
const preferredVariant = channel.preferredVariant || channel.variants[0] || null;
const variantLogo = variant => variant?.tvgLogo || variant?.streamIcon || variant?.stream_icon || null;
const selectedVariant = channel.variants.find(variant =>
`${variant.sourceId}:${variant.id}` === String(channel.selectedVariantId)
);
const logoVariant = (selectedVariant && variantLogo(selectedVariant) && selectedVariant)
|| (preferredVariant && variantLogo(preferredVariant) && preferredVariant)
|| channel.variants.find(variant => !variant.isHidden && variantLogo(variant))
|| channel.variants.find(variant => variant.isHidden && variantLogo(variant))
|| null;
const logo = variantLogo(logoVariant);
const variants = [];
const addPreview = variant => {
if (variant && variants.length < 3 && !variants.some(candidate =>
@ -498,6 +508,8 @@ function listChannel(channel) {
return {
...channel,
preferredVariant,
tvgLogo: logo,
streamIcon: logo,
variantCount: channel.variants.length,
variants
};