From 6df78f254d98453520e8644996b917d673ee3978 Mon Sep 17 00:00:00 2001 From: Pinapelz Date: Tue, 23 Sep 2025 15:05:48 -0700 Subject: initial mobile CSS style --- frontend/src/components/NavBar.tsx | 59 +++++++++++++++++++++- .../components/displays/GenericScoreDisplay.tsx | 43 ++++++++-------- frontend/src/components/modals/JsonUploadModal.tsx | 2 +- 3 files changed, 80 insertions(+), 24 deletions(-) (limited to 'frontend/src/components') diff --git a/frontend/src/components/NavBar.tsx b/frontend/src/components/NavBar.tsx index 4be8607..ac70dfb 100644 --- a/frontend/src/components/NavBar.tsx +++ b/frontend/src/components/NavBar.tsx @@ -1,10 +1,13 @@ import { Link } from "react-router"; +import { useState } from "react"; export const NavBar = ({ currentPage, user, handleLogout }: { currentPage: string; user: { username: string }; handleLogout: () => void; }) => { + const [isMobileMenuOpen, setIsMobileMenuOpen] = useState(false); + const menuOptions = ( <> setIsMobileMenuOpen(false)} > Home @@ -24,6 +28,7 @@ export const NavBar = ({ currentPage, user, handleLogout }: { ? 'bg-violet-600 text-white shadow-lg shadow-violet-500/25' : 'text-slate-300 hover:text-white hover:bg-slate-800/50' }`} + onClick={() => setIsMobileMenuOpen(false)} > Import Data @@ -34,6 +39,7 @@ export const NavBar = ({ currentPage, user, handleLogout }: { ? 'bg-violet-600 text-white shadow-lg shadow-violet-500/25' : 'text-slate-300 hover:text-white hover:bg-slate-800/50' }`} + onClick={() => setIsMobileMenuOpen(false)} > Community Scores @@ -44,13 +50,16 @@ export const NavBar = ({ currentPage, user, handleLogout }: { ); -}; +}; \ No newline at end of file diff --git a/frontend/src/components/displays/GenericScoreDisplay.tsx b/frontend/src/components/displays/GenericScoreDisplay.tsx index 4201d95..41a125c 100644 --- a/frontend/src/components/displays/GenericScoreDisplay.tsx +++ b/frontend/src/components/displays/GenericScoreDisplay.tsx @@ -269,7 +269,7 @@ const ScoreDisplay: React.FC = ({ if (viewMode === "cards") { return ( -
+
{sortedScores.map((score, index) => { const chartIdHash = SHA1(`${internalGameName}${score.title}${score.artist}`).toString(); // eslint-disable-next-line @typescript-eslint/no-unused-vars @@ -279,18 +279,18 @@ const ScoreDisplay: React.FC = ({ return (
{/* Primary Info */}
{!hideTitleArtist && ( -

+

{score.title || score.song || "Unknown Title"}

{score.artist && ( -

+

{score.artist}

)} @@ -306,13 +306,13 @@ const ScoreDisplay: React.FC = ({ {/* Main Stats */} {mainStats.length > 0 && ( -
+
{mainStats.slice(0, 4).map(([key, value]) => ( -
-

+

+

{getDisplayName(key)}

-

+

{renderValue(value, key)}

@@ -335,7 +335,7 @@ const ScoreDisplay: React.FC = ({
{others.map(([key, value]) => ( -
+
{getDisplayName(key)}: @@ -350,7 +350,7 @@ const ScoreDisplay: React.FC = ({ {/* Timestamp */}
-

+

{new Date( typeof timestamp === "number" ? timestamp : timestamp, ).toLocaleDateString()}{" "} @@ -372,21 +372,22 @@ const ScoreDisplay: React.FC = ({ return (

-
- +
+
+
{tableKeys.map((key) => ( ))} {showActions && ( - )} @@ -408,10 +409,10 @@ const ScoreDisplay: React.FC = ({ className="hover:bg-slate-800/30 transition-colors group" > {tableKeys.map((key) => ( - ))} {showActions && ( -
{key === "judgements" ? ( {getDisplayName(key)} ) : ( + Actions + {key === "lamp" || key === "diff_lamp" ? (
- + {score[key] || "No Clear"}
@@ -420,7 +421,7 @@ const ScoreDisplay: React.FC = ({ {renderValue(score[key], key, true)} ) : key === "timestamp" ? ( - + {new Date( typeof score[key] === "number" ? score[key] @@ -428,7 +429,7 @@ const ScoreDisplay: React.FC = ({ ).toLocaleDateString()} ) : key === "username" ? ( - + {score[key] || "Unknown"} ) : ( @@ -441,13 +442,13 @@ const ScoreDisplay: React.FC = ({
+ diff --git a/frontend/src/components/modals/JsonUploadModal.tsx b/frontend/src/components/modals/JsonUploadModal.tsx index 7d8f838..3bb2b9b 100644 --- a/frontend/src/components/modals/JsonUploadModal.tsx +++ b/frontend/src/components/modals/JsonUploadModal.tsx @@ -77,7 +77,7 @@ const JsonUploadModal = ({ isOpen, onClose, onUpload, game }: JsonUploadModalPro /> {/* Modal */} -
+
{/* Header */}
-- cgit v1.2.3