lbry-desktop/flow-typed/content.js
infinite-persistence 96e704e5d9
Fix ContentState type
2022-05-18 14:32:30 +08:00

32 lines
1.1 KiB
JavaScript

// @flow
declare type ContentState = {
primaryUri: ?string,
playingUri: { uri?: string },
positions: { [string]: { [string]: number } }, // claimId: { outpoint: position }
history: Array<WatchHistory>,
recommendationId: { [string]: string }, // claimId: recommendationId
recommendationParentId: { [string]: string }, // claimId: referrerId
recommendationUrls: { [string]: Array<string> }, // claimId: [lbryUrls...]
recommendationClicks: { [string]: Array<number> }, // "claimId": [clicked indices...]
loopList?: { collectionId: string, loop: boolean },
shuffleList?: { collectionId: string, newUrls: Array<string> | boolean },
// TODO: it's confusing for newUrls to be a boolean --------- ^^^
// It can/should be '?Array<string>` instead -- set it to null, then clients
// can cast it to a boolean. That, or rename the variable to `shuffle` if you
// don't care about the URLs.
};
declare type WatchHistory = {
uri: string,
lastViewed: number,
};
declare type PlayingUri = {
uri?: ?string,
primaryUri?: string,
pathname?: string,
commentId?: string,
collectionId?: ?string,
source?: string,
};