mirror of
https://github.com/Paris-est-Ludique/intranet.git
synced 2025-09-11 05:46:28 +02:00
Fix login and email retreival forms
This commit is contained in:
@@ -53,7 +53,7 @@ export function AskDiscord(asks: JSX.Element[], id: number): void {
|
||||
équipes s'organisent !
|
||||
</p>
|
||||
<p>
|
||||
Pour s'y retrouver tellement on est nombreux (plus de 120), il est nécessaire
|
||||
Pour s'y retrouver tellement on est nombreux (plus de 200), il est nécessaire
|
||||
d'avoir son prénom comme alias. Voir même d'avoir ensuite la première lettre de ton
|
||||
nom de famille si un autre bénévole présent sur le serveur a le même prénom. Pour
|
||||
changer ton alias uniquement sur le serveur PeL, il faut faire un clique droit sur
|
||||
|
@@ -13,7 +13,7 @@ interface Props {
|
||||
|
||||
const ForgotForm = ({ dispatch, error, message }: Props): JSX.Element => {
|
||||
const onSubmit = useCallback(
|
||||
(event: React.SyntheticEvent): void => {
|
||||
(event: React.SyntheticEvent): boolean => {
|
||||
event.preventDefault()
|
||||
const target = event.target as typeof event.target & {
|
||||
email: { value: string }
|
||||
@@ -21,6 +21,7 @@ const ForgotForm = ({ dispatch, error, message }: Props): JSX.Element => {
|
||||
const email = target.email.value
|
||||
|
||||
dispatch(fetchVolunteerForgot({ email }))
|
||||
return false
|
||||
},
|
||||
[dispatch]
|
||||
)
|
||||
@@ -35,7 +36,7 @@ const ForgotForm = ({ dispatch, error, message }: Props): JSX.Element => {
|
||||
<input type="email" id="email" name="utilisateur" />
|
||||
</div>
|
||||
<div className={styles.formButtons}>
|
||||
<FormSubmit>Envoyer</FormSubmit>
|
||||
<FormSubmit onClick={onSubmit}>Envoyer</FormSubmit>
|
||||
</div>
|
||||
<div className={styles.error}>{error}</div>
|
||||
<div className={styles.message}>{message}</div>
|
||||
|
@@ -1,14 +1,20 @@
|
||||
/* eslint-disable jsx-a11y/anchor-is-valid */
|
||||
import { FC, ReactNode } from "react"
|
||||
import styles from "./styles.module.scss"
|
||||
|
||||
type Props = {
|
||||
children: ReactNode
|
||||
onClick?: (event: React.SyntheticEvent) => void
|
||||
}
|
||||
|
||||
const FormSubmit: FC<Props> = ({ children }): JSX.Element => (
|
||||
<button type="submit" className={styles.button}>
|
||||
const FormSubmit: FC<Props> = ({ children, onClick }): JSX.Element => (
|
||||
<button type="button" className={styles.button} onClick={onClick} onTouchStart={onClick}>
|
||||
{children}
|
||||
</button>
|
||||
)
|
||||
|
||||
FormSubmit.defaultProps = {
|
||||
onClick: undefined,
|
||||
}
|
||||
|
||||
export default FormSubmit
|
||||
|
@@ -7,7 +7,7 @@ const LoaningIntro: React.FC = (): JSX.Element => (
|
||||
<h1>Emprunt et tri des jeux</h1>
|
||||
<p>
|
||||
Lors du brunch des bénévoles ayant contribué au dernier festival, des boîtes de jeux en
|
||||
trop dans la ludothèque seront données, et des boîtes qui passe l'année dans la cave
|
||||
trop dans la ludothèque seront données, et des boîtes qui passent l'année dans la cave
|
||||
entre deux éditions seront prêtées pour 4 mois.
|
||||
</p>
|
||||
<p>
|
||||
|
@@ -1,4 +1,5 @@
|
||||
import React, { memo, useCallback } from "react"
|
||||
import { memo, useCallback, useRef } from "react"
|
||||
import { get } from "lodash"
|
||||
import { shallowEqual, useDispatch, useSelector } from "react-redux"
|
||||
import { AppState } from "../../store"
|
||||
import { fetchVolunteerLogin } from "../../store/volunteerLogin"
|
||||
@@ -9,36 +10,37 @@ const LoginForm = (): JSX.Element => {
|
||||
const dispatch = useDispatch()
|
||||
const loginError = useSelector((state: AppState) => state.volunteerLogin.error, shallowEqual)
|
||||
|
||||
const emailRef = useRef<HTMLInputElement | null>(null)
|
||||
const passwordRef = useRef<HTMLInputElement | null>(null)
|
||||
|
||||
const onSubmit = useCallback(
|
||||
(event: React.SyntheticEvent): void => {
|
||||
(event: React.SyntheticEvent): boolean => {
|
||||
event.preventDefault()
|
||||
const target = event.target as typeof event.target & {
|
||||
email: { value: string }
|
||||
password: { value: string }
|
||||
}
|
||||
const email = target.email.value
|
||||
const password = target.password.value
|
||||
event.stopPropagation()
|
||||
const email = get(emailRef, "current.value", "")
|
||||
const password = get(passwordRef, "current.value", "")
|
||||
|
||||
dispatch(fetchVolunteerLogin({ email, password }))
|
||||
return false
|
||||
},
|
||||
[dispatch]
|
||||
)
|
||||
|
||||
return (
|
||||
<form onSubmit={onSubmit}>
|
||||
<form>
|
||||
<div className={styles.loginIntro} key="login-intro">
|
||||
Si tu es bénévole, connecte-toi pour accéder à ton espace.
|
||||
</div>
|
||||
<div className={styles.formLine} key="line-email">
|
||||
<label htmlFor="email">Email</label>
|
||||
<input type="email" id="email" name="utilisateur" />
|
||||
<input type="email" id="email" name="utilisateur" ref={emailRef} />
|
||||
</div>
|
||||
<div className={styles.formLine} key="line-password">
|
||||
<label htmlFor="password">Mot de passe</label>
|
||||
<input type="password" id="password" name="motdepasse" />
|
||||
<input type="password" id="password" name="motdepasse" ref={passwordRef} />
|
||||
</div>
|
||||
<div className={styles.formButtons}>
|
||||
<FormSubmit>Connexion</FormSubmit>
|
||||
<FormSubmit onClick={onSubmit}>Connexion</FormSubmit>
|
||||
</div>
|
||||
{loginError && <div className={styles.error}>{loginError}</div>}
|
||||
<div className={styles.link}>
|
||||
|
@@ -7,11 +7,12 @@ import styles from "./styles.module.scss"
|
||||
const LogoutButton: FC = (): JSX.Element | null => {
|
||||
const connected = useSelector(isUserConnected)
|
||||
|
||||
const onClick = useCallback((event: React.SyntheticEvent): void => {
|
||||
const onClick = useCallback((event: React.SyntheticEvent): boolean => {
|
||||
event.preventDefault()
|
||||
unsetJWT()
|
||||
// eslint-disable-next-line no-restricted-globals
|
||||
location?.reload()
|
||||
return false
|
||||
}, [])
|
||||
|
||||
if (!connected) return null
|
||||
|
Reference in New Issue
Block a user