diff --git a/src/components/BoardManager.tsx b/src/components/BoardManager.tsx index f505822..9bdc732 100644 --- a/src/components/BoardManager.tsx +++ b/src/components/BoardManager.tsx @@ -667,7 +667,7 @@ ORDER BY reward_points DESC, score DESC`, display: "grid", gridTemplateColumns: list.viewMode === "grid" - ? "repeat(auto-fill, minmax(180px, 1fr))" + ? "repeat(auto-fill, minmax(102px, 1fr))" : list.viewMode === "list" ? "1fr" : "repeat(auto-fill, minmax(220px, 1fr))", @@ -678,111 +678,213 @@ ORDER BY reward_points DESC, score DESC`, const avatarColor = getAvatarColor(item.name) const avatarText = getAvatarText(item.name) const rankBadge = index === 0 ? "🥇" : index === 1 ? "🥈" : index === 2 ? "🥉" : null + const gridPrimaryValue = + item.score !== undefined + ? item.score + : item.rewardPoints !== undefined + ? item.rewardPoints + : item.weekChange !== undefined + ? item.weekChange + : item.weekDeducted !== undefined + ? -item.weekDeducted + : item.answeredCount + + const gridPrimaryLabel = + item.score !== undefined + ? t("board.metrics.totalScore") + : item.rewardPoints !== undefined + ? t("board.metrics.rewardPoints") + : item.weekChange !== undefined + ? t("board.metrics.weekChange") + : item.weekDeducted !== undefined + ? t("board.metrics.weekDeducted") + : item.answeredCount !== undefined + ? t("board.metrics.todayAnswered") + : null + return ( - - {rankBadge && ( -
- {rankBadge} -
- )} -
-
- {avatarText} -
-
+ {rankBadge && (
- {item.name} + {rankBadge}
+ )} + {list.viewMode === "grid" ? (
- {item.score !== undefined && ( - = 0 ? "success" : "error"} style={{ margin: 0 }}> - {t("board.metrics.totalScore")}: {item.score > 0 ? `+${item.score}` : item.score} - - )} - {item.rewardPoints !== undefined && ( - - {t("board.metrics.rewardPoints")}: {item.rewardPoints} - - )} - {item.weekChange !== undefined && ( - = 0 ? "success" : "error"} style={{ margin: 0 }}> - {t("board.metrics.weekChange")}: {item.weekChange > 0 ? `+${item.weekChange}` : item.weekChange} - - )} - {item.weekDeducted !== undefined && ( - - {t("board.metrics.weekDeducted")}: {item.weekDeducted} - - )} - {item.answeredCount !== undefined && ( - - {t("board.metrics.todayAnswered")}: {item.answeredCount} - - )} +
1 ? "14px" : "18px", + boxShadow: `0 4px 10px ${avatarColor}40`, + flexShrink: 0, + }} + > + {avatarText} +
+
+
+ {item.name} +
+ {gridPrimaryValue !== undefined && gridPrimaryLabel && ( + = 0 ? "success" : "error"} + style={{ fontWeight: "bold", marginInlineEnd: 0 }} + > + {gridPrimaryLabel}:{gridPrimaryValue > 0 ? `+${gridPrimaryValue}` : gridPrimaryValue} + + )} +
-
-
-
+ ) : ( +
+
+ {avatarText} +
+
+
+ {item.name} +
+
+ {item.score !== undefined && ( + = 0 ? "success" : "error"} style={{ margin: 0 }}> + {t("board.metrics.totalScore")}: {item.score > 0 ? `+${item.score}` : item.score} + + )} + {item.rewardPoints !== undefined && ( + + {t("board.metrics.rewardPoints")}: {item.rewardPoints} + + )} + {item.weekChange !== undefined && ( + = 0 ? "success" : "error"} style={{ margin: 0 }}> + {t("board.metrics.weekChange")}: {item.weekChange > 0 ? `+${item.weekChange}` : item.weekChange} + + )} + {item.weekDeducted !== undefined && ( + + {t("board.metrics.weekDeducted")}: {item.weekDeducted} + + )} + {item.answeredCount !== undefined && ( + + {t("board.metrics.todayAnswered")}: {item.answeredCount} + + )} +
+
+
+ )} + + ) })}