fix: username regex and error message word-break
This commit is contained in:
parent
4fbc22b94a
commit
c54476c40e
@ -118,30 +118,32 @@ export function PaytoWireTransferForm({
|
||||
/>
|
||||
<br />
|
||||
<label for="amount">{i18n.str`Amount:`}</label>
|
||||
<input
|
||||
type="text"
|
||||
readonly
|
||||
class="currency-indicator"
|
||||
size={currency?.length}
|
||||
maxLength={currency?.length}
|
||||
tabIndex={-1}
|
||||
value={currency}
|
||||
/>
|
||||
|
||||
<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}
|
||||
/>
|
||||
|
||||
<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}
|
||||
|
@ -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
|
||||
|
@ -46,29 +46,31 @@ export function WalletWithdrawForm({
|
||||
<p>
|
||||
<label for="withdraw-amount">{i18n.str`Amount to withdraw:`}</label>
|
||||
|
||||
<input
|
||||
type="text"
|
||||
readonly
|
||||
class="currency-indicator"
|
||||
size={currency?.length ?? 5}
|
||||
maxLength={currency?.length}
|
||||
tabIndex={-1}
|
||||
value={currency}
|
||||
/>
|
||||
|
||||
<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}
|
||||
/>
|
||||
|
||||
<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>
|
||||
|
@ -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;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user