Skip to content

Commit b55f131

Browse files
efahslgiolaq
authored andcommitted
Set default focus element on "watch now"
Added logic to go back to previous screen once playback is finished. PlayerScreen navigates back to detail screen after video playback complete
1 parent a442544 commit b55f131

3 files changed

Lines changed: 15 additions & 9 deletions

File tree

packages/shared-ui/src/screens/DetailsScreen.tsx

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import { useNavigation, useRoute, RouteProp } from '@react-navigation/native';
22
import { NativeStackNavigationProp } from '@react-navigation/native-stack';
33
import { StyleSheet, View, Image, Text } from 'react-native';
4-
import { SpatialNavigationRoot } from 'react-tv-space-navigation';
4+
import { SpatialNavigationRoot, DefaultFocus } from 'react-tv-space-navigation';
55
import { scaledPixels } from '../hooks/useScale';
66
import { useCallback, useMemo } from 'react';
77
import { useIsFocused } from '@react-navigation/native';
@@ -113,11 +113,13 @@ export default function DetailsScreen() {
113113
<Text style={detailsStyles.crewName}>Eric Fahsl</Text>
114114
</View>
115115
</View>
116-
<FocusablePressable
117-
text={'Watch now'}
118-
onSelect={navigate}
119-
style={buttonStyle}
120-
/>
116+
<DefaultFocus>
117+
<FocusablePressable
118+
text={'Watch now'}
119+
onSelect={navigate}
120+
style={buttonStyle}
121+
/>
122+
</DefaultFocus>
121123
</View>
122124
</View>
123125
</View>

packages/shared-ui/src/screens/PlayerScreen.tsx

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -108,7 +108,10 @@ export default function PlayerScreen() {
108108
onBuffer={setIsVideoBuffering}
109109
onProgress={setCurrentTime}
110110
onLoad={(duration) => (durationRef.current = duration)}
111-
onEnd={() => setPaused(true)}
111+
onEnd={() => {
112+
setPaused(true);
113+
navigation.goBack();
114+
}}
112115
/>
113116

114117
{!SHOW_NATIVE_CONTROLS && !!durationRef.current && (

packages/shared-ui/src/screens/PlayerScreen.vega.tsx

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -190,14 +190,15 @@ export default function PlayerScreen() {
190190
}, [movie, headerImage, isFocused]);
191191

192192
/**
193-
* Handle video end - pause and show controls
193+
* Handle video end - pause, show controls, and navigate back
194194
*/
195195
useEffect(() => {
196196
if (isVideoEnded) {
197197
setPaused(true);
198198
setControlsVisible(true);
199+
navigateBack();
199200
}
200-
}, [isVideoEnded]);
201+
}, [isVideoEnded, navigateBack]);
201202

202203
/**
203204
* Show controls when video starts

0 commit comments

Comments
 (0)