Skip to content

Bug: Login screen Theme and Language settings stuck (v0.25.3) #5440

@BatuhanAri

Description

@BatuhanAri

Pre-submission Checklist

  • I have searched the existing issues and this bug has not been reported yet
  • I have tested this issue on the demo site or the latest version

Where did you encounter this bug?

Latest stable version (self-hosted)

Memos Version

(v0.25.3)

Bug Description

Describe the bug
I am unable to change the Theme (Dark/Light mode) and Language settings on the Login screen. The UI elements appear to be unresponsive; selecting a different language or toggling the theme does not update the interface.

To Reproduce
Steps to reproduce the behavior:

  1. Go to the 'Login Screen' (fresh instance or logged out).
  2. Click on the 'Language Selector' dropdown.
  3. Click on the 'Theme Toggle' button.
  4. Observe that neither the language nor the theme changes visually.

Expected behavior
The application should switch the UI language and toggle the theme immediately upon selection.

Environment info

  • Version: 0.25.3 (Docker image neosmemo/memos:stable)
  • Database: SQLite (Schema v0.25.1)
  • Browser: [Chrome / Firefox / Safari - Kullandığını buraya yaz]
  • OS: [Windows / macOS / Linux - Kullandığını buraya yaz]

Additional Context

  • Important: I checked the official demo version, and this issue does NOT occur there. It works perfectly in the demo but fails in this Docker version (v0.25.3).
  • No errors appear in the browser console.

Possible Root Cause (Technical Analysis)
I analyzed the bundled JS code for the Theme Selector component (likely exported as T) in my local instance. There appears to be a logic condition that prevents the global theme setter from running if an onValueChange prop is present.

Current logic found in the minified bundle:
const a = s => { t ? t(s) : r.setTheme(s) };

If the Login page passes an onValueChange handler (prop t), the r.setTheme(s) function is never executed. It seems the component is blocking the global state update when a parent handler is provided.

Steps to Reproduce

  1. Deploy a fresh Memos instance using Docker (v0.25.3):
    docker run -d -p 5230:5230 neosmemo/memos:stable
  2. Open http://localhost:5230 in an Incognito/Private window (to ensure no cache/session).
  3. Stay on the Sign In page (do not log in).
  4. Attempt to change the Language using the dropdown menu at the bottom.
  5. Attempt to toggle the Theme button (Sun/Moon icon).

Expected Behavior

The UI should immediately update to reflect the selected Language or Theme. For example, selecting a new language should translate the interface text instantly, and clicking the theme toggle should switch between Light and Dark modes, just like it does in the official demo.

Screenshots & Additional Context

Image

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions