{
}
});
}, [selectedMetaItem]);
+ const toggleWatched = React.useCallback(() => {
+ if (selectedMetaItem === null) {
+ return;
+ }
+
+ if (!selectedMetaItem.inLibrary) {
+ core.transport.dispatch({
+ action: 'Ctx',
+ args: {
+ action: 'AddToLibrary',
+ args: selectedMetaItem
+ }
+ });
+ }
+
+ core.transport.dispatch({
+ action: 'Ctx',
+ args: {
+ action: 'LibraryItemMarkAsWatched',
+ args: {
+ id: selectedMetaItem.id,
+ is_watched: !selectedMetaItem.watched
+ }
+ }
+ });
+ }, [selectedMetaItem]);
const metaItemsOnFocusCapture = React.useCallback((event) => {
if (event.target.dataset.index !== null && !isNaN(event.target.dataset.index)) {
setSelectedMetaItemIndex(parseInt(event.target.dataset.index, 10));
@@ -157,20 +183,8 @@ const Discover = ({ urlParams, queryParams }) => {
:
- {discover.catalog.content.content.map((metaItem, index) => (
-
+ {discover.catalog.content.content.map((discItem, index) => (
+
))}
}
@@ -193,6 +207,8 @@ const Discover = ({ urlParams, queryParams }) => {
trailerStreams={selectedMetaItem.trailerStreams}
inLibrary={selectedMetaItem.inLibrary}
toggleInLibrary={selectedMetaItem.inLibrary ? removeFromLibrary : addToLibrary}
+ watched={selectedMetaItem.watched}
+ toggleWatched={toggleWatched}
metaId={selectedMetaItem.id}
like={selectedMetaItem.like}
/>
diff --git a/src/routes/MetaDetails/MetaDetails.js b/src/routes/MetaDetails/MetaDetails.js
index fd27478b5..478e59bee 100644
--- a/src/routes/MetaDetails/MetaDetails.js
+++ b/src/routes/MetaDetails/MetaDetails.js
@@ -64,6 +64,32 @@ const MetaDetails = ({ urlParams, queryParams }) => {
}
});
}, [metaDetails]);
+ const toggleWatched = React.useCallback(() => {
+ if (metaDetails.metaItem.content.content === null || metaDetails.metaItem.content.type !== 'Ready') {
+ return;
+ }
+
+ if (!metaDetails.metaItem.content.content.inLibrary) {
+ core.transport.dispatch({
+ action: 'Ctx',
+ args: {
+ action: 'AddToLibrary',
+ args: metaDetails.metaItem.content.content
+ }
+ });
+ }
+
+ core.transport.dispatch({
+ action: 'Ctx',
+ args: {
+ action: 'LibraryItemMarkAsWatched',
+ args: {
+ id: metaDetails.metaItem.content.content.id,
+ is_watched: !metaDetails.metaItem.content.content.watched
+ }
+ }
+ });
+ }, [metaDetails]);
const toggleNotifications = React.useCallback(() => {
if (metaDetails.libraryItem) {
core.transport.dispatch({
@@ -168,6 +194,8 @@ const MetaDetails = ({ urlParams, queryParams }) => {
trailerStreams={metaDetails.metaItem.content.content.trailerStreams}
inLibrary={metaDetails.metaItem.content.content.inLibrary}
toggleInLibrary={metaDetails.metaItem.content.content.inLibrary ? removeFromLibrary : addToLibrary}
+ watched={metaDetails.metaItem.content.content.watched}
+ toggleWatched={toggleWatched}
metaId={metaDetails.metaItem.content.content.id}
ratingInfo={metaDetails.ratingInfo}
/>