mirror of
https://github.com/LuanRT/YouTube.js.git
synced 2026-06-18 03:59:38 +00:00
43 lines
1.6 KiB
TypeScript
43 lines
1.6 KiB
TypeScript
import { YTNode } from '../helpers.js';
|
|
import { Parser, type RawNode } from '../index.js';
|
|
|
|
import StartAt from './StartAt.js';
|
|
import CopyLink from './CopyLink.js';
|
|
import SharePanelHeader from './SharePanelHeader.js';
|
|
import ThirdPartyShareTargetSection from './ThirdPartyShareTargetSection.js';
|
|
|
|
export type ThirdPartyNetworkSection = {
|
|
share_target_container: ThirdPartyShareTargetSection | null,
|
|
copy_link_container: CopyLink | null,
|
|
start_at_container: StartAt | null
|
|
};
|
|
|
|
export default class UnifiedSharePanel extends YTNode {
|
|
static type = 'UnifiedSharePanel';
|
|
|
|
public third_party_network_section?: ThirdPartyNetworkSection;
|
|
public header: SharePanelHeader | null;
|
|
public share_panel_version: number;
|
|
public show_loading_spinner?: boolean;
|
|
|
|
constructor(data: RawNode) {
|
|
super();
|
|
if (data.contents) {
|
|
const contents = data.contents.find((content: RawNode) => content.thirdPartyNetworkSection);
|
|
|
|
if (contents) {
|
|
this.third_party_network_section = {
|
|
share_target_container: Parser.parseItem(contents.thirdPartyNetworkSection.shareTargetContainer, ThirdPartyShareTargetSection),
|
|
copy_link_container: Parser.parseItem(contents.thirdPartyNetworkSection.copyLinkContainer, CopyLink),
|
|
start_at_container: Parser.parseItem(contents.thirdPartyNetworkSection.startAtContainer, StartAt)
|
|
};
|
|
}
|
|
}
|
|
|
|
this.header = Parser.parseItem(data.header, SharePanelHeader);
|
|
this.share_panel_version = data.sharePanelVersion;
|
|
|
|
if (Reflect.has(data, 'showLoadingSpinner'))
|
|
this.show_loading_spinner = data.showLoadingSpinner;
|
|
}
|
|
} |