diff --git a/app/login.tsx b/app/login.tsx
index dac7a55a..46144069 100644
--- a/app/login.tsx
+++ b/app/login.tsx
@@ -20,6 +20,7 @@ import { Button } from "@/components/Button";
import { Input } from "@/components/common/Input";
import { Text } from "@/components/common/Text";
import JellyfinServerDiscovery from "@/components/JellyfinServerDiscovery";
+import { PasswordInput } from "@/components/PasswordInput";
import { PreviousServersList } from "@/components/PreviousServersList";
import { Colors } from "@/constants/Colors";
import { apiAtom, useJellyfin } from "@/providers/JellyfinProvider";
@@ -276,33 +277,20 @@ const Login: React.FC = () => {
/>
{/* Password */}
-
-
- setCredentials({ ...credentials, password: text })
- }
- value={credentials.password}
- secureTextEntry={!showPassword}
- keyboardType='default'
- returnKeyType='done'
- autoCapitalize='none'
- textContentType='password'
- clearButtonMode='while-editing'
- maxLength={500}
- className='pr-12'
- />
- setShowPassword(!showPassword)}
- className='absolute right-3 top-4 p-1'
- >
-
-
-
+
+ setCredentials({ ...credentials, password: text })
+ }
+ onSubmitEditing={handleLogin}
+ placeholder={t("login.password_placeholder")}
+ className='mb-4'
+ showPassword={showPassword}
+ onShowPasswordChange={setShowPassword}
+ topPosition='4'
+ testID='tv-password-input'
+ accessibilityLabel={t("login.password_placeholder")}
+ />
@@ -417,33 +405,18 @@ const Login: React.FC = () => {
maxLength={500}
/>
-
-
- setCredentials({ ...credentials, password: text })
- }
- value={credentials.password}
- secureTextEntry={!showPassword}
- keyboardType='default'
- returnKeyType='done'
- autoCapitalize='none'
- textContentType='password'
- clearButtonMode='while-editing'
- maxLength={500}
- className='pr-12'
- />
- setShowPassword(!showPassword)}
- className='absolute right-3 top-3.5 p-1'
- >
-
-
-
+
+ setCredentials({ ...credentials, password: text })
+ }
+ placeholder={t("login.password_placeholder")}
+ showPassword={showPassword}
+ onShowPasswordChange={setShowPassword}
+ topPosition='3.5'
+ testID='mobile-password-input'
+ accessibilityLabel={t("login.password_placeholder")}
+ />