ShelterTechSF / askdarcel-web

The "Ask Darcel" web app.
GNU General Public License v3.0
28 stars 22 forks source link

Refresh BookmarksMenu when it is opened. #1378

Closed richardxia closed 5 months ago

richardxia commented 5 months ago

Without adding this logic, the BookmarksMenu will not reflect any new bookmarks that are added unless you refresh the browser. The reason is because the menu is always mounted, as it lives at the App layer, though hidden off screen. This means that the useEffect() call only happens once, when the app is first loaded.

By capturing the isOpen variable in the useEffect()'s dependency list, we can retrigger the useEffect() call whenever the menu is opened, causing it to be updated with the latest state of the user's bookmarks.

I missed this during local development, since prior to me moving the dashboard page to the / route, I had to manually type in the URL of the dashboard page to get back there. This effectively forced a page refresh, causing the app to be loaded from scratch, and the BookmarksMenu receiving the latest bookmarks state. Thankfully, I caught this when doing final testing after deploying to prod. I'm going to deploy this as soon as this passes CI.