fix: update textContentType for username input to oneTimeCode (#587)

This commit is contained in:
Ahmed Sbai
2025-03-15 09:21:24 +01:00
committed by GitHub
parent 9f17f13175
commit 10bfa95060
7 changed files with 46 additions and 46 deletions

View File

@@ -3,7 +3,7 @@ import { Ionicons, Feather } from "@expo/vector-icons";
import { Stack, useRouter } from "expo-router";
import { Platform, TouchableOpacity, View } from "react-native";
import { useTranslation } from "react-i18next";
const Chromecast = !Platform.isTV ? require("@/components/Chromecast") : null;
const Chromecast = Platform.isTV ? null : require("@/components/Chromecast");
import { useAtom } from "jotai";
import { userAtom } from "@/providers/JellyfinProvider";
import { useSessions, useSessionsProps } from "@/hooks/useSessions";
@@ -25,7 +25,7 @@ export default function IndexLayout() {
headerLargeStyle: {
backgroundColor: "black",
},
headerTransparent: Platform.OS === "ios" ? true : false,
headerTransparent: Platform.OS === "ios",
headerShadowVisible: false,
headerRight: () => (
<View className="flex flex-row items-center space-x-2">
@@ -113,7 +113,7 @@ export default function IndexLayout() {
title: "",
headerShown: true,
headerBlurEffect: "prominent",
headerTransparent: Platform.OS === "ios" ? true : false,
headerTransparent: Platform.OS === "ios",
headerShadowVisible: false,
}}
/>
@@ -137,7 +137,7 @@ const SettingsButton = () => {
const SessionsButton = () => {
const router = useRouter();
const { sessions = [], _ } = useSessions({} as useSessionsProps);
const { sessions = [] } = useSessions({} as useSessionsProps);
return (
<TouchableOpacity
@@ -146,7 +146,7 @@ const SessionsButton = () => {
}}
>
<View className="mr-4">
<Ionicons
<Ionicons
name="play-circle"
color={sessions.length === 0 ? "white" : "#9333ea"}
size={25}

View File

@@ -9,7 +9,7 @@ import { Ionicons, MaterialCommunityIcons } from "@expo/vector-icons";
import { PublicSystemInfo } from "@jellyfin/sdk/lib/generated-client";
import { Image } from "expo-image";
import { useLocalSearchParams, useNavigation } from "expo-router";
import { useAtom, useAtomValue } from "jotai";
import { useAtomValue } from "jotai";
import React, { useCallback, useEffect, useState } from "react";
import {
Alert,
@@ -58,7 +58,7 @@ const Login: React.FC = () => {
useEffect(() => {
(async () => {
if (_apiUrl) {
setServer({
await setServer({
address: _apiUrl,
});
@@ -181,7 +181,7 @@ const Login: React.FC = () => {
return;
}
setServer({ address: url });
await setServer({ address: url });
}, []);
const handleQuickConnect = async () => {
@@ -237,11 +237,12 @@ const Login: React.FC = () => {
setCredentials({ ...credentials, username: text })
}
value={credentials.username}
secureTextEntry={false}
keyboardType="default"
returnKeyType="done"
autoCapitalize="none"
textContentType="username"
// Changed from username to oneTimeCode because it is a known issue in RN
// https://github.com/facebook/react-native/issues/47106#issuecomment-2521270037
textContentType="oneTimeCode"
clearButtonMode="while-editing"
maxLength={500}
/>
@@ -324,17 +325,17 @@ const Login: React.FC = () => {
{t("server.connect_button")}
</Button>
<JellyfinServerDiscovery
onServerSelect={(server) => {
onServerSelect={async (server) => {
setServerURL(server.address);
if (server.serverName) {
setServerName(server.serverName);
}
handleConnect(server.address);
await handleConnect(server.address);
}}
/>
<PreviousServersList
onServerSelect={(s) => {
handleConnect(s.address);
onServerSelect={async (s) => {
await handleConnect(s.address);
}}
/>
</View>