Skip to content

Commit 083aec1

Browse files
committed
fix(LockupView): Fix content_image parsing
1 parent 6d57353 commit 083aec1

File tree

2 files changed

+13
-9
lines changed

2 files changed

+13
-9
lines changed

src/parser/classes/LockupView.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,22 @@
11
import { YTNode } from '../helpers.js';
22
import { Parser, type RawNode } from '../index.js';
3+
import ThumbnailView from './ThumbnailView.js';
34
import CollectionThumbnailView from './CollectionThumbnailView.js';
45
import LockupMetadataView from './LockupMetadataView.js';
56
import RendererContext from './misc/RendererContext.js';
67

78
export default class LockupView extends YTNode {
89
static type = 'LockupView';
910

10-
public content_image: CollectionThumbnailView | null;
11+
public content_image: CollectionThumbnailView | ThumbnailView | null;
1112
public metadata: LockupMetadataView | null;
1213
public content_id: string;
1314
public content_type: 'VIDEO' | 'MOVIE' | 'CHANNEL' | 'CLIP' | 'SOURCE' | 'PLAYLIST' | 'ALBUM' | 'PODCAST' | 'SHOPPING_COLLECTION' | 'SHORT' | 'GAME' | 'PRODUCT';
1415
public renderer_context: RendererContext;
1516

1617
constructor(data: RawNode) {
1718
super();
18-
this.content_image = Parser.parseItem(data.contentImage, CollectionThumbnailView);
19+
this.content_image = Parser.parseItem(data.contentImage, [ CollectionThumbnailView, ThumbnailView ]);
1920
this.metadata = Parser.parseItem(data.metadata, LockupMetadataView);
2021
this.content_id = data.contentId;
2122
this.content_type = data.contentType.replace('LOCKUP_CONTENT_TYPE_', '');

src/parser/classes/ThumbnailView.ts

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -4,22 +4,25 @@ import ThumbnailHoverOverlayView from './ThumbnailHoverOverlayView.js';
44
import ThumbnailOverlayBadgeView from './ThumbnailOverlayBadgeView.js';
55
import Thumbnail from './misc/Thumbnail.js';
66

7+
export type ThumbnailBackgroundColor = {
8+
light_theme: number;
9+
dark_theme: number;
10+
};
11+
712
export default class ThumbnailView extends YTNode {
813
static type = 'ThumbnailView';
914

10-
image: Thumbnail[];
11-
overlays: (ThumbnailOverlayBadgeView | ThumbnailHoverOverlayView)[];
12-
background_color?: {
13-
light_theme: number;
14-
dark_theme: number;
15-
};
15+
public image: Thumbnail[];
16+
public overlays: (ThumbnailOverlayBadgeView | ThumbnailHoverOverlayView)[];
17+
public background_color?: ThumbnailBackgroundColor;
1618

1719
constructor(data: RawNode) {
1820
super();
1921

2022
this.image = Thumbnail.fromResponse(data.image);
2123
this.overlays = Parser.parseArray(data.overlays, [ ThumbnailOverlayBadgeView, ThumbnailHoverOverlayView ]);
22-
if (data.backgroundColor) {
24+
25+
if ('backgroundColor' in data) {
2326
this.background_color = {
2427
light_theme: data.backgroundColor.lightTheme,
2528
dark_theme: data.backgroundColor.darkTheme

0 commit comments

Comments
 (0)