refactor: remove voting system, add author colors + pin numbering

- Remove votes backend (route, db functions, server mount)
- Remove votes frontend (store, socket, PinOverlay badges, FeedbackPanel UI)
- Add authorColors utility (8-color palette, deterministic hash)
- Add getPinNumber() to annotationStore
- Fix JWT to include username/display_name
- Add resolveAuthorName DB fallback for old tokens
This commit is contained in:
Hiren Kangad
2026-03-11 00:54:48 +05:30
parent f7a39a1726
commit f24414e25c
11 changed files with 60 additions and 200 deletions
+12 -2
View File
@@ -14,9 +14,19 @@ const {
deleteComment,
incrementThreadCommentCount,
decrementThreadCommentCount,
getUserById,
} = require('../db');
const { hasCollectionRole, resolveBoard } = require('./board-access');
function resolveAuthorName(reqUser) {
if (reqUser.display_name || reqUser.username) {
return reqUser.display_name || reqUser.username;
}
// Fallback: look up from DB (old JWT tokens lack these fields)
const dbUser = getUserById(reqUser.id);
return dbUser ? (dbUser.display_name || dbUser.username || dbUser.email) : 'Unknown';
}
const router = Router();
router.use(authMiddleware);
@@ -86,7 +96,7 @@ router.post('/:boardId/threads', (req, res) => {
id: commentId,
threadId,
userId,
authorName: req.user.display_name || req.user.username,
authorName: resolveAuthorName(req.user),
authorColor: null,
content: content.trim(),
});
@@ -198,7 +208,7 @@ router.post('/:boardId/threads/:threadId/comments', (req, res) => {
id: commentId,
threadId: req.params.threadId,
userId,
authorName: req.user.display_name || req.user.username,
authorName: resolveAuthorName(req.user),
authorColor: null,
content: content.trim(),
});