[fix](client): sign in with the email the hub identifies, not a username

Sign-in labels the single identity field 'Username', but `login()` sends it as
`email` and dcntrlized-auth resolves accounts by the email column. Typing the
username of a seeded account ('admin') therefore fails with 'invalid
credentials' while the password is correct. The field is now labelled Email,
with an email keyboard and a matching placeholder, in sign-in mode only —
registration still has a separate username and email.
This commit is contained in:
2026-10-19 15:03:29 +01:00
parent 6cd6bf3ed3
commit b5c1710b99
+13 -3
View File
@@ -72,14 +72,24 @@ export default function LoginScreen() {
</AppText>
</View>
<Field label="Username" accessibilityLabel="Username">
{/* Sign-in identifies the account by EMAIL: the auth hub's identity
is the email column, and `login()` sends this value as `email`.
Labelling it "Username" made the seeded accounts unusable —
typing the username from the seed file fails with "invalid
credentials" even though the password is right. Registration is
the only flow that has both a username and an email. */}
<Field
label={isRegister ? 'Username' : 'Email'}
accessibilityLabel={isRegister ? 'Username' : 'Email'}
>
<TextInputBox
value={username}
onChangeText={setUsername}
autoCapitalize="none"
autoCorrect={false}
accessibilityLabel="Username"
placeholder="your username"
keyboardType={isRegister ? 'default' : 'email-address'}
accessibilityLabel={isRegister ? 'Username' : 'Email'}
placeholder={isRegister ? 'your username' : '[email protected]'}
/>
</Field>