-
Notifications
You must be signed in to change notification settings - Fork 49
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
fix(landing): login credentials stay on error #1852
base: main
Are you sure you want to change the base?
Conversation
const [email, setEmail] = useState('') | ||
const [password, setPassword] = useState('') | ||
const [repeat, setRepeat] = useState('') |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ikke kjempeflink på best practice her, men kunne det potensielt vært like bra å bare persiste e-post og ikke passord? Så unngår vi å lagre passordet i en state? Aner ikke om det er et stort sikkerhetshull eller ei
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Sånn sett ja - det kan jo være en fin mellomting? At man kun persister e-post og ikke passord i state. Men jeg tror egentlig ikke at det er så farlig. Den vanligste måten å håndtere states i form og validere states i forms, er via useState, og den ligger jo ikke "lagret" noen plass - den fjernes jo når formet submittes inn.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hadde en del kommentarer som kanskje kan gjøre ting litt smudere, men kan godt sitte å parprogge på denne siden hvis du vil :D
@@ -26,12 +26,23 @@ import { handleError } from 'app/(admin)/utils/handleError' | |||
import Google from './Google' | |||
|
|||
function Create() { | |||
const [email, setEmail] = useState('') | |||
const [password, setPassword] = useState('') | |||
const [repeat, setRepeat] = useState('') | |||
const submit = async (p: TFormFeedback | undefined, data: FormData) => { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pirk, kan vi kalle p
for previousState
så er det likt med de andre? Evt prevState
|
||
setEmail('') | ||
setPassword('') | ||
setRepeat('') |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Er dette nødvendig? 🤔
@@ -69,6 +83,7 @@ function Create() { | |||
name="email" | |||
label="E-post" | |||
type="email" | |||
defaultValue={email} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Jeg lurer på om det er bedre å skrive det som dette:
value={email}
onChange={(e) => setEmail(e.target.value)}
Da får man oppdatert staten samtidig som bruker skriver inn, og man slipper å sette en client-state i en server-action som man gjør på linje 41-42
setEmail('') | ||
setPassword('') | ||
setRepeat('') | ||
if (password !== repeat) { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Vi har faktisk ikke en sjekk på om password
eller repeat
er undefined
, det burde vi kanskje ha.
Hvis man nå prøver å trykke "opprett" uten å skrive inn passord eller gjenta passord, så får vi den generelle feilen. Det burde vel heller være en "skriv inn passord"-melding
const submit = async ( | ||
previousState: TFormFeedback | undefined, | ||
data: FormData, | ||
) => { | ||
const email = data.get('email') as string | ||
const password = data.get('password') as string | ||
|
||
setEmail('') | ||
setPassword('') | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Samme her
@@ -92,6 +104,7 @@ function Email() { | |||
name="email" | |||
label="E-post" | |||
type="email" | |||
defaultValue={email} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Kan man heller bruke value
og onChange
?
Legger til at innloggingsdetaljer er i en usestate dersom det feiler slik at verdien beholdes
Motivasjon
Det er irriterende for brukeren å fylle inn alt på nytt dersom de skriver inn en liten ting feil, dette skal hjelpe.
Endringer
Lagt inn state som passer på epost, passord og repeat passord dersom aktiviteten (innlogging eller opprettelse av ny konto) feiler. Verdiene resettes til tom streng on submit slik at de blir fjernet dersom aktiviteten går gjennom.
Spurte litt rundt om det er usikkert å gjøre det på denne måten men vet ikke helt:)))
Sjekkliste for Review