corpus

Log | Files | Refs | README | LICENSE

commit 096e7ad5ffa73313e5695abc320a2eda81310ac4
parent ca89de9841db55e7805180efcbf2abd73ab9f3d5
Author: mtmn <miro@haravara.org>
Date:   Sun, 12 Apr 2026 20:51:55 +0200

fix: open cover on click, genre tag css

Diffstat:
Msrc/Client.purs | 13++++++-------
Msrc/Main.purs | 10+++++++---
2 files changed, 13 insertions(+), 10 deletions(-)

diff --git a/src/Client.purs b/src/Client.purs @@ -50,7 +50,7 @@ type State = , loading :: Boolean , currentTime :: Maybe Milliseconds , failedCovers :: Set String - , hoveredCover :: Maybe String + , hoveredCover :: Maybe Int , offset :: Int , limit :: Int , activeTab :: Tab @@ -68,7 +68,7 @@ data Action | SwitchTab Tab | FilterBy String String | ClearFilter - | HoverCover String + | HoverCover Int | UnhoverCover component :: forall query input output m. MonadAff m => H.Component query input output m @@ -203,9 +203,9 @@ component = HH.ul_ [ HH.li [ HP.class_ (H.ClassName "error") ] [ HH.text err ] ] | otherwise = HH.ul [ HP.id "tracks-container" ] - (mapWithIndex (renderListen state.currentTime state.failedCovers) state.listens) + (mapWithIndex (renderListen state.currentTime state.failedCovers state.hoveredCover) state.listens) - renderListen currentTime failedCovers _ (Listen { trackMetadata: TrackMetadata track, listenedAt }) = + renderListen currentTime failedCovers hoveredCover idx (Listen { trackMetadata: TrackMetadata track, listenedAt }) = let release = fromMaybe "" track.releaseName artist = fromMaybe "" track.artistName @@ -253,12 +253,11 @@ component = , HH.div [ HP.class_ (H.ClassName "cover-wrapper") ] [ if Set.member coverUrl failedCovers then HH.text "" else HH.img - [ HP.class_ (H.ClassName "track-cover") + [ HP.class_ (H.ClassName $ "track-cover" <> if hoveredCover == Just idx then " zoomed" else "") , HP.src coverUrl , HP.alt release , HE.onError \_ -> ImageError coverUrl - , HE.onMouseEnter \_ -> HoverCover coverUrl - , HE.onMouseLeave \_ -> UnhoverCover + , HE.onClick \_ -> if hoveredCover == Just idx then UnhoverCover else HoverCover idx ] , case track.genre of Just g -> HH.div [ HP.class_ (H.ClassName "genre-tag") ] [ HH.text g ] diff --git a/src/Main.purs b/src/Main.purs @@ -266,7 +266,7 @@ indexHtml = cursor: pointer; } - .track-cover:hover { + .track-cover.zoomed { transform: scale(5.0); z-index: 10; position: relative; @@ -461,9 +461,14 @@ indexHtml = margin-left: 15px; gap: 4px; flex-shrink: 0; + position: relative; } .genre-tag { + position: absolute; + top: 100%; + left: 50%; + transform: translateX(-50%); font-size: 10px; color: #9fbfe7; text-align: center; @@ -478,13 +483,12 @@ indexHtml = max-width: none; overflow: visible; text-overflow: clip; - position: absolute; background: #521e40; border: 1px solid #50447f; border-radius: 4px; padding: 2px 6px; z-index: 100; - white-space: nowrap; + opacity: 1; } .stat-row {