diff --git a/README.md b/README.md index 5fdf469..6da36d3 100644 --- a/README.md +++ b/README.md @@ -49,6 +49,91 @@ const [plexTVAuthToken, setPlexTVAuthToken] = useState( } ``` +### Refresh Data with Saved Session +``` JavaScript + async function Refresh() { + const tempPlexTVUserData = await GetPlexUserData( + plexClientInformation, + plexTVAuthToken + ); + const tempPlexServers = await GetPlexServers( + plexClientInformation, + plexTVAuthToken + ); + const tempPlexDevices = await GetPlexDevices( + plexClientInformation, + plexTVAuthToken + ); + const tempPlexLibraries = await GetPlexLibraries(tempPlexServers); + UpdateHubs(tempPlexServers, tempPlexLibraries); + setPlexServers(tempPlexServers); + setPlexDevices(tempPlexDevices); + setPlexTVUserData(tempPlexTVUserData); + setPlexLibraries(tempPlexLibraries); + setIsRefreshing(false); + } +``` + +### Update Library list when the topic is changed (artists. albums, songs) +``` JavaScript + async function UpdateLibrary() { + setIsLoading(true); + const returnObject = await GetLibraryPages( + plexServers, + plexLibraries, + topic, + pageNumber, + 250 + ); + console.log(returnObject); + const tempItemArray = Array.from([ + ...new Set([...libraryItems, ...returnObject.items]), + ]); + + setLibraryItems(tempItemArray); + setLibraryHasMore(returnObject.hasMore); + setIsLoading(false); + } +``` + +### Intersection observer to load more library items when the callbackref object comes into view +``` JavaScript + const observer = useRef(); + const lastLibraryItem = useCallback( + (node) => { + if (isLoading) return; + if (observer.current) observer.current.disconnect(); + observer.current = new IntersectionObserver((entries) => { + if (entries[0].isIntersecting && libraryHasMore) { + setPageNumber(pageNumber + 1); + } + }); + if (node) observer.current.observe(node); + console.log(node); + }, + [isLoading, libraryHasMore] + ); +``` + +### Intersection observer to load more library items when the callbackref object comes into view +``` JavaScript + const observer = useRef(); + const lastLibraryItem = useCallback( + (node) => { + if (isLoading) return; + if (observer.current) observer.current.disconnect(); + observer.current = new IntersectionObserver((entries) => { + if (entries[0].isIntersecting && libraryHasMore) { + setPageNumber(pageNumber + 1); + } + }); + if (node) observer.current.observe(node); + console.log(node); + }, + [isLoading, libraryHasMore] + ); +``` + ### Get Plex Music Hub data ``` JavaScript async function UpdateHubs(plexClientInformation, plexServers, plexLibraries) {