Skip to content

Commit

Permalink
fix: keep album views in search tab when navigating from search results
Browse files Browse the repository at this point in the history
  • Loading branch information
leinelissen committed Apr 22, 2023
1 parent 7601408 commit e2c1c03
Show file tree
Hide file tree
Showing 12 changed files with 387 additions and 352 deletions.
13 changes: 7 additions & 6 deletions src/screens/Music/index.tsx
@@ -1,18 +1,19 @@
import React from 'react';
import { createStackNavigator } from '@react-navigation/stack';
import { GestureHandlerRootView } from 'react-native-gesture-handler';
import { MusicStackParams } from './types';
import Albums from './stacks/Albums';
import Album from './stacks/Album';
import RecentAlbums from './stacks/RecentAlbums';
import { THEME_COLOR } from 'CONSTANTS';
import { t } from '@localisation';
import useDefaultStyles from 'components/Colors';
import { StackParams } from 'screens/types';
import NowPlaying from './overlays/NowPlaying';

import RecentAlbums from './stacks/RecentAlbums';
import Albums from './stacks/Albums';
import Album from './stacks/Album';
import Playlists from './stacks/Playlists';
import Playlist from './stacks/Playlist';
import NowPlaying from './overlays/NowPlaying';

const Stack = createStackNavigator<MusicStackParams>();
const Stack = createStackNavigator<StackParams>();

function MusicStack() {
const defaultStyles = useDefaultStyles();
Expand Down
4 changes: 2 additions & 2 deletions src/screens/Music/overlays/NowPlaying/index.tsx
Expand Up @@ -15,7 +15,7 @@ import useDefaultStyles, { ColoredBlurView } from 'components/Colors';
import { useNavigation } from '@react-navigation/native';
import { calculateProgressTranslation } from 'components/Progresstrack';
import { THEME_COLOR } from 'CONSTANTS';
import { MusicNavigationProp } from 'screens/Music/types';
import { NavigationProp } from 'screens/types';
import { ShadowWrapper } from 'components/Shadow';
import { useBottomTabBarHeight } from '@react-navigation/bottom-tabs';

Expand Down Expand Up @@ -115,7 +115,7 @@ function NowPlaying() {
const previousBuffered = usePrevious(buffered);
const previousPosition = usePrevious(position);

const navigation = useNavigation<MusicNavigationProp>();
const navigation = useNavigation<NavigationProp>();

const bufferAnimation = useRef(new Animated.Value(0));
const progressAnimation = useRef(new Animated.Value(0));
Expand Down
4 changes: 2 additions & 2 deletions src/screens/Music/stacks/Albums.tsx
@@ -1,6 +1,5 @@
import React, { useCallback, useEffect, useRef, ReactText, useMemo } from 'react';
import { useGetImage } from 'utility/JellyfinApi';
import { MusicNavigationProp } from '../types';
import { SafeAreaView, SectionList, View } from 'react-native';
import { useNavigation } from '@react-navigation/native';
import { differenceInDays } from 'date-fns';
Expand All @@ -17,6 +16,7 @@ import useDefaultStyles, { ColoredBlurView } from 'components/Colors';
import { Album } from 'store/music/types';
import { Text } from 'components/Typography';
import { ShadowWrapper } from 'components/Shadow';
import { NavigationProp } from 'screens/types';

const HeadingHeight = 50;

Expand Down Expand Up @@ -87,7 +87,7 @@ const Albums: React.FC = () => {

// Initialise helpers
const dispatch = useAppDispatch();
const navigation = useNavigation<MusicNavigationProp>();
const navigation = useNavigation<NavigationProp>();
const getImage = useGetImage();
const listRef = useRef<SectionList<EntityId[]>>(null);

Expand Down
4 changes: 2 additions & 2 deletions src/screens/Music/stacks/Playlists.tsx
@@ -1,6 +1,5 @@
import React, { useCallback, useEffect, useRef, ReactText } from 'react';
import { useGetImage } from 'utility/JellyfinApi';
import { MusicNavigationProp } from '../types';
import { Text, View, FlatList, ListRenderItem } from 'react-native';
import { useNavigation } from '@react-navigation/native';
import { differenceInDays } from 'date-fns';
Expand All @@ -11,6 +10,7 @@ import TouchableHandler from 'components/TouchableHandler';
import AlbumImage, { AlbumItem } from './components/AlbumImage';
import { EntityId } from '@reduxjs/toolkit';
import useDefaultStyles from 'components/Colors';
import { NavigationProp } from 'screens/types';

interface GeneratedAlbumItemProps {
id: ReactText;
Expand Down Expand Up @@ -41,7 +41,7 @@ const Playlists: React.FC = () => {

// Initialise helpers
const dispatch = useAppDispatch();
const navigation = useNavigation<MusicNavigationProp>();
const navigation = useNavigation<NavigationProp>();
const getImage = useGetImage();
const listRef = useRef<FlatList<EntityId>>(null);

Expand Down
6 changes: 3 additions & 3 deletions src/screens/Music/stacks/RecentAlbums.tsx
@@ -1,6 +1,5 @@
import React, { useCallback, useEffect } from 'react';
import { useGetImage } from 'utility/JellyfinApi';
import { MusicNavigationProp } from '../types';
import { Text, SafeAreaView, FlatList, StyleSheet } from 'react-native';
import { useNavigation } from '@react-navigation/native';
import { useAppDispatch, useTypedSelector } from 'store';
Expand All @@ -17,6 +16,7 @@ import { Album } from 'store/music/types';
import Divider from 'components/Divider';
import styled from 'styled-components/native';
import { ShadowWrapper } from 'components/Shadow';
import { NavigationProp } from 'screens/types';

const styles = StyleSheet.create({
columnWrapper: {
Expand All @@ -31,7 +31,7 @@ const HeaderContainer = styled.View`
`;

const NavigationHeader: React.FC = () => {
const navigation = useNavigation<MusicNavigationProp>();
const navigation = useNavigation<NavigationProp>();
const handleAllAlbumsClick = useCallback(() => { navigation.navigate('Albums'); }, [navigation]);
const handlePlaylistsClick = useCallback(() => { navigation.navigate('Playlists'); }, [navigation]);

Expand Down Expand Up @@ -59,7 +59,7 @@ const RecentAlbums: React.FC = () => {

// Initialise helpers
const dispatch = useAppDispatch();
const navigation = useNavigation<MusicNavigationProp>();
const navigation = useNavigation<NavigationProp>();
const getImage = useGetImage();

// Set callbacks
Expand Down
6 changes: 3 additions & 3 deletions src/screens/Music/stacks/components/TrackListView.tsx
Expand Up @@ -14,7 +14,7 @@ import useDefaultStyles from 'components/Colors';
import usePlayTracks from 'utility/usePlayTracks';
import { EntityId } from '@reduxjs/toolkit';
import { WrappableButtonRow, WrappableButton } from 'components/WrappableButtonRow';
import { MusicNavigationProp } from 'screens/Music/types';
import { NavigationProp } from 'screens/types';
import DownloadIcon from 'components/DownloadIcon';
import CloudDownArrow from 'assets/icons/cloud-down-arrow.svg';
import Trash from 'assets/icons/trash.svg';
Expand Down Expand Up @@ -89,7 +89,7 @@ const TrackListView: React.FC<TrackListViewProps> = ({
const getImage = useGetImage();
const playTracks = usePlayTracks();
const { track: currentTrack } = useCurrentTrack();
const navigation = useNavigation<MusicNavigationProp>();
const navigation = useNavigation<NavigationProp>();
const dispatch = useAppDispatch();

// Setup callbacks
Expand All @@ -101,7 +101,7 @@ const TrackListView: React.FC<TrackListViewProps> = ({
await TrackPlayer.play();
}, [playTracks, trackIds]);
const longPressTrack = useCallback((index: number) => {
navigation.navigate('TrackPopupMenu', { trackId: trackIds[index] });
navigation.navigate('TrackPopupMenu', { trackId: trackIds[index].toString() });
}, [navigation, trackIds]);
const downloadAllTracks = useCallback(() => {
trackIds.forEach((trackId) => dispatch(queueTrackForDownload(trackId)));
Expand Down

0 comments on commit e2c1c03

Please sign in to comment.