fix: true mutual exclusion for left rail vs header toolbar; fix rail bottom icons

1. Header left-section (view switcher, days, slot) is now display:none when
   in left-rail mode — previously it was opacity-0 on hover so both were
   visible simultaneously.

2. Left rail bottom now has two distinct buttons:
   - ⚙ Settings (cogwheel) → opens full SettingsSidebar
   - 👤 User → opens UserMenu (same as header avatar, with profile/sign-out)
   Previously a single User icon opened the settings instead.

v1.106.2
This commit is contained in:
mARTin-B78 2026-05-11 08:56:31 +02:00
parent 0e09711432
commit 9104625353
2 changed files with 10 additions and 4 deletions

View File

@ -1,6 +1,6 @@
{ {
"name": "my-weekly-todo-list", "name": "my-weekly-todo-list",
"version": "1.106.1", "version": "1.106.2",
"description": "A web-based weekly task management application that organizes to-dos and calendar events in a single, intuitive weekly view", "description": "A web-based weekly task management application that organizes to-dos and calendar events in a single, intuitive weekly view",
"main": "index.js", "main": "index.js",
"scripts": { "scripts": {

View File

@ -5933,8 +5933,14 @@ export default function WeeklyView() {
<button onClick={() => setDarkMode(!darkMode)} style={{ ...railIconBtnStyle }} title={darkMode ? "Light Mode" : "Dark Mode"}>{darkMode ? <Sun size={15} /> : <Moon size={15} />}</button> <button onClick={() => setDarkMode(!darkMode)} style={{ ...railIconBtnStyle }} title={darkMode ? "Light Mode" : "Dark Mode"}>{darkMode ? <Sun size={15} /> : <Moon size={15} />}</button>
<div style={{ flex: 1 }} /> <div style={{ flex: 1 }} />
{railSep} {railSep}
{/* Settings / User at bottom */} {/* Settings (cogwheel) + User menu at bottom */}
<button onClick={() => setShowSettings(true)} style={{ ...railIconBtnStyle }} title={profile.language === "de" ? "Einstellungen" : "Settings"}><User size={15} /></button> <button onClick={() => setShowSettings(true)} style={{ ...railIconBtnStyle }} title={profile.language === "de" ? "Einstellungen" : "Settings"}><Settings size={15} /></button>
<UserMenu
userEmail={session?.user?.email}
onOpenSettings={() => setShowSettings(true)}
language={profile.language}
trigger={<button style={{ ...railIconBtnStyle }} title={profile.language === "de" ? "Benutzerprofil" : "User profile"}><User size={15} /></button>}
/>
</div> </div>
)} )}
</div> </div>
@ -6080,7 +6086,7 @@ export default function WeeklyView() {
{/* Desktop Header: Left, Center, Right */} {/* Desktop Header: Left, Center, Right */}
<header className="group relative flex items-center justify-between w-full px-4 py-1.5 border-b bg-white dark:bg-gray-900 dark:text-white transition-colors duration-200" style={isMobile ? { display: "none" } : { borderBottomColor: 'var(--line)' }}> <header className="group relative flex items-center justify-between w-full px-4 py-1.5 border-b bg-white dark:bg-gray-900 dark:text-white transition-colors duration-200" style={isMobile ? { display: "none" } : { borderBottomColor: 'var(--line)' }}>
{/* LEFT SECTION: View Switcher, Days, Hours, Slot Duration — only shown in top-toolbar mode */} {/* LEFT SECTION: View Switcher, Days, Hours, Slot Duration — only shown in top-toolbar mode */}
<div className={`weekly-header-controls flex items-center gap-4 ${useLeftRail ? "transition-opacity duration-700 opacity-0 group-hover:opacity-100" : ""}`} style={{ zIndex: 1, ...(showIntroHints ? { opacity: 1 } : {}) }}> <div className="weekly-header-controls flex items-center gap-4" style={{ zIndex: 1, display: useLeftRail ? "none" : undefined, ...(showIntroHints ? { opacity: 1 } : {}) }}>
{/* Quick-settings button (top mode only) */} {/* Quick-settings button (top mode only) */}
{!useLeftRail && ( {!useLeftRail && (
<button <button