1
0
Fork 0
mirror of https://github.com/heyarne/airsonic-ui.git synced 2026-05-06 18:33:38 +02:00

Change icon based on volume level

This commit is contained in:
heyarne 2019-02-20 18:51:39 +01:00
commit 6e1664327f
2 changed files with 20 additions and 12 deletions

View file

@ -93,7 +93,7 @@
(rf/reg-sub (rf/reg-sub
:audio/playlist :audio/playlist
(fn [_ _] (rf/subscribe [:audio/summary])) :<- [:audio/summary]
playlist) playlist)
(defn current-song (defn current-song
@ -104,7 +104,7 @@
(rf/reg-sub (rf/reg-sub
:audio/current-song :audio/current-song
(fn [_ _] (rf/subscribe [:audio/playlist])) :<- [:audio/playlist]
current-song) current-song)
(defn playback-status (defn playback-status
@ -114,7 +114,7 @@
(rf/reg-sub (rf/reg-sub
:audio/playback-status :audio/playback-status
(fn [_ _] (rf/subscribe [:audio/summary])) :<- [:audio/summary]
playback-status) playback-status)
(defn is-playing? (defn is-playing?
@ -125,5 +125,5 @@
(rf/reg-sub (rf/reg-sub
:audio/is-playing? :audio/is-playing?
(fn [_ _] (rf/subscribe [:audio/playback-status])) :<- [:audio/playback-status]
is-playing?) is-playing?)

View file

@ -104,15 +104,23 @@
:on-mouse-move #(when (= 1 (.-buttons %)) :on-mouse-move #(when (= 1 (.-buttons %))
(set-volume %))}]])) (set-volume %))}]]))
(def toggle-volume-slider #(swap! volume-slider-visible? not))
(def hide-volume-slider #(reset! volume-slider-visible? false))
(defn volume-controls [playback-status] (defn volume-controls [playback-status]
[:div.button-controls.volume-controls (let [volume (:volume playback-status)
(when @volume-slider-visible? volume-icon (cond
[:div.button-menu (> volume 0.66) :volume-high
[:div.button-menu-closer {:on-click #(reset! volume-slider-visible? false)}] (> volume 0.1) :volume-low
[volume-slider (:volume playback-status)]]) :else :volume-off)]
[:p.control>button.button.is-light [:div.button-controls.volume-controls
{:on-click #(swap! volume-slider-visible? not)} (when @volume-slider-visible?
[icon :volume-high]]]) [:div.button-menu
[:div.button-menu-closer {:on-click hide-volume-slider}]
[volume-slider volume]])
[:p.control>button.button.is-light
{:on-click toggle-volume-slider}
[icon volume-icon]]]))
(defn playback-mode-controls [playlist] (defn playback-mode-controls [playlist]
(let [{:keys [repeat-mode playback-mode]} playlist (let [{:keys [repeat-mode playback-mode]} playlist