diff --git a/.gitignore b/.gitignore index 6d7ba5cf..bb6ff7d0 100644 --- a/.gitignore +++ b/.gitignore @@ -26,6 +26,8 @@ package-lock.json /ios /android +modules/vlc-player/android + pc-api-7079014811501811218-719-3b9f15aeccf8.json credentials.json *.apk diff --git a/app.json b/app.json index 57b10894..84086668 100644 --- a/app.json +++ b/app.json @@ -100,7 +100,12 @@ "motionPermission": "Allow Streamyfin to access your device motion for landscape video watching." } ], - "expo-asset" + "expo-asset", + [ + "react-native-edge-to-edge", + { "android": { "parentTheme": "Material3" } } + ], + ["react-native-bottom-tabs"] ], "experiments": { "typedRoutes": true diff --git a/app/(auth)/(tabs)/(home)/index.tsx b/app/(auth)/(tabs)/(home)/index.tsx index 364cf52c..d392d242 100644 --- a/app/(auth)/(tabs)/(home)/index.tsx +++ b/app/(auth)/(tabs)/(home)/index.tsx @@ -5,7 +5,6 @@ import { ScrollingCollectionList } from "@/components/home/ScrollingCollectionLi import { Loader } from "@/components/Loader"; import { MediaListSection } from "@/components/medialists/MediaListSection"; import { Colors } from "@/constants/Colors"; -import { TAB_HEIGHT } from "@/constants/Values"; import { useDownload } from "@/providers/DownloadProvider"; import { apiAtom, userAtom } from "@/providers/JellyfinProvider"; import { useSettings } from "@/utils/atoms/settings"; @@ -393,9 +392,6 @@ export default function index() { paddingRight: insets.right, paddingBottom: 16, }} - style={{ - marginBottom: TAB_HEIGHT, - }} > diff --git a/app/(auth)/(tabs)/(search)/index.tsx b/app/(auth)/(tabs)/(search)/index.tsx index 91ae1842..9df17c69 100644 --- a/app/(auth)/(tabs)/(search)/index.tsx +++ b/app/(auth)/(tabs)/(search)/index.tsx @@ -1,4 +1,3 @@ -import { HorizontalScroll } from "@/components/common/HorrizontalScroll"; import { Input } from "@/components/common/Input"; import { Text } from "@/components/common/Text"; import { TouchableItemRouter } from "@/components/common/TouchableItemRouter"; @@ -8,7 +7,6 @@ import { Loader } from "@/components/Loader"; import AlbumCover from "@/components/posters/AlbumCover"; import MoviePoster from "@/components/posters/MoviePoster"; import SeriesPoster from "@/components/posters/SeriesPoster"; -import { TAB_HEIGHT } from "@/constants/Values"; import { apiAtom, userAtom } from "@/providers/JellyfinProvider"; import { useSettings } from "@/utils/atoms/settings"; import { getUserItemData } from "@/utils/jellyfin/user-library/getUserItemData"; @@ -226,10 +224,6 @@ export default function search() { contentContainerStyle={{ paddingLeft: insets.left, paddingRight: insets.right, - paddingBottom: 16, - }} - style={{ - marginBottom: TAB_HEIGHT, }} > diff --git a/app/(auth)/(tabs)/_layout.tsx b/app/(auth)/(tabs)/_layout.tsx index b8772e68..e717d16d 100644 --- a/app/(auth)/(tabs)/_layout.tsx +++ b/app/(auth)/(tabs)/_layout.tsx @@ -1,87 +1,77 @@ -import { TabBarIcon } from "@/components/navigation/TabBarIcon"; +import React from "react"; +import { Platform } from "react-native"; + +import { withLayoutContext } from "expo-router"; + +import { + createNativeBottomTabNavigator, + NativeBottomTabNavigationEventMap, +} from "react-native-bottom-tabs/react-navigation"; + +const { Navigator } = createNativeBottomTabNavigator(); + +import { BottomTabNavigationOptions } from "@react-navigation/bottom-tabs"; + import { Colors } from "@/constants/Colors"; -import { BlurView } from "expo-blur"; -import * as NavigationBar from "expo-navigation-bar"; -import { Tabs } from "expo-router"; -import React, { useEffect } from "react"; -import { Platform, StyleSheet } from "react-native"; +import type { + ParamListBase, + TabNavigationState, +} from "@react-navigation/native"; +import { SystemBars } from "react-native-edge-to-edge"; + +export const NativeTabs = withLayoutContext< + BottomTabNavigationOptions, + typeof Navigator, + TabNavigationState, + NativeBottomTabNavigationEventMap +>(Navigator); export default function TabLayout() { - useEffect(() => { - if (Platform.OS === "android") { - NavigationBar.setBackgroundColorAsync("#121212"); - NavigationBar.setBorderColorAsync("#121212"); - } - }, []); - return ( - - Platform.OS === "ios" ? ( - - ) : undefined, - }} - > - - ( - - ), - }} - /> - ( - - ), - }} - /> - ( - - ), - }} - /> - + <> +