refactor: shared emoji hook, nav bar, UX improvements

- Extract duplicated emoji logic into useEmoji hook
- Fix map memoization anti-pattern (proper React.memo component)
- Add NavBar with links to all pages
- Add success/error feedback on nomination submit
- Show addresses on homepage award cards
- Add confirmation dialog before rejecting nominations
- Remove backend-only deps from frontend package.json
- Change "Nominate a Neighbor" to "Nominate a Place"

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-04-05 10:21:17 -07:00
parent ff534eb448
commit 04c32e7938
6 changed files with 286 additions and 270 deletions

View File

@@ -12,16 +12,11 @@
"prod": "(crontab -l 2>/dev/null | grep -v backup-db.sh; echo '0 2 * * * /bin/bash $(pwd)/backend/backup-db.sh') | sort | uniq | crontab - && concurrently \"vite\" \"node backend/index.js\""
},
"dependencies": {
"cors": "^2.8.5",
"express": "^5.1.0",
"leaflet": "^1.9.4",
"node-emoji": "^2.2.0",
"node-fetch": "^3.3.2",
"react": "^19.1.0",
"react-dom": "^19.1.0",
"react-leaflet": "^5.0.0",
"react-router-dom": "^7.6.3",
"sqlite3": "^5.1.7"
"react-router-dom": "^7.6.3"
},
"devDependencies": {
"@eslint/js": "^9.30.1",