diff --git a/src/routes/Board/Board.js b/src/routes/Board/Board.js
index 944339aa5..e811b8d77 100644
--- a/src/routes/Board/Board.js
+++ b/src/routes/Board/Board.js
@@ -1,6 +1,7 @@
const React = require('react');
const { MainNavBar, MetaRow } = require('stremio/common');
const useBoard = require('./useBoard');
+const useContinueWatching = require('./useContinueWatching');
const styles = require('./styles');
const CONTINUE_WATCHING_MENU = [
@@ -15,12 +16,24 @@ const CONTINUE_WATCHING_MENU = [
];
const Board = () => {
- const { catalog_resources } = useBoard();
+ const board = useBoard();
+ const continueWatching = useContinueWatching();
return (
- {catalog_resources.map((catalog_resource, index) => {
+ {
+ continueWatching.lib_items.length > 0 ?
+
+ :
+ null
+ }
+ {board.catalog_resources.map((catalog_resource, index) => {
const title = `${catalog_resource.addon_name} - ${catalog_resource.request.path.id} ${catalog_resource.request.path.type_name}`;
switch (catalog_resource.content.type) {
case 'Ready':
diff --git a/src/routes/Board/useContinueWatching.js b/src/routes/Board/useContinueWatching.js
new file mode 100644
index 000000000..d076d3573
--- /dev/null
+++ b/src/routes/Board/useContinueWatching.js
@@ -0,0 +1,33 @@
+const React = require('react');
+const { useServices } = require('stremio/services');
+
+const mapContinueWatchingState = (state) => {
+ const lib_items = state.continue_watching.lib_items.map((lib_item) => {
+ lib_item.href = `#/metadetails/${lib_item.type}/${lib_item._id}${lib_item.state.video_id !== null ? `/${lib_item.state.video_id}` : ''}`;
+ return lib_item;
+ });
+ return { lib_items };
+};
+
+const useContinueWatching = () => {
+ const { core } = useServices();
+ const [continueWatching, setContinueWatching] = React.useState(() => {
+ const state = core.getState();
+ const continueWatching = mapContinueWatchingState(state);
+ return continueWatching;
+ });
+ React.useLayoutEffect(() => {
+ const onNewState = () => {
+ const state = core.getState();
+ const continueWatching = mapContinueWatchingState(state);
+ setContinueWatching(continueWatching);
+ };
+ core.on('NewModel', onNewState);
+ return () => {
+ core.off('NewModel', onNewState);
+ };
+ }, []);
+ return continueWatching;
+};
+
+module.exports = useContinueWatching;