New Password
= ({ registerData, setRegisterData
email: trimmedEmail
}))
+ const isUsernameValid = trimmedUsername.length > 0 && usernameRegex.test(trimmedUsername)
+ const isFirstNameValid = trimmedFirstName.length > 0 && nameRegex.test(trimmedFirstName)
+ const isLastNameValid = trimmedLastName.length > 0 && nameRegex.test(trimmedLastName)
+ const isEmailValid = trimmedEmail.length > 0 && emailRegex.test(trimmedEmail)
+
setValidationState({
- isUsernameValid: !!trimmedUsername,
- isFirstNameValid: !!trimmedFirstName,
- isLastNameValid: !!trimmedLastName,
- isEmailValid: !!trimmedEmail
+ isUsernameValid,
+ isFirstNameValid,
+ isLastNameValid,
+ isEmailValid
})
- if (trimmedUsername && trimmedFirstName && trimmedLastName && trimmedEmail && term) {
+ if (isUsernameValid && isFirstNameValid && isLastNameValid && isEmailValid && term) {
if (!emailRegex.test(trimmedEmail)) {
setTimeout(() => setIsSubmitted(false), 500)
return toast.warning('Invalid email address')
@@ -114,8 +119,7 @@ const SignupTab: React.FC
= ({ registerData, setRegisterData
localStorage.removeItem('username')
toast.success(response.message)
navigate('/')
- }
- else {
+ } else {
if (response.message === 'Validation failed') {
return toast.error(`${response.errors[0].field.charAt(0).toUpperCase() + response.errors[0].field.slice(1)} ${response.errors[0].message}`)
}
@@ -125,7 +129,7 @@ const SignupTab: React.FC = ({ registerData, setRegisterData
.finally(() => setIsSubmitted(false))
} else {
setTimeout(() => setIsSubmitted(false), 500)
- return
+ return toast.warning('Please fill out all fields correctly')
}
}
diff --git a/client/src/components/sidebar/profile.css b/client/src/components/sidebar/profile.css
index 629a8f4..5244b6a 100644
--- a/client/src/components/sidebar/profile.css
+++ b/client/src/components/sidebar/profile.css
@@ -162,6 +162,10 @@
line-height: 25px;
}
+.modal-profile-btn:hover {
+ text-decoration: underline;
+}
+
@media screen and (max-width: 767px) {
.profile__wrapper .auth-btn {
width: 40px;
diff --git a/client/src/components/sidebar/profile.tsx b/client/src/components/sidebar/profile.tsx
index 6d2e3be..73dd860 100644
--- a/client/src/components/sidebar/profile.tsx
+++ b/client/src/components/sidebar/profile.tsx
@@ -127,14 +127,14 @@ const Profile: React.FC = ({ isVisible }) => {
onClick={handleToggleMenu}
>
- Profile
+ Profile
)}
diff --git a/client/src/data/regex.ts b/client/src/data/regex.ts
index 012ae34..056aa88 100644
--- a/client/src/data/regex.ts
+++ b/client/src/data/regex.ts
@@ -1,3 +1,4 @@
-export const usernameRegex = /^[a-zA-Z0-9_-]+$/
export const specialCharRegex = /[@#$%^&*()_+\-=\[\]{};':"\\|,.<>\/?]/ // eslint-disable-line
+export const usernameRegex = /^[a-zA-Z0-9]+$/
+export const nameRegex = /^[a-zA-Z]+$/
export const emailRegex = /^(([^<>()[\]\\.,;:\s@"]+(\.[^<>()[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+(com|org|net|gov|mil|biz|info|mobi|name|aero|jobs|museum|in|space)))$/
\ No newline at end of file
diff --git a/client/src/pages/create-debate/index.tsx b/client/src/pages/create-debate/index.tsx
index 2821882..17302e4 100644
--- a/client/src/pages/create-debate/index.tsx
+++ b/client/src/pages/create-debate/index.tsx
@@ -6,11 +6,11 @@ import Editor from './editor'
import Preview from './preview'
interface CreateProps {
- isVisible: boolean
+ isScrollingUp: boolean
isFullscreen: boolean
}
-const CreateDebatePage: React.FC