fix: username regex and error message word-break

This commit is contained in:
Sebastian 2022-12-07 18:46:30 -03:00
parent 4fbc22b94a
commit c54476c40e
No known key found for this signature in database
GPG Key ID: BE4FF68352439FC1
4 changed files with 67 additions and 53 deletions

View File

@ -118,30 +118,32 @@ export function PaytoWireTransferForm({
/>
<br />
<label for="amount">{i18n.str`Amount:`}</label>&nbsp;
<input
type="text"
readonly
class="currency-indicator"
size={currency?.length}
maxLength={currency?.length}
tabIndex={-1}
value={currency}
/>
&nbsp;
<input
type="number"
name="amount"
id="amount"
placeholder="amount"
required
value={submitData?.amount ?? ""}
onInput={(e): void => {
submitDataSetter((submitData) => ({
...submitData,
amount: e.currentTarget.value,
}));
}}
/>
<div style={{ width: "max-content" }}>
<input
type="text"
readonly
class="currency-indicator"
size={currency?.length}
maxLength={currency?.length}
tabIndex={-1}
value={currency}
/>
&nbsp;
<input
type="number"
name="amount"
id="amount"
placeholder="amount"
required
value={submitData?.amount ?? ""}
onInput={(e): void => {
submitDataSetter((submitData) => ({
...submitData,
amount: e.currentTarget.value,
}));
}}
/>
</div>
<ShowInputErrorLabel
message={errorsWire?.amount}
isDirty={submitData?.amount !== undefined}

View File

@ -44,6 +44,8 @@ export function RegistrationPage(): VNode {
);
}
const usernameRegex = /^[a-z][a-zA-Z0-9]+$/;
/**
* Collect and submit registration data.
*/
@ -57,8 +59,16 @@ function RegistrationForm(): VNode {
const { i18n } = useTranslationContext();
const errors = undefinedIfEmpty({
username: !username ? i18n.str`Missing username` : undefined,
password: !password ? i18n.str`Missing password` : undefined,
username: !username
? i18n.str`Missing username`
: !usernameRegex.test(username)
? i18n.str`Use only letter and numbers starting with a lower case letter`
: undefined,
password: !password
? i18n.str`Missing password`
: !usernameRegex.test(password)
? i18n.str`Use only letter and numbers starting with a lower case letter`
: undefined,
repeatPassword: !repeatPassword
? i18n.str`Missing password`
: repeatPassword !== password

View File

@ -46,29 +46,31 @@ export function WalletWithdrawForm({
<p>
<label for="withdraw-amount">{i18n.str`Amount to withdraw:`}</label>
&nbsp;
<input
type="text"
readonly
class="currency-indicator"
size={currency?.length ?? 5}
maxLength={currency?.length}
tabIndex={-1}
value={currency}
/>
&nbsp;
<input
type="number"
ref={ref}
id="withdraw-amount"
name="withdraw-amount"
value={submitAmount}
onChange={(e): void => {
// FIXME: validate using 'parseAmount()',
// deactivate submit button as long as
// amount is not valid
submitAmount = e.currentTarget.value;
}}
/>
<div style={{ width: "max-content" }}>
<input
type="text"
readonly
class="currency-indicator"
size={currency?.length ?? 5}
maxLength={currency?.length}
tabIndex={-1}
value={currency}
/>
&nbsp;
<input
type="number"
ref={ref}
id="withdraw-amount"
name="withdraw-amount"
value={submitAmount}
onChange={(e): void => {
// FIXME: validate using 'parseAmount()',
// deactivate submit button as long as
// amount is not valid
submitAmount = e.currentTarget.value;
}}
/>
</div>
</p>
<p>
<div>

View File

@ -88,7 +88,7 @@ input[type="number"]::-webkit-inner-spin-button {
display: none;
padding: 8px 16px;
border: 2px solid #c1c1c1;
width: max-content;
width: min-content;
}
.tabcontent.active {
@ -168,7 +168,7 @@ input {
margin-right: auto;
padding: 16px 16px;
border-radius: 8px;
width: max-content;
width: min-content;
.formFieldLabel {
margin: 2px 2px;
}
@ -210,7 +210,7 @@ input {
margin-right: auto;
padding: 16px 16px;
border-radius: 8px;
width: max-content;
width: min-content;
.formFieldLabel {
margin: 2px 2px;
}
@ -244,7 +244,7 @@ input {
margin-right: auto;
padding: 16px 16px;
border-radius: 8px;
width: max-content;
width: min-content;
.formFieldLabel {
margin: 2px 2px;
}