-
Notifications
You must be signed in to change notification settings - Fork 0
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
14.1 Login-sivun lisääminen Tanstackiin | Antti/add-tanstack-library-login-page #58
Conversation
…rary-index-file-toasts
…ake user experience better. Changes in login.tsx
The latest updates on your projects. Learn more about Vercel for Git ↗︎
|
TÄHÄN VASTATTU, TÄMÄ OKTämä saatta olla jo viides kerta kun kysyn branchien mergeämisestä / siihen liittyvästä tavasta, pahoittelut siitä. Ajattelin tehdä nyt niin, että teen jokaisen sivun yksi kerrallaan omassa branchissa ja mergeän ne sitten tähän niin sanottuun "pääbranchiin". Huomasin, että helpottaa tosi paljon omaa hommaa, kun on monta "pientä" taskia vs yksi "jättitaski" 😄 Jatkanko tällä tavalla (Tanstack-taskin kohdalla pelkästään), että teen monta PR:ää mutta tosi pieniä niistä. Vai että mergeän omalla koneella kaikki pikkubranchit yhteen "pääbranchiin" (esim. Laitoin myöskin tämän branchin ( |
…quests and mutations for others
pages/login.tsx
Outdated
{isPending ? ( | ||
<Button | ||
type="submit" | ||
className="cursor-not-allowed bg-red-500" | ||
disabled | ||
> | ||
Kirjaudutaan sisään | ||
<span className="loading-dots absolute" /> | ||
</Button> | ||
) : ( | ||
<Button type="submit">Kirjaudu sisään</Button> | ||
)} |
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.
Tein tämmöisen pienen if/else-renderöinnin.
Jos kirjautumisyritys on tehty, tehdään seuraavat toimenpiteet:
- estetään napin painaminen
- vaihdetaan väri (ei välttämättä hyvä idea, mutta olkoon tässä alussa nyt näin)
- laitetaan kursoriksi
not-allowed
, jotta käyttäjä tietää miksi klikkausta ei rekistöröidä (en tiedä onko tämä hyvä tapa)
Vaihdoin tekstiksi Kirjaudutaan sisään
ja lisäsin span
in, jolla asetetaan "pistelatausindikaattori".
Syy absolute
-classNamen käyttöön on se, että ilman sitä Kirjaudutaan sisään
-teksti liikkui edestakaisin pisteiden mukaan. Se ei näyttänyt hyvältä 😅
Jos ei ole kirjauduttu niin sitten ihan tavallinen kirjautumisnappula näytetään 👍
Onko conditional rendering tässä tapauksessa ok vai olisiko hyvä tehdä esimerkiksi sisäinen komponentti kirjautumisnappulasta?
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.
Conditional rendering on ihan ok, mutta yleensä ei renderöidä näissä tilanteissa kahta eri nappia vaan muutetaan propseja. Punainen ei myöskään ole hyvä väri, vaan disabloitu on yleensä harmaa. Lisäksi yleensä napin tekstiä ei muuteta, vaan nappi disabloidaan, muutetaan harmaaksi ja lisätään joku latausindikaattori (kolme pistettä, spinneri tms.)
Eli voisit tehdä esim. näin:
<Button type="submit" disabled={isLoading}>
Kirjaudu sisään {isLoading && <span className="loading-dots absolute" />}
</Button>
Sitten disablointityyliä ei kannata määrittää tässä, vaan Button
-komponentissa, eli sinne lisäät className
en disabled:bg-lighterGray disabled:text-middleGray
missä korvaat lighterGray
ja middleGray
sopivilla disablointi-väreillä.
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.
Tämä on hyvä, kiitos! 👍
Tästä Tailwindin disabled:
iin en ollut törmännyt aiemmin. Se on näppärä 👍
Värien kanssa en ole ihan 100 varma että ovatko hyvät. Kommentoin sen kun oon pushannut 👍
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.
Hyvältä näyttää!
{isEditModalOpen && editModalGiftData && ( | ||
{editModalGiftData && isEditModalOpen && ( | ||
<EditModal | ||
gift={editModalGiftData} | ||
setIsModalOpen={setIsEditModalOpen} | ||
/> | ||
)} | ||
|
||
{isDeleteModalOpen && deleteModalGiftData && ( | ||
{deleteModalGiftData && isDeleteModalOpen && ( |
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.
Nämä kaksi muutosta liittyy ideaan, jossa poistetaan isDeleteModalOpen
ja isEditModalOpen
. Tieto siitä pitäisikö Modalin olla auki saadaan tarkistamalla sisältääkö esimerkiksi deleteModalGiftData
tietoja vai 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.
Jep tarkistus voidaan hyvin tehdä noin, mikä onkin järkevää ja yksinkertaistaa asioita. Muuttujien järjestyksen muuttaminen ei taida sitä kuitenkaan vielä tehdä?
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.
Joo, ei toimi vielä. Voisin tehdä muokkauksen siihen branchiin, missä lisään Tanstackin EditModal
ja DeleteModal
ille.
Vai onko tämä tarkistus parempi lisätä vasta Tanstackin jälkeen?
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.
Voit tehdä siinä samassa branchissä missä lisäät Tanstackin modaaliin.
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.
Hyvin toimi jo nyt!
pages/login.tsx
Outdated
{isPending ? ( | ||
<Button | ||
type="submit" | ||
className="cursor-not-allowed bg-red-500" | ||
disabled | ||
> | ||
Kirjaudutaan sisään | ||
<span className="loading-dots absolute" /> | ||
</Button> | ||
) : ( | ||
<Button type="submit">Kirjaudu sisään</Button> | ||
)} |
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.
Conditional rendering on ihan ok, mutta yleensä ei renderöidä näissä tilanteissa kahta eri nappia vaan muutetaan propseja. Punainen ei myöskään ole hyvä väri, vaan disabloitu on yleensä harmaa. Lisäksi yleensä napin tekstiä ei muuteta, vaan nappi disabloidaan, muutetaan harmaaksi ja lisätään joku latausindikaattori (kolme pistettä, spinneri tms.)
Eli voisit tehdä esim. näin:
<Button type="submit" disabled={isLoading}>
Kirjaudu sisään {isLoading && <span className="loading-dots absolute" />}
</Button>
Sitten disablointityyliä ei kannata määrittää tässä, vaan Button
-komponentissa, eli sinne lisäät className
en disabled:bg-lighterGray disabled:text-middleGray
missä korvaat lighterGray
ja middleGray
sopivilla disablointi-väreillä.
{isEditModalOpen && editModalGiftData && ( | ||
{editModalGiftData && isEditModalOpen && ( | ||
<EditModal | ||
gift={editModalGiftData} | ||
setIsModalOpen={setIsEditModalOpen} | ||
/> | ||
)} | ||
|
||
{isDeleteModalOpen && deleteModalGiftData && ( | ||
{deleteModalGiftData && isDeleteModalOpen && ( |
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.
Jep tarkistus voidaan hyvin tehdä noin, mikä onkin järkevää ja yksinkertaistaa asioita. Muuttujien järjestyksen muuttaminen ei taida sitä kuitenkaan vielä tehdä?
…e handleLogin function
`mt-6 w-full rounded-md border border-lines bg-primary p-2 text-lg font-medium text-white`, | ||
`mt-6 w-full rounded-md border border-lines bg-primary p-2 text-lg font-medium text-white disabled:bg-gray-300 disabled:text-gray-500`, |
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.
Ovatko nuo värit yhtään sinnepäinkään mitä niiden kuuluisi olla? 😅
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.
Oikein hyvät! 👍
const { mutateAsync, isPending, error } = useMutation({ | ||
mutationKey: QueryKeys.LOGIN, | ||
mutationFn: async (loginCredentials: UserLoginDetails) => | ||
await axios.post('/api/auth/login', loginCredentials), | ||
onSuccess: () => router.push('/'), | ||
}); | ||
|
||
useShowErrorToast(error); |
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.
mutationFn
saa nyt tarvittavat tiedot parametreina. Lisäsin näemmä myös useShowErrorToast(error)
käsittelemään mahdolliset virheet
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.
Oikein hyvä! 👍 Valmis mergettäväksi.
Login-sivuun lisätty Tanstack