diff --git a/.gitignore b/.gitignore index d4241d81..33ed8e6d 100644 --- a/.gitignore +++ b/.gitignore @@ -35,6 +35,4 @@ credentials.json *.ipa .continuerc.json -.vscode/ - -bun.lockb \ No newline at end of file +.vscode/ \ No newline at end of file diff --git a/app/(auth)/(favorites)/_layout.tsx b/app/(auth)/(favorites)/_layout.tsx deleted file mode 100644 index d8c2cbf8..00000000 --- a/app/(auth)/(favorites)/_layout.tsx +++ /dev/null @@ -1,35 +0,0 @@ -import { Chromecast } from "@/components/Chromecast"; -import { nestedTabPageScreenOptions } from "@/components/stacks/NestedTabPageStack"; -import { Feather } from "@expo/vector-icons"; -import { Stack, useRouter } from "expo-router"; -import { Platform, TouchableOpacity, View } from "react-native"; -import { Menu, Divider, Provider } from "react-native-paper"; -import {useState} from "react"; - - -export default function IndexLayout() { - const router = useRouter(); - - return ( - - - ( - - - - ), - }} - /> - - - ); -} diff --git a/app/(auth)/(favorites)/index.tsx b/app/(auth)/(favorites)/index.tsx deleted file mode 100644 index 82961319..00000000 --- a/app/(auth)/(favorites)/index.tsx +++ /dev/null @@ -1,32 +0,0 @@ -import { useAtom } from "jotai"; -import { useEffect, useState } from "react"; -import { View, Text, FlatList } from "react-native"; -import { apiAtom, userAtom } from "@/providers/JellyfinProvider"; -import { getItemsApi } from "@jellyfin/sdk/lib/utils/api"; - -export default function Favorites() { - const [favorites, setFavorites] = useState([]); - const [api] = useAtom(apiAtom); - const [user] = useAtom(userAtom); - - useEffect(() => { - const fetchFavorites = async () => { - if (api && user) { - const response = await getItemsApi(api).getItems({ - userId: user.Id, - isFavorite: true, - }); - if (response.data.Items) { - setFavorites(response.data.Items); - } - } - }; - - fetchFavorites(); - }, [api, user]); - - return ( - - - ); -} diff --git a/app/(auth)/(tabs)/(home)/_layout.tsx b/app/(auth)/(tabs)/(home)/_layout.tsx index 32b4b007..d3ef928a 100644 --- a/app/(auth)/(tabs)/(home)/_layout.tsx +++ b/app/(auth)/(tabs)/(home)/_layout.tsx @@ -3,19 +3,10 @@ import { nestedTabPageScreenOptions } from "@/components/stacks/NestedTabPageSta import { Feather } from "@expo/vector-icons"; import { Stack, useRouter } from "expo-router"; import { Platform, TouchableOpacity, View } from "react-native"; -import { Menu, Divider, Provider } from "react-native-paper"; -import {useState} from "react"; - export default function IndexLayout() { const router = useRouter(); - const [menuVisible, setMenuVisible] = useState(false); - - const openMenu = () => setMenuVisible(true); - const closeMenu = () => setMenuVisible(false); - return ( - ( - - - - } - > - { - closeMenu(); - router.push("/(auth)/(favorites)"); - }} - title="Favorites" - /> - { router.push("/(auth)/settings"); @@ -89,6 +63,5 @@ export default function IndexLayout() { }} /> - ); } diff --git a/app/(auth)/(tabs)/(home,libraries,search)/series/[id].tsx b/app/(auth)/(tabs)/(home,libraries,search)/series/[id].tsx index 26db21f4..e9c9fdea 100644 --- a/app/(auth)/(tabs)/(home,libraries,search)/series/[id].tsx +++ b/app/(auth)/(tabs)/(home,libraries,search)/series/[id].tsx @@ -6,7 +6,6 @@ import { NextUp } from "@/components/series/NextUp"; import { SeasonPicker } from "@/components/series/SeasonPicker"; import { SeriesActions } from "@/components/series/SeriesActions"; import { SeriesHeader } from "@/components/series/SeriesHeader"; -import { FavoriteButton} from "@/components/series/FavoriteButton"; import { apiAtom, userAtom } from "@/providers/JellyfinProvider"; import { getBackdropUrl } from "@/utils/jellyfin/image/getBackdropUrl"; import { getLogoImageUrlById } from "@/utils/jellyfin/image/getLogoImageUrlById"; @@ -84,10 +83,6 @@ const page: React.FC = () => { !isLoading && allEpisodes && allEpisodes.length > 0 && ( - <> - - {item && } - { )} /> - ), }); }, [allEpisodes, isLoading]); diff --git a/bun.lockb b/bun.lockb index 75e16b06..38913c76 100755 Binary files a/bun.lockb and b/bun.lockb differ diff --git a/components/series/FavoriteButton.tsx b/components/series/FavoriteButton.tsx deleted file mode 100644 index 62829f43..00000000 --- a/components/series/FavoriteButton.tsx +++ /dev/null @@ -1,70 +0,0 @@ -import Ionicons from '@expo/vector-icons/Ionicons'; -import { useAtom } from "jotai"; -import { useCallback, useState, useEffect } from "react"; -import { View } from "react-native"; -import { apiAtom, userAtom } from "@/providers/JellyfinProvider"; -import { getItemsApi, getUserLibraryApi } from "@jellyfin/sdk/lib/utils/api"; -import { RoundButton } from "../RoundButton"; - -interface Props { - seriesId: string; -} - -export const FavoriteButton: React.FC = ({ seriesId }) => { - const [isFavorited, setIsFavorited] = useState(false); - const [api] = useAtom(apiAtom); - const [user] = useAtom(userAtom); - - const checkIfFavorited = useCallback(async () => { - if (api && user) { - const response = await getItemsApi(api).getItems({ - userId: user.Id, - isFavorite: true, - recursive: true, - }); - if (!response.data.Items) return; - const isFavorite = response.data.Items.some((x: any) => x.Id === seriesId); - setIsFavorited(isFavorite); - } - }, [api, user, seriesId]); - - useEffect(() => { - checkIfFavorited(); - }, [checkIfFavorited]); - - const markFavorite = useCallback(async () => { - if (api && user) { - await getUserLibraryApi(api).markFavoriteItem({ - userId: user.Id, - itemId: seriesId, - }); - } - }, [api, user, seriesId]); - - const unmarkFavorite = useCallback(async () => { - if (api && user) { - await getUserLibraryApi(api).unmarkFavoriteItem({ - userId: user.Id, - itemId: seriesId, - }); - } - }, [api, user, seriesId]); - - const onFavorite = useCallback(async () => { - if (isFavorited) { - setIsFavorited(false); - await unmarkFavorite(); - } else { - setIsFavorited(true); - await markFavorite(); - } - }, [isFavorited, markFavorite, unmarkFavorite]); - - return ( - - - - - - ); -}; diff --git a/package.json b/package.json index 18715592..50a4de63 100644 --- a/package.json +++ b/package.json @@ -85,7 +85,6 @@ "react-native-ios-utilities": "^4.5.1", "react-native-mmkv": "^2.12.2", "react-native-pager-view": "6.3.0", - "react-native-paper": "^5.12.5", "react-native-progress": "^5.0.1", "react-native-reanimated": "~3.10.1", "react-native-reanimated-carousel": "4.0.0-canary.15",