diff --git a/src-tauri/src/plugins/config.rs b/src-tauri/src/plugins/config.rs index 5b7de0d33..fb50203e0 100644 --- a/src-tauri/src/plugins/config.rs +++ b/src-tauri/src/plugins/config.rs @@ -76,6 +76,7 @@ pub struct Config { pub auto_update_checker: bool, pub notifications: bool, pub track_view_density: TrackViewDensity, + pub track_view_covers: bool, pub wayland_compat: bool, #[serde(default)] pub menu_bar_visible: bool, @@ -108,6 +109,7 @@ impl Default for Config { auto_update_checker: true, notifications: false, track_view_density: TrackViewDensity::Normal, + track_view_covers: false, wayland_compat: false, menu_bar_visible: false, } diff --git a/src/api/SettingsAPI.ts b/src/api/SettingsAPI.ts index e3544e7df..a93e20a58 100644 --- a/src/api/SettingsAPI.ts +++ b/src/api/SettingsAPI.ts @@ -117,6 +117,10 @@ async function setTracksDensity( await ConfigBridge.set('track_view_density', density); } +async function toggleTracksCovers(value: boolean): Promise { + await ConfigBridge.set('track_view_covers', value); +} + const setUIMainColor = async ( mainColor: Config['ui_accent_color'], ): Promise => { @@ -228,6 +232,7 @@ const SettingsAPI = { setUIMainColor, applyUIMainColorToUI, setTracksDensity, + toggleTracksCovers, checkForUpdate, toggleLibraryAutorefresh, toggleAutoUpdateChecker, diff --git a/src/components/Cover.tsx b/src/components/Cover.tsx index 263fcd77d..84eac65ca 100644 --- a/src/components/Cover.tsx +++ b/src/components/Cover.tsx @@ -8,6 +8,7 @@ import Icon, { type IconSize } from './Icon'; type Props = { track: Track; noHorizontalBorder?: boolean; + decorative?: boolean; iconSize?: IconSize; }; @@ -31,9 +32,9 @@ export default function Cover(props: Props) { {t`Album diff --git a/src/components/PlayingIndicator.tsx b/src/components/PlayingIndicator.tsx index aa256dc4f..b5b7b114f 100644 --- a/src/components/PlayingIndicator.tsx +++ b/src/components/PlayingIndicator.tsx @@ -5,27 +5,46 @@ import { usePlayerState } from '../hooks/usePlayer'; import player from '../lib/player'; import Icon from './Icon'; -export default function TrackPlayingIndicator() { +type Props = { + size?: 'default' | 'large'; +}; + +export default function TrackPlayingIndicator({ size = 'default' }: Props) { const [hovered, setHovered] = useState(false); const isPaused = usePlayerState((state) => state.isPaused); + const isLarge = size === 'large'; const icon = useMemo(() => { if (!isPaused) { if (hovered) { - return ; + return ; } return ( -
-
-
-
+
+
+
+
); } - return ; - }, [isPaused, hovered]); + return ; + }, [isPaused, hovered, isLarge]); return (