-
Notifications
You must be signed in to change notification settings - Fork 0
Improved the navbar and the metamask events handling #13
Conversation
vcheeney
commented
Mar 9, 2022
- Improved the styling of the user information in the navbar
- Made the account automatically switch when the users switches account in metamask (ex: in the register page)
- Made the app react to chain switches live (ex: the user switch chain in the register page)
- Added a logout button (it's normal if the user is still logged if he manually refreshes the page 👉 Allow dapp to disconnect accounts MetaMask/metamask-extension#8990) and prepared the ground to make the call to destroy the user session on logout
In the preview video:
better-navbar-and-redirections.mp4 |
Dans function handleAccountsChanged(accounts: string[]) {
if (!accounts.length) {
logoutEthereumAccount();
} else {
setAccount(accounts[0]);
// TODO: Destroy session / login the other account and setup new session?
}
}
function logoutEthereumAccount() {
setAccount(null);
// TODO: Destroy session
} J'ai pas beaucoup joué avec les cookies et tout ça encore dans ma carrière mais j'ai mis deux comments sur ce que je pense qu'il devrait y avoir comme logique quand le user disconnect son MetaMask ou switch de compte comme on le voit dans le vidéo. J'aimerais savoir ce que tu en penses / idées d'implémentation. 🙂 Si tu veux le setup en même temps que de checker pourquoi l'app fait deux calls à |
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.
Good stuff as usual 🔥 🚀
import { formatAccountString } from "~/lib/utils"; | ||
|
||
export const AccountMenu: FC = () => { | ||
const [anchorEl, setAnchorEl] = useState<null | HTMLElement>(null); |
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.
si tu fais useState<HTMLElement>();
automatiquement le type ça va être HTMLElement | undefined
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.
Sick! 😀
Yeah thanks pour les pointers, je vais faire ça exactement dans ses fonctions pour sync avec le state de login de Ethereum, si tu veux je pourrai t'expliquer vite vite comment l'auth fonctionne, c'est pas très compliqué. |
Co-authored-by: Antoine Gagnon <ant@antoineg.dev>
Nice avec plaisir! J'ai regardé rapidement mais je suis toujours willing d'en apprendre plus, on pourra regarder ça mardi soir prochain ou un autre moment si ça te convient mieux. 🙃 |