                           :music-files {}
                           :data-downloaded 0
                           :download-progress nil
+                          :is-file-downloading? false
                           :current-track-id nil
                           :current-sound nil
                           :ball-being-dragged? false}))

(.on (new js/ss socket) "file-download"
  (fn [stream track-id file-size]
    (println "Download starting!")
    (.on stream "data"
      (fn [data-chunk]
        (let [size (+ (.-length data-chunk) (:data-downloaded @app-state))]

    (.on stream "end"
      (fn []
        (println "Download complete!")
        (swap! app-state assoc :is-file-downloading? true)
        (swap! app-state assoc :download-progress nil)

        (if (= (:current-track-id @app-state) track-id)
