diff --git a/__tests__/App-test.tsx b/__tests__/App-test.tsx deleted file mode 100644 index 1784766..0000000 --- a/__tests__/App-test.tsx +++ /dev/null @@ -1,14 +0,0 @@ -/** - * @format - */ - -import 'react-native'; -import React from 'react'; -import App from '../App'; - -// Note: test renderer must be required after react-native. -import renderer from 'react-test-renderer'; - -it('renders correctly', () => { - renderer.create(); -}); diff --git a/package-lock.json b/package-lock.json index b2ebe3e..436f591 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1778,68 +1778,6 @@ "chalk": "^3.0.0" } }, - "@raydeck/xcode": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/@raydeck/xcode/-/xcode-2.2.1.tgz", - "integrity": "sha512-464tAzmcJLL0A4W5vKP3t3s6mRLnwGWE/cHo+I+0mHJiSzojSwHIZK7i3shFJioyQFHPxYndzRzTu2VOjdpBcQ==", - "requires": { - "simple-plist": "^0.2.1", - "uuid": "3.0.1" - }, - "dependencies": { - "base64-js": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.1.2.tgz", - "integrity": "sha1-1kAMrBxMZgl22Q0HoENR2JOV9eg=" - }, - "bplist-creator": { - "version": "0.0.7", - "resolved": "https://registry.npmjs.org/bplist-creator/-/bplist-creator-0.0.7.tgz", - "integrity": "sha1-N98VNgkoJLh8QvlXsBNEEXNyrkU=", - "requires": { - "stream-buffers": "~2.2.0" - } - }, - "bplist-parser": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/bplist-parser/-/bplist-parser-0.1.1.tgz", - "integrity": "sha1-1g1dzCDLptx+HymbNdPh+V2vuuY=", - "requires": { - "big-integer": "^1.6.7" - } - }, - "plist": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/plist/-/plist-2.0.1.tgz", - "integrity": "sha1-CjLKlIGxw2TpLhjcVch23p0B2os=", - "requires": { - "base64-js": "1.1.2", - "xmlbuilder": "8.2.2", - "xmldom": "0.1.x" - } - }, - "simple-plist": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/simple-plist/-/simple-plist-0.2.1.tgz", - "integrity": "sha1-cXZts1IyaSjPOoByQrp2IyJjZyM=", - "requires": { - "bplist-creator": "0.0.7", - "bplist-parser": "0.1.1", - "plist": "2.0.1" - } - }, - "uuid": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.0.1.tgz", - "integrity": "sha1-ZUS7ot/ajBzxfmKaOjBeK7H+5sE=" - }, - "xmlbuilder": { - "version": "8.2.2", - "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-8.2.2.tgz", - "integrity": "sha1-aSSGc0ELS6QuGmE2VR0pIjNap3M=" - } - } - }, "@react-native-community/async-storage": { "version": "1.11.0", "resolved": "https://registry.npmjs.org/@react-native-community/async-storage/-/async-storage-1.11.0.tgz", @@ -9403,11 +9341,6 @@ "resolved": "https://registry.npmjs.org/react-native-screens/-/react-native-screens-2.9.0.tgz", "integrity": "sha512-5MaiUD6HA3nzY3JbVI8l3V7pKedtxQF3d8qktTVI0WmWXTI4QzqOU8r8fPVvfKo3MhOXwhWBjr+kQ7DZaIQQeg==" }, - "react-native-section-list-get-item-layout": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/react-native-section-list-get-item-layout/-/react-native-section-list-get-item-layout-2.2.3.tgz", - "integrity": "sha512-fzCW5SiYP6qCZyDHebaElHonIFr8NFrZK9JDkxFLnpxMJih4d+HQ4rHyOs0Z4Gb/FjyCVbRH7RtEnjeQ0XffMg==" - }, "react-native-svg": { "version": "12.1.0", "resolved": "https://registry.npmjs.org/react-native-svg/-/react-native-svg-12.1.0.tgz", @@ -9435,23 +9368,6 @@ } } }, - "react-native-swift": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/react-native-swift/-/react-native-swift-1.2.3.tgz", - "integrity": "sha512-PmPTjpIRRMns+fViOvL23ke9dvh1bJmHoobPhgkEYTMiz7fzOAX67k0A0RNu9L9Wc57XY5MB+rLMYybBtndQ4w==", - "requires": { - "@raydeck/xcode": "^2.2.0", - "glob": "^7.1.2" - } - }, - "react-native-tableview": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/react-native-tableview/-/react-native-tableview-3.0.0.tgz", - "integrity": "sha512-EnCNq5uKLEFsg3n7ykEvbo++sW/zUtg4cfJKYOf45s2pZoSAWvBqAjyx4G7uqhaoCLcjjDr8JiHlY62oaU7eUA==", - "requires": { - "prop-types": "^15.6.2" - } - }, "react-native-track-player": { "version": "github:leinelissen/react-native-track-player#dafc8ffc0ee4bb3cdeb0fa21530c32dafa5a4dab", "from": "github:leinelissen/react-native-track-player" diff --git a/package.json b/package.json index d518866..3978f99 100644 --- a/package.json +++ b/package.json @@ -33,11 +33,8 @@ "react-native-reanimated": "^1.9.0", "react-native-safe-area-context": "^3.0.7", "react-native-screens": "^2.9.0", - "react-native-section-list-get-item-layout": "^2.2.3", "react-native-svg": "^12.1.0", "react-native-svg-transformer": "^0.14.3", - "react-native-swift": "^1.2.3", - "react-native-tableview": "^3.0.0", "react-native-track-player": "github:leinelissen/react-native-track-player", "react-native-webview": "^10.3.2", "react-redux": "^7.2.0", diff --git a/src/components/AlphabetScroller.tsx b/src/components/AlphabetScroller.tsx index a1e0353..7dc0cc8 100644 --- a/src/components/AlphabetScroller.tsx +++ b/src/components/AlphabetScroller.tsx @@ -1,26 +1,19 @@ -import React, { useCallback, useRef, useState } from 'react'; +import React, { useCallback, useState } from 'react'; import styled from 'styled-components/native'; import { ALPHABET_LETTERS } from 'CONSTANTS'; import { View, LayoutChangeEvent } from 'react-native'; -import { TouchableWithoutFeedback, PanGestureHandler, PanGestureHandlerGestureEvent, TapGestureHandler, TapGestureHandlerGestureEvent } from 'react-native-gesture-handler'; +import { + PanGestureHandler, + PanGestureHandlerGestureEvent, + TapGestureHandler, + TapGestureHandlerGestureEvent +} from 'react-native-gesture-handler'; interface LetterContainerProps { onPress: (letter: string) => void; letter: string; } -const LetterContainer: React.FC = ({ children, letter, onPress }) => { - const handlePress = useCallback(() => { - onPress(letter); - }, [letter, onPress]); - - return ( - - {children} - - ); -}; - const Container = styled.View` position: absolute; right: 5px; diff --git a/src/components/TouchableHandler.tsx b/src/components/TouchableHandler.tsx index 5689ee3..c7f7f50 100644 --- a/src/components/TouchableHandler.tsx +++ b/src/components/TouchableHandler.tsx @@ -13,7 +13,7 @@ interface TouchableHandlerProps { const TouchableHandler: React.FC = ({ id, onPress, children }) => { const handlePress = useCallback(() => { return onPress(id); - }, [id]); + }, [id, onPress]); return ( diff --git a/src/screens/Music/stacks/RecentAlbums.tsx b/src/screens/Music/stacks/RecentAlbums.tsx index 0fa6d97..c1d18c5 100644 --- a/src/screens/Music/stacks/RecentAlbums.tsx +++ b/src/screens/Music/stacks/RecentAlbums.tsx @@ -1,7 +1,7 @@ import React, { useCallback, useEffect } from 'react'; import { useGetImage } from 'utility/JellyfinApi'; import { Album, NavigationProp } from '../types'; -import { Text, SafeAreaView, FlatList, View } from 'react-native'; +import { Text, SafeAreaView, FlatList } from 'react-native'; import { useDispatch } from 'react-redux'; import { useNavigation } from '@react-navigation/native'; import { useTypedSelector } from 'store'; diff --git a/src/screens/Settings/index.tsx b/src/screens/Settings/index.tsx index abba286..4d45af5 100644 --- a/src/screens/Settings/index.tsx +++ b/src/screens/Settings/index.tsx @@ -22,7 +22,7 @@ const Input = styled.TextInput` export default function Settings() { const { jellyfin, bitrate } = useSelector((state: AppState) => state.settings); const navigation = useNavigation(); - const handleClick = useCallback(() => navigation.navigate('SetJellyfinServer'), []); + const handleClick = useCallback(() => navigation.navigate('SetJellyfinServer'), [navigation]); return ( diff --git a/src/screens/index.tsx b/src/screens/index.tsx index e66b59d..ef95f57 100644 --- a/src/screens/index.tsx +++ b/src/screens/index.tsx @@ -36,7 +36,7 @@ function Screens() { return ( ({ - tabBarIcon: ({ focused, color, size }) => { + tabBarIcon: function TabBarIcon({ color, size }) { const Icon = getIcon(route.name); if (!Icon) { diff --git a/src/utility/usePlayTrack.ts b/src/utility/usePlayTrack.ts index 3410892..f5a59d9 100644 --- a/src/utility/usePlayTrack.ts +++ b/src/utility/usePlayTrack.ts @@ -32,5 +32,5 @@ export default function usePlayTrack() { // Then we'll skip to it and play it await TrackPlayer.skip(trackId); TrackPlayer.play(); - }, [credentials, tracks]); + }, [credentials, tracks, queue]); } \ No newline at end of file