diff --git a/js/components/PlaylistWindow/ScrollBar.js b/js/components/PlaylistWindow/ScrollBar.tsx
similarity index 52%
rename from js/components/PlaylistWindow/ScrollBar.js
rename to js/components/PlaylistWindow/ScrollBar.tsx
index c7680dd6..9a6a4d64 100644
--- a/js/components/PlaylistWindow/ScrollBar.js
+++ b/js/components/PlaylistWindow/ScrollBar.tsx
@@ -1,16 +1,25 @@
import React from "react";
import { connect } from "react-redux";
-import Slider from "rc-slider/lib/Slider";
+import Slider from "rc-slider";
import { setPlaylistScrollPosition } from "../../actionCreators";
import { getVisibleTrackIds, getPlaylistScrollPosition } from "../../selectors";
+import { AppState, Dispatch } from "../../types";
+
+interface StateProps {
+ playlistScrollPosition: number;
+ allTracksAreVisible: boolean;
+}
+
+interface DispatchProps {
+ setPlaylistScrollPosition: (value: number) => void;
+}
const Handle = () =>
;
-const ScrollBar = props => (
+const ScrollBar = (props: StateProps & DispatchProps) => (
(
/>
);
-const mapDispatchToProps = {
- setPlaylistScrollPosition: position =>
- setPlaylistScrollPosition(100 - position)
+const mapDispatchToProps = (dispatch: Dispatch): DispatchProps => {
+ return {
+ setPlaylistScrollPosition: position =>
+ dispatch(setPlaylistScrollPosition(100 - position))
+ };
};
-const mapStateToProps = state => ({
+const mapStateToProps = (state: AppState): StateProps => ({
playlistScrollPosition: getPlaylistScrollPosition(state),
allTracksAreVisible:
- getVisibleTrackIds(state).length === state.playlist.length
+ getVisibleTrackIds(state).length === state.playlist.trackOrder.length
});
export default connect(
diff --git a/js/components/PlaylistWindow/__snapshots__/index.test.js.snap b/js/components/PlaylistWindow/__snapshots__/index.test.js.snap
index 0ad3db3b..0fca32e0 100644
--- a/js/components/PlaylistWindow/__snapshots__/index.test.js.snap
+++ b/js/components/PlaylistWindow/__snapshots__/index.test.js.snap
@@ -86,7 +86,7 @@ exports[`PlaylistWindow renders to snapshot 1`] = `
className="playlist-middle-right draggable"
>