[Medium]: Replace hash-based profile navigation with app state navigation
- Dominant language
- JavaScript
- Stars
- 0
- Forks
- 9
- PR merge metrics
- No merged PRs in 30d
Description
### Problem Statement
Profile action buttons currently use hash-based navigation. The app itself uses page state navigation, so behavior is inconsistent and harder to maintain.
### Proposed Approach
Add a page navigation callback in App and pass it to UserProfile.
Replace hash-based button handlers with callback-based page switching.
Make Create Your First Event open create-event page.
Make Browse Events open event-list page.
Remove any active hash navigation usage related to these buttons.
Verify navigation works in authenticated flow.
### Files and Scope
event-dappp/src/App.js
event-dappp/src/components/UserProfile.jsx
### Acceptance Criteria
- [ ] Create Your First Event button navigates through app state
- [ ] Browse Events button navigates through app state
- [ ] No active hash navigation is used for profile actions
- [ ] Navigation works correctly after login
### Test Plan
Open profile page after login.
Click Create Your First Event and confirm create-event page opens.
Click Browse Events and confirm event-list page opens.
Confirm URL hash is not used for these actions.
### Risks and Edge Cases
Possible regression in page switching if callback is not passed correctly.
Must ensure behavior still works when user is not authenticated.
Contributor guide
Research direction
Start by reading event-dappp/src/App.js and event-dappp/src/components/UserProfile.jsx to trace current page-state and hash navigation. Update the profile actions to use the app navigation callback, then follow the test plan after login: both buttons should open their target pages without changing the URL hash, including for unauthenticated users.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- javascript
- Domain
- frontend
- Issue type
- Refactor
- Difficulty
- 2/5
- Estimated time
- 1-3 hours
- Activity status
- Quiet
- Clarity
- Clearly specified
- Newbie friendliness
- 78/100