From a52c63ea427b895e7267dc8207a5f31b43e7b9ee Mon Sep 17 00:00:00 2001 From: Jordan Eldredge Date: Thu, 11 Oct 2018 20:33:46 -0700 Subject: [PATCH] Type ScrollBar --- .../{ScrollBar.js => ScrollBar.tsx} | 27 +++++++++++++------ .../__snapshots__/index.test.js.snap | 2 +- package.json | 1 + yarn.lock | 13 +++++++++ 4 files changed, 34 insertions(+), 9 deletions(-) rename js/components/PlaylistWindow/{ScrollBar.js => ScrollBar.tsx} (52%) 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" >