- this query in some cases can return a very large amount of data, depending on the size of the user's library
- increasing the cacheTime reduces the frequency of fetches while disabling structuralSharing reduces the need for react-query to do a deep equality comparison for the cache
* feat: add sleep timer to player bar
- Add sleep timer button in player bar right controls
- Preset options: End of song, 5/10/15/30/45 min, 1 hr, 2 hrs
- Custom timer with HH:MM:SS input fields
- Timer only counts down while music is playing
- Timer pauses playback when it expires
- End-of-song mode pauses at the next track change
- Uses theme-aware styling (--theme-colors-surface)
- Add sleepTimer/sleepTimerOff icons (LuTimer/LuTimerOff)
- Add i18n strings for sleep timer UI
---------
Co-authored-by: York <york@BonecharMac.local>
Co-authored-by: jeffvli <jeffvictorli@gmail.com>
Updated by "Cleanup translation files" hook in Weblate.
Translated using Weblate (French)
Currently translated at 90.7% (1034 of 1139 strings)
Translated using Weblate (Ukrainian)
Currently translated at 29.0% (331 of 1139 strings)
Translated using Weblate (Danish)
Currently translated at 100.0% (1139 of 1139 strings)
Translated using Weblate (Ukrainian)
Currently translated at 26.5% (302 of 1139 strings)
Translated using Weblate (Ukrainian)
Currently translated at 22.0% (251 of 1139 strings)
Translated using Weblate (Danish)
Currently translated at 90.0% (1026 of 1139 strings)
Translated using Weblate (Danish)
Currently translated at 28.1% (321 of 1139 strings)
Translated using Weblate (Ukrainian)
Currently translated at 9.5% (109 of 1139 strings)
Translated using Weblate (Ukrainian)
Currently translated at 5.7% (66 of 1139 strings)
Translated using Weblate (Czech)
Currently translated at 100.0% (1139 of 1139 strings)
Translated using Weblate (Czech)
Currently translated at 99.7% (1136 of 1139 strings)
Translated using Weblate (Danish)
Currently translated at 4.8% (55 of 1139 strings)
Translated using Weblate (Chinese (Traditional Han script))
Currently translated at 100.0% (1139 of 1139 strings)
Translated using Weblate (Danish)
Currently translated at 0.4% (5 of 1139 strings)
Translated using Weblate (Spanish)
Currently translated at 100.0% (1139 of 1139 strings)
Translated using Weblate (Polish)
Currently translated at 99.9% (1138 of 1139 strings)
Translated using Weblate (Czech)
Currently translated at 100.0% (1135 of 1135 strings)
Translated using Weblate (Dutch)
Currently translated at 99.8% (1133 of 1135 strings)
Translated using Weblate (Dutch)
Currently translated at 84.4% (959 of 1135 strings)
Translated using Weblate (Polish)
Currently translated at 100.0% (1135 of 1135 strings)
Translated using Weblate (Spanish)
Currently translated at 100.0% (1135 of 1135 strings)
Translated using Weblate (Chinese (Traditional Han script))
Currently translated at 100.0% (1135 of 1135 strings)
Translated using Weblate (Spanish)
Currently translated at 100.0% (1131 of 1131 strings)
Translated using Weblate (German)
Currently translated at 78.9% (893 of 1131 strings)
Translated using Weblate (Chinese (Traditional Han script))
Currently translated at 100.0% (1131 of 1131 strings)
Translated using Weblate (Chinese (Traditional Han script))
Currently translated at 92.7% (1047 of 1129 strings)
Translated using Weblate (Polish)
Currently translated at 100.0% (1129 of 1129 strings)
Translated using Weblate (Spanish)
Currently translated at 100.0% (1129 of 1129 strings)
Translated using Weblate (Japanese)
Currently translated at 85.1% (961 of 1129 strings)
Translated using Weblate (Catalan)
Currently translated at 100.0% (1129 of 1129 strings)
Translated using Weblate (Polish)
Currently translated at 100.0% (1129 of 1129 strings)
Co-authored-by: Alexander Welsing <kontakt@a-wels.de>
Co-authored-by: Denisa Alicia Rissa <denisarissa@gmail.com>
Co-authored-by: Fjuro <fjuro@alius.cz>
Co-authored-by: Fordas <fordas15@gmail.com>
Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: KosmoMoustache <kosmomoustache@users.noreply.hosted.weblate.org>
Co-authored-by: Ondo <SparkyOndo@proton.me>
Co-authored-by: York <goog10216922@gmail.com>
Co-authored-by: Yurii <04_hours.lambing@icloud.com>
Co-authored-by: bokse <weblate@bokse.nl>
Co-authored-by: haha4ni <haha4ni@hotmail.com>
Co-authored-by: karigane <169052233+karigane-cha@users.noreply.github.com>
Co-authored-by: skajmer <skajmer@protonmail.com>
Translate-URL: https://hosted.weblate.org/projects/feishin/translation/
Translate-URL: https://hosted.weblate.org/projects/feishin/translation/ca/
Translate-URL: https://hosted.weblate.org/projects/feishin/translation/cs/
Translate-URL: https://hosted.weblate.org/projects/feishin/translation/da/
Translate-URL: https://hosted.weblate.org/projects/feishin/translation/de/
Translate-URL: https://hosted.weblate.org/projects/feishin/translation/es/
Translate-URL: https://hosted.weblate.org/projects/feishin/translation/fr/
Translate-URL: https://hosted.weblate.org/projects/feishin/translation/ja/
Translate-URL: https://hosted.weblate.org/projects/feishin/translation/nl/
Translate-URL: https://hosted.weblate.org/projects/feishin/translation/pl/
Translate-URL: https://hosted.weblate.org/projects/feishin/translation/uk/
Translate-URL: https://hosted.weblate.org/projects/feishin/translation/zh_Hant/
Translation: feishin/Translation
The CommandPalette component was being rendered twice when in mobile view:
1. In ResponsiveLayout via LayoutHotkeys (which handles all layouts)
2. In MobileLayout directly
This caused two overlapping command menus to open when pressing Ctrl+K
in mobile view, with keyboard input going to the background menu.
The fix removes the duplicate CommandPalette from MobileLayout since
LayoutHotkeys already provides it for all layouts (both desktop and mobile).
Fixes#1666
Co-authored-by: Kai Gritun <kai@kaigritun.com>