From 92a020e06f32bf06151a5987305371c70e059ea4 Mon Sep 17 00:00:00 2001 From: Klesti Selimaj Date: Fri, 3 Apr 2026 16:01:36 +0200 Subject: [PATCH] Improved account switcher button --- src/App.tsx | 164 +++++++++++++++++++++++++++++++++------------------- 1 file changed, 104 insertions(+), 60 deletions(-) diff --git a/src/App.tsx b/src/App.tsx index 9e5aa24..4063bec 100644 --- a/src/App.tsx +++ b/src/App.tsx @@ -1,36 +1,46 @@ -import React, { useState, useEffect } from 'react' -import { Play, Puzzle, Settings, ChevronDown, User, LogOut, Check } from 'lucide-react' -import { launcherService, type GameVersion } from './services/LauncherService' -import { clsx, type ClassValue } from 'clsx' -import { twMerge } from 'tailwind-merge' +import React, { useState, useEffect } from "react"; +import { + Play, + Puzzle, + Settings, + ChevronDown, + Check, + User, + LogOut, +} from "lucide-react"; +import { launcherService, type GameVersion } from "./services/LauncherService"; +import { clsx, type ClassValue } from "clsx"; +import { twMerge } from "tailwind-merge"; // Utility for merging tailwind classes function cn(...inputs: ClassValue[]) { - return twMerge(clsx(inputs)) + return twMerge(clsx(inputs)); } // Components -import PlaySection from './components/PlaySection' -import ModsSection from './components/ModsSection' -import SettingsSection from './components/SettingsSection' +import PlaySection from "./components/PlaySection"; +import ModsSection from "./components/ModsSection"; +import SettingsSection from "./components/SettingsSection"; -type Section = 'play' | 'mods' | 'settings' +type Section = "play" | "mods" | "settings"; const App: React.FC = () => { - const [activeSection, setActiveSection] = useState
('play') - const [versions, setVersions] = useState([]) - const [selectedVersion, setSelectedVersion] = useState(null) - const [isVersionDropdownOpen, setIsVersionDropdownOpen] = useState(false) - const [isAccountDropdownOpen, setIsAccountDropdownOpen] = useState(false) + const [activeSection, setActiveSection] = useState
("play"); + const [versions, setVersions] = useState([]); + const [selectedVersion, setSelectedVersion] = useState( + null, + ); + const [isVersionDropdownOpen, setIsVersionDropdownOpen] = useState(false); + const [isAccountDropdownOpen, setIsAccountDropdownOpen] = useState(false); useEffect(() => { const fetchVersions = async () => { - const v = await launcherService.getVersions() - setVersions(v) - if (v.length > 0) setSelectedVersion(v[0]) - } - fetchVersions() - }, []) + const v = await launcherService.getVersions(); + setVersions(v); + if (v.length > 0) setSelectedVersion(v[0]); + }; + fetchVersions(); + }, []); return (
@@ -41,30 +51,42 @@ const App: React.FC = () => { S
- + @@ -72,26 +94,32 @@ const App: React.FC = () => { {/* Main Content Area */}
{/* Top Bar */} -
+
{/* Version Selector */}
- - + {isVersionDropdownOpen && (
- {versions.map(v => ( + {versions.map((v) => (
- {/* Account Display */} -
- @@ -122,7 +160,9 @@ const App: React.FC = () => {

SaturnDev

-

dev@saturnclient.com

+

+ dev@saturnclient.com +

- ) -} + ); +}; -export default App +export default App;