mirror of
https://github.com/IRBorisov/ConceptPortal.git
synced 2025-08-14 21:00:37 +03:00
Add input validation for login
This commit is contained in:
parent
da05bd6a12
commit
be066c6144
|
@ -15,7 +15,7 @@ import { HelpIcon } from '../components/Icons';
|
||||||
import { useAuth } from '../context/AuthContext';
|
import { useAuth } from '../context/AuthContext';
|
||||||
import { useConceptNavigation } from '../context/NagivationContext';
|
import { useConceptNavigation } from '../context/NagivationContext';
|
||||||
import { type IUserSignupData } from '../models/library';
|
import { type IUserSignupData } from '../models/library';
|
||||||
import { globalIDs } from '../utils/constants';
|
import { globalIDs, patterns } from '../utils/constants';
|
||||||
|
|
||||||
function RegisterPage() {
|
function RegisterPage() {
|
||||||
const location = useLocation();
|
const location = useLocation();
|
||||||
|
@ -66,7 +66,7 @@ function RegisterPage() {
|
||||||
}
|
}
|
||||||
return (
|
return (
|
||||||
<form
|
<form
|
||||||
className='py-3 px-6 flex flex-col gap-3 h-fit'
|
className='flex flex-col gap-3 px-6 py-3 h-fit'
|
||||||
onSubmit={handleSubmit}
|
onSubmit={handleSubmit}
|
||||||
>
|
>
|
||||||
<h1>Новый пользователь</h1>
|
<h1>Новый пользователь</h1>
|
||||||
|
@ -90,6 +90,8 @@ function RegisterPage() {
|
||||||
|
|
||||||
<TextInput id='username' required
|
<TextInput id='username' required
|
||||||
label='Имя пользователя (логин)'
|
label='Имя пользователя (логин)'
|
||||||
|
pattern={patterns.login}
|
||||||
|
tooltip='Минимум 3 знака. Латинские буквы и цифры. Не может начинаться с цифры'
|
||||||
value={username}
|
value={username}
|
||||||
dimensions='w-[12rem]'
|
dimensions='w-[12rem]'
|
||||||
onChange={event => setUsername(event.target.value)}
|
onChange={event => setUsername(event.target.value)}
|
||||||
|
@ -111,6 +113,7 @@ function RegisterPage() {
|
||||||
<div className='flex flex-col gap-3 w-[15rem]'>
|
<div className='flex flex-col gap-3 w-[15rem]'>
|
||||||
<TextInput id='email' required
|
<TextInput id='email' required
|
||||||
label='Электронная почта (email)'
|
label='Электронная почта (email)'
|
||||||
|
tooltip='электронная почта в корректном формате, например: i.petrov@mycompany.ru.com'
|
||||||
value={email}
|
value={email}
|
||||||
onChange={event => setEmail(event.target.value)}
|
onChange={event => setEmail(event.target.value)}
|
||||||
/>
|
/>
|
||||||
|
|
|
@ -33,6 +33,13 @@ export const resources = {
|
||||||
logo: '/logo_full.svg'
|
logo: '/logo_full.svg'
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Regex patterns for data validation.
|
||||||
|
*/
|
||||||
|
export const patterns = {
|
||||||
|
login: '^[a-zA-Z][a-zA-Z0-9_\\-]{1,}[a-zA-Z0-9]$'
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Youtube IDs for embedding.
|
* Youtube IDs for embedding.
|
||||||
*/
|
*/
|
||||||
|
|
Loading…
Reference in New Issue
Block a user