From 7af4b913d7ccd60ea3fc6e4c11e36e6ac98e6cd6 Mon Sep 17 00:00:00 2001 From: Fredrik Burmester Date: Sun, 18 Jan 2026 16:13:53 +0100 Subject: [PATCH] fix(tv): add keyboard focus to text inputs and polish poster styling --- app/(auth)/(tabs)/(home)/settings.tv.tsx | 5 ++++- components/ContinueWatchingPoster.tv.tsx | 8 ++------ components/posters/MoviePoster.tv.tsx | 4 +--- components/posters/SeriesPoster.tv.tsx | 4 +--- 4 files changed, 8 insertions(+), 13 deletions(-) diff --git a/app/(auth)/(tabs)/(home)/settings.tv.tsx b/app/(auth)/(tabs)/(home)/settings.tv.tsx index ae84f5b3..a4bc7774 100644 --- a/app/(auth)/(tabs)/(home)/settings.tv.tsx +++ b/app/(auth)/(tabs)/(home)/settings.tv.tsx @@ -1,7 +1,7 @@ import { Ionicons } from "@expo/vector-icons"; import { SubtitlePlaybackMode } from "@jellyfin/sdk/lib/generated-client"; import { useAtom } from "jotai"; -import React, { useMemo, useState } from "react"; +import React, { useMemo, useRef, useState } from "react"; import { useTranslation } from "react-i18next"; import { Animated, Pressable, ScrollView, TextInput, View } from "react-native"; import { useSafeAreaInsets } from "react-native-safe-area-context"; @@ -319,6 +319,7 @@ const TVSettingsTextInput: React.FC<{ secureTextEntry, disabled, }) => { + const inputRef = useRef(null); const { focused, handleFocus, handleBlur, animatedStyle } = useTVFocusAnimation({ scaleAmount: 1.02 }); @@ -329,6 +330,7 @@ const TVSettingsTextInput: React.FC<{ return ( inputRef.current?.focus()} onFocus={handleFocus} onBlur={handleInputBlur} disabled={disabled} @@ -352,6 +354,7 @@ const TVSettingsTextInput: React.FC<{ {label} = ({ style={{ width: TV_LANDSCAPE_WIDTH, aspectRatio: 16 / 9, - borderWidth: 1, - borderColor: "#262626", - borderRadius: 12, + borderRadius: 24, }} /> ); @@ -80,10 +78,8 @@ const ContinueWatchingPoster: React.FC = ({ position: "relative", width: TV_LANDSCAPE_WIDTH, aspectRatio: 16 / 9, - borderRadius: 12, + borderRadius: 24, overflow: "hidden", - borderWidth: 1, - borderColor: "#262626", }} > = ({ = ({ item }) => { width: TV_POSTER_WIDTH, aspectRatio: 10 / 15, position: "relative", - borderRadius: 12, + borderRadius: 24, overflow: "hidden", - borderWidth: 1, - borderColor: "#262626", }} >