Skip to content

fix: add profile dropdown menu instead of immediate logout (Bounty #20)#114

Closed
sriraajj-lab wants to merge 1 commit into
mergeos-bounties:masterfrom
sriraajj-lab:fix/bounty-20-logout-dropdown
Closed

fix: add profile dropdown menu instead of immediate logout (Bounty #20)#114
sriraajj-lab wants to merge 1 commit into
mergeos-bounties:masterfrom
sriraajj-lab:fix/bounty-20-logout-dropdown

Conversation

@sriraajj-lab
Copy link
Copy Markdown
Contributor

Bounty #20 — Fix logout bug (200 MRG)

Claim Reference

Bounty #20

Changes Made

  1. Added profile dropdown menu: Clicking the profile button now toggles a dropdown menu instead of immediately logging out. The dropdown contains a "Log out" option with a LogOut icon.
  2. Fixed both profile button locations: Updated both the project wizard navbar (line 39) and the dashboard topbar (line 1062) profile buttons.
  3. Added click-outside dismissal: Clicking outside the profile menu wrapper automatically closes the dropdown.
  4. Fixed clearSession navigation: clearSession() now unconditionally sets publicModeVisible = true and calls openPublicPage("home") to ensure the user always returns to the public homepage after logout, regardless of previous state.
  5. Reset profileMenuOpen on logout: The logout() function now also resets profileMenuOpen to false.
  6. Added LogOut icon import: Imported LogOut from @lucide/vue.
  7. Added CSS for profile dropdown: Positioned absolutely, with proper z-index, border, shadow, and hover states.

Build & Test Evidence

  • npm run build:local: ✅ Passes (both client and SSR builds succeed)
  • node --test server.test.js: ✅ All 9 tests pass

Files Changed

  • frontend/src/App.vue — Template, script, and logic changes
  • frontend/src/styles.css — Added .profile-menu-wrapper and .profile-dropdown styles

@eliasx45
Copy link
Copy Markdown
Contributor

Verification report for PR #114

Target PR: #114
Author: @sriraajj-lab
Head commit SHA: e98b41ff6e246eff2a45eeb773cac53cf67edd8f
Linked bounty: #20 - Fix logout bug

GitHub Actions

All current checks are passing:

  • Backend build and test: pass
  • Secret scan: pass
  • Web build and test (admin): pass
  • Web build and test (frontend): pass
  • Web build and test (scan): pass

Local checks run

From frontend/ on the PR branch:

  • npm test - pass, 9/9 tests
  • npm run build:local - pass, client and SSR builds completed

Code/manual review

The PR changes only frontend/src/App.vue and frontend/src/styles.css. I verified the claimed UI path with mocked authenticated API responses in Chrome/Playwright:

  • the profile button opens a .profile-dropdown
  • the dropdown includes a visible Log out action
  • clicking Log out calls the logout path, clears mergeos_token, removes the dropdown, and returns the URL to /

Evidence status

Missing. I do not see screenshots, GIF/video, or other visual proof attached in the PR body or comments. Since this is UI bounty work, the current PR does not satisfy the visual evidence rule yet.

Recommendation

Request changes / not bounty-ready yet. The implementation looks relevant and the checks pass, but please attach visual evidence showing the profile dropdown and logout result before bounty acceptance.

@TUPM96
Copy link
Copy Markdown
Contributor

TUPM96 commented May 28, 2026

Thanks for the contribution. I reviewed the diff and checks: CI is green and the direction is understandable, but issue #20 has already been handled on master by the accepted logout fix. This PR changes the profile/logout interaction into a new dropdown flow, which is broader than the original logout bug and does not include visual runtime evidence. Closing this as duplicate/not needed for the current bounty queue. For a future UX enhancement, please open a fresh focused issue/PR with screenshots or video evidence.

@TUPM96 TUPM96 closed this May 28, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants