more memory optimizations

This commit is contained in:
Violet Caulfield
2025-02-15 06:22:14 -06:00
parent ed6024a6f5
commit 11965dd513
4 changed files with 17 additions and 41 deletions

View File

@@ -13,6 +13,4 @@ export const useApi = (serverUrl?: string, username?: string, password?: string,
return createApi(serverUrl, username, password, accessToken)
},
gcTime: 1000,
refetchInterval: false
})

View File

@@ -1,30 +0,0 @@
import { QueryKeys } from "../../enums/query-keys";
import { useQuery } from "@tanstack/react-query";
import { fetchMusicLibraries, fetchPlaylistLibrary, fetchUserViews } from "./functions/libraries";
/**
* @deprecated use {@link useUserViews} instead as that will respect user permissions
* @returns
*/
export const useMusicLibraries = () => useQuery({
queryKey: [QueryKeys.Libraries],
queryFn: () => fetchMusicLibraries()
});
/**
* @deprecated use {@link useUserViews} instead as that will respect user permissions
* @returns
*/
export const usePlaylistLibrary = () => useQuery({
queryKey: [QueryKeys.Playlist],
queryFn: () => fetchPlaylistLibrary()
});
/**
*
* @returns
*/
export const useUserViews = () => useQuery({
queryKey: [QueryKeys.UserViews],
queryFn: () => fetchUserViews()
});

View File

@@ -9,6 +9,7 @@ import { NativeStackNavigationProp } from "@react-navigation/native-stack";
import { trigger } from "react-native-haptic-feedback";
import { QueuingType } from "../../../enums/queuing-type";
import Icon from "../../../components/Global/helpers/icon";
import { FlatList } from "react-native";
export default function RecentlyPlayed({
navigation
@@ -42,11 +43,10 @@ export default function RecentlyPlayed({
</YStack>
)}
</XStack>
<ScrollView
<FlatList
horizontal
removeClippedSubviews // Save memory usage
>
{ recentTracks && recentTracks.map((recentlyPlayedTrack, index) => {
data={recentTracks}
renderItem={({ index, item: recentlyPlayedTrack }) => {
return (
<ItemCard
caption={recentlyPlayedTrack.Name}
@@ -58,7 +58,7 @@ export default function RecentlyPlayed({
usePlayNewQueue.mutate({
track: recentlyPlayedTrack,
index: index,
tracklist: recentTracks,
tracklist: recentTracks ?? [recentlyPlayedTrack],
queue: "Recently Played",
queuingType: QueuingType.FromSelection
});
@@ -72,8 +72,11 @@ export default function RecentlyPlayed({
}}
/>
)
})}
</ScrollView>
}}
style={{
overflow: 'hidden'
}}
/>
</View>
)
}

View File

@@ -4,11 +4,13 @@ import { useAuthenticationContext } from "../provider";
import { H1, H2, Label, Text } from "../../Global/helpers/text";
import Button from "../../Global/helpers/button";
import _ from "lodash";
import { useUserViews } from "../../../api/queries/libraries";
import { SafeAreaView } from "react-native-safe-area-context";
import Client from "../../../api/client";
import { useJellifyContext } from "../../provider";
import { BaseItemDto } from "@jellyfin/sdk/lib/generated-client/models";
import { QueryKeys } from "../../../enums/query-keys";
import { fetchUserViews } from "../../../api/queries/functions/libraries";
import { useQuery } from "@tanstack/react-query";
export default function ServerLibrary(): React.JSX.Element {
@@ -19,7 +21,10 @@ export default function ServerLibrary(): React.JSX.Element {
const [libraryId, setLibraryId] = useState<string | undefined>(undefined);
const [playlistLibrary, setPlaylistLibrary] = useState<BaseItemDto | undefined>(undefined);
const { data : libraries, isError, isPending, isSuccess, refetch } = useUserViews();
const { data : libraries, isError, isPending, isSuccess, refetch } = useQuery({
queryKey: [QueryKeys.UserViews],
queryFn: () => fetchUserViews()
});;
useEffect(() => {
if (!isPending && isSuccess)