mirror of
https://github.com/streamyfin/streamyfin.git
synced 2026-01-19 09:38:07 +00:00
fix(tv): add keyboard focus to text inputs and polish poster styling
This commit is contained in:
@@ -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<TextInput>(null);
|
||||
const { focused, handleFocus, handleBlur, animatedStyle } =
|
||||
useTVFocusAnimation({ scaleAmount: 1.02 });
|
||||
|
||||
@@ -329,6 +330,7 @@ const TVSettingsTextInput: React.FC<{
|
||||
|
||||
return (
|
||||
<Pressable
|
||||
onPress={() => inputRef.current?.focus()}
|
||||
onFocus={handleFocus}
|
||||
onBlur={handleInputBlur}
|
||||
disabled={disabled}
|
||||
@@ -352,6 +354,7 @@ const TVSettingsTextInput: React.FC<{
|
||||
{label}
|
||||
</Text>
|
||||
<TextInput
|
||||
ref={inputRef}
|
||||
value={value}
|
||||
placeholder={placeholder}
|
||||
placeholderTextColor='#6B7280'
|
||||
|
||||
@@ -66,9 +66,7 @@ const ContinueWatchingPoster: React.FC<ContinueWatchingPosterProps> = ({
|
||||
style={{
|
||||
width: TV_LANDSCAPE_WIDTH,
|
||||
aspectRatio: 16 / 9,
|
||||
borderWidth: 1,
|
||||
borderColor: "#262626",
|
||||
borderRadius: 12,
|
||||
borderRadius: 24,
|
||||
}}
|
||||
/>
|
||||
);
|
||||
@@ -80,10 +78,8 @@ const ContinueWatchingPoster: React.FC<ContinueWatchingPosterProps> = ({
|
||||
position: "relative",
|
||||
width: TV_LANDSCAPE_WIDTH,
|
||||
aspectRatio: 16 / 9,
|
||||
borderRadius: 12,
|
||||
borderRadius: 24,
|
||||
overflow: "hidden",
|
||||
borderWidth: 1,
|
||||
borderColor: "#262626",
|
||||
}}
|
||||
>
|
||||
<View
|
||||
|
||||
@@ -39,10 +39,8 @@ const MoviePoster: React.FC<MoviePosterProps> = ({
|
||||
<View
|
||||
style={{
|
||||
position: "relative",
|
||||
borderRadius: 12,
|
||||
borderRadius: 24,
|
||||
overflow: "hidden",
|
||||
borderWidth: 1,
|
||||
borderColor: "#262626",
|
||||
width: TV_POSTER_WIDTH,
|
||||
aspectRatio: 10 / 15,
|
||||
}}
|
||||
|
||||
@@ -38,10 +38,8 @@ const SeriesPoster: React.FC<SeriesPosterProps> = ({ item }) => {
|
||||
width: TV_POSTER_WIDTH,
|
||||
aspectRatio: 10 / 15,
|
||||
position: "relative",
|
||||
borderRadius: 12,
|
||||
borderRadius: 24,
|
||||
overflow: "hidden",
|
||||
borderWidth: 1,
|
||||
borderColor: "#262626",
|
||||
}}
|
||||
>
|
||||
<Image
|
||||
|
||||
Reference in New Issue
Block a user