mirror of
https://github.com/captbaritone/webamp.git
synced 2026-01-23 10:15:31 +00:00
Memoize track ordering
This commit is contained in:
parent
d2eb18fb1f
commit
3045733c63
4 changed files with 20 additions and 5 deletions
|
|
@ -18,6 +18,7 @@ import {
|
|||
SET_FOCUSED_WINDOW,
|
||||
SET_PLAYLIST_SCROLL_POSITION
|
||||
} from "../../actionTypes";
|
||||
import { getOrderedTracks } from "../../selectors";
|
||||
import { play, pause, stop, openFileDialog } from "../../actionCreators";
|
||||
|
||||
import "../../../css/playlist-window.css";
|
||||
|
|
@ -148,15 +149,14 @@ const mapDispatchToProps = (dispatch, ownProps) => ({
|
|||
const mapStateToProps = state => {
|
||||
const {
|
||||
windows: { focused },
|
||||
display: { skinPlaylistStyle, playlistScrollPosition, playlistSize },
|
||||
playlist: { trackOrder }
|
||||
display: { skinPlaylistStyle, playlistScrollPosition, playlistSize }
|
||||
} = state;
|
||||
return {
|
||||
focused,
|
||||
skinPlaylistStyle,
|
||||
playlistScrollPosition,
|
||||
playlistSize,
|
||||
trackOrder: trackOrder.filter(id => state.tracks[id])
|
||||
trackOrder: getOrderedTracks(state)
|
||||
};
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
import { denormalize } from "./utils";
|
||||
import { BANDS } from "./constants";
|
||||
import { createSelector } from "reselect";
|
||||
|
||||
export const getEqfData = state => {
|
||||
// state.equalizer.sliders
|
||||
|
|
@ -17,3 +18,12 @@ export const getEqfData = state => {
|
|||
};
|
||||
return eqfData;
|
||||
};
|
||||
|
||||
const getTracks = state => state.tracks;
|
||||
const getTrackOrder = state => state.playlist.trackOrder;
|
||||
|
||||
export const getOrderedTracks = createSelector(
|
||||
getTracks,
|
||||
getTrackOrder,
|
||||
(tracks, trackOrder) => trackOrder.filter(id => tracks[id])
|
||||
);
|
||||
|
|
|
|||
|
|
@ -15,9 +15,9 @@
|
|||
"tdd": "jest --watch",
|
||||
"deploy": "ssh jordaneldredge.com HASH=$HASH sh < scripts/deploy.sh",
|
||||
"revert": "ssh jordaneldredge.com sh < scripts/revert.sh",
|
||||
"format":
|
||||
"format":
|
||||
"prettier --write js/**/*.js css/**/*.css webpack.config.js webpack.production.config.js",
|
||||
"build-skin":
|
||||
"build-skin":
|
||||
"rm skins/base-2.91.wsz && cd skins/base-2.91 && zip -x .* -x 'Skining Updates.txt' -r ../base-2.91.wsz .",
|
||||
"skin-info": "unzip -vl skins/base-2.91.wsz"
|
||||
},
|
||||
|
|
@ -73,6 +73,7 @@
|
|||
"redux": "^3.5.2",
|
||||
"redux-devtools-extension": "^2.13.2",
|
||||
"redux-thunk": "^2.1.0",
|
||||
"reselect": "^3.0.1",
|
||||
"webpack": "^3.6.0",
|
||||
"winamp-eqf": "^1.0.0"
|
||||
},
|
||||
|
|
|
|||
|
|
@ -5125,6 +5125,10 @@ requires-port@1.0.x, requires-port@1.x.x:
|
|||
version "1.0.0"
|
||||
resolved "https://registry.yarnpkg.com/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff"
|
||||
|
||||
reselect@^3.0.1:
|
||||
version "3.0.1"
|
||||
resolved "https://registry.yarnpkg.com/reselect/-/reselect-3.0.1.tgz#efdaa98ea7451324d092b2b2163a6a1d7a9a2147"
|
||||
|
||||
resolve-from@^1.0.0:
|
||||
version "1.0.1"
|
||||
resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-1.0.1.tgz#26cbfe935d1aeeeabb29bc3fe5aeb01e93d44226"
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue