mirror of
https://github.com/tapframe/NuvioStreaming.git
synced 2026-04-21 00:32:04 +00:00
Fix for mark as watched disappearing on restart
This commit is contained in:
parent
b49514f52b
commit
7fa4d20da0
1 changed files with 15 additions and 2 deletions
|
|
@ -6,6 +6,7 @@ import { useTheme } from '../../contexts/ThemeContext';
|
||||||
import { useSettings } from '../../hooks/useSettings';
|
import { useSettings } from '../../hooks/useSettings';
|
||||||
import { catalogService, StreamingContent } from '../../services/catalogService';
|
import { catalogService, StreamingContent } from '../../services/catalogService';
|
||||||
import { DropUpMenu } from './DropUpMenu';
|
import { DropUpMenu } from './DropUpMenu';
|
||||||
|
import AsyncStorage from '@react-native-async-storage/async-storage';
|
||||||
|
|
||||||
interface ContentItemProps {
|
interface ContentItemProps {
|
||||||
item: StreamingContent;
|
item: StreamingContent;
|
||||||
|
|
@ -70,6 +71,12 @@ const ContentItem = ({ item, onPress, shouldLoadImage: shouldLoadImageProp, defe
|
||||||
});
|
});
|
||||||
return () => unsubscribe();
|
return () => unsubscribe();
|
||||||
}, [item.id, item.type]);
|
}, [item.id, item.type]);
|
||||||
|
|
||||||
|
// Load watched state from AsyncStorage when item changes
|
||||||
|
useEffect(() => {
|
||||||
|
AsyncStorage.getItem(`watched_${item.id}`).then(val => setIsWatched(val === 'true'));
|
||||||
|
}, [item.id]);
|
||||||
|
|
||||||
const [menuVisible, setMenuVisible] = useState(false);
|
const [menuVisible, setMenuVisible] = useState(false);
|
||||||
const [isWatched, setIsWatched] = useState(false);
|
const [isWatched, setIsWatched] = useState(false);
|
||||||
const [imageLoaded, setImageLoaded] = useState(false);
|
const [imageLoaded, setImageLoaded] = useState(false);
|
||||||
|
|
@ -111,9 +118,15 @@ const ContentItem = ({ item, onPress, shouldLoadImage: shouldLoadImageProp, defe
|
||||||
catalogService.addToLibrary(item);
|
catalogService.addToLibrary(item);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 'watched':
|
case 'watched': {
|
||||||
setIsWatched(prev => !prev);
|
setIsWatched(prevWatched => {
|
||||||
|
const newWatched = !prevWatched;
|
||||||
|
AsyncStorage.setItem(`watched_${item.id}`, newWatched ? 'true' : 'false');
|
||||||
|
return newWatched;
|
||||||
|
});
|
||||||
|
setMenuVisible(false);
|
||||||
break;
|
break;
|
||||||
|
}
|
||||||
case 'playlist':
|
case 'playlist':
|
||||||
break;
|
break;
|
||||||
case 'share':
|
case 'share':
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue