diff --git a/app/(auth)/(tabs)/(home)/_layout.tsx b/app/(auth)/(tabs)/(home)/_layout.tsx
index 298edae5..a53cfcd3 100644
--- a/app/(auth)/(tabs)/(home)/_layout.tsx
+++ b/app/(auth)/(tabs)/(home)/_layout.tsx
@@ -18,18 +18,6 @@ export default function IndexLayout() {
headerBlurEffect: "prominent",
headerTransparent: Platform.OS === "ios" ? true : false,
headerShadowVisible: false,
- headerLeft: () => (
- {
- router.push("/(auth)/downloads");
- }}
- >
-
-
- ),
headerRight: () => (
diff --git a/app/(auth)/(tabs)/(home)/index.tsx b/app/(auth)/(tabs)/(home)/index.tsx
index c665059d..592fd541 100644
--- a/app/(auth)/(tabs)/(home)/index.tsx
+++ b/app/(auth)/(tabs)/(home)/index.tsx
@@ -6,7 +6,7 @@ import { Loader } from "@/components/Loader";
import { MediaListSection } from "@/components/medialists/MediaListSection";
import { apiAtom, userAtom } from "@/providers/JellyfinProvider";
import { useSettings } from "@/utils/atoms/settings";
-import { Ionicons } from "@expo/vector-icons";
+import { Feather, Ionicons } from "@expo/vector-icons";
import { Api } from "@jellyfin/sdk";
import { BaseItemDto } from "@jellyfin/sdk/lib/generated-client/models";
import {
@@ -16,16 +16,19 @@ import {
getUserLibraryApi,
getUserViewsApi,
} from "@jellyfin/sdk/lib/utils/api";
+import AsyncStorage from "@react-native-async-storage/async-storage";
import NetInfo from "@react-native-community/netinfo";
import { useQuery, useQueryClient } from "@tanstack/react-query";
-import { useRouter } from "expo-router";
+import { useNavigation, useRouter } from "expo-router";
import { useAtom } from "jotai";
import { useCallback, useEffect, useMemo, useState } from "react";
import {
ActivityIndicator,
+ Platform,
RefreshControl,
SafeAreaView,
ScrollView,
+ TouchableOpacity,
View,
} from "react-native";
import { useSafeAreaInsets } from "react-native-safe-area-context";
@@ -60,6 +63,7 @@ export default function index() {
const [isConnected, setIsConnected] = useState(null);
const [loadingRetry, setLoadingRetry] = useState(false);
+ const navigation = useNavigation();
const checkConnection = useCallback(async () => {
setLoadingRetry(true);
@@ -68,6 +72,56 @@ export default function index() {
setLoadingRetry(false);
}, []);
+ useEffect(() => {
+ try {
+ // we check for downloaded files and turn the downloads button green if there are downloads
+ AsyncStorage.getItem("downloaded_files").then((value) => {
+ let downloadButtonColor = "white";
+ if (value) {
+ const files = JSON.parse(value) as BaseItemDto[];
+ if (files.length > 0) {
+ downloadButtonColor = "green";
+ } else {
+ downloadButtonColor = "white";
+ }
+ } else {
+ downloadButtonColor = "white";
+ }
+ console.log("color: ", downloadButtonColor);
+ navigation.setOptions({
+ headerLeft: () => (
+ {
+ router.push("/(auth)/downloads");
+ }}
+ >
+
+
+ ),
+ });
+ });
+ } catch (error) {
+ console.log(error);
+ navigation.setOptions({
+ headerLeft: () => (
+ {
+ router.push("/(auth)/downloads");
+ }}
+ >
+
+
+ ),
+ });
+ }
+ }, [navigation.getState()]);
+
useEffect(() => {
const unsubscribe = NetInfo.addEventListener((state) => {
if (state.isConnected == false || state.isInternetReachable === false)