lbry-desktop/ui/component/downloadProgress/index.js

37 lines
1.2 KiB
JavaScript
Raw Normal View History

2021-10-01 13:00:57 -07:00
import { connect } from 'react-redux';
import DownloadProgress from './view';
2021-10-05 09:20:34 -07:00
import { doSetPlayingUri, doStopDownload, doUpdateDownloadingStatus } from 'redux/actions/content';
import { selectFileInfosByOutpoint } from 'lbry-redux';
import { selectPrimaryUri, selectPlayingUri } from 'redux/selectors/content';
2021-10-01 13:00:57 -07:00
const select = (state) => {
2021-10-05 09:20:34 -07:00
const byOutpoint = selectFileInfosByOutpoint(state);
const runningByOutpoint = [];
const primaryUri = selectPrimaryUri(state);
const playingUri = selectPlayingUri(state);
const uri = playingUri ? playingUri.uri : null;
2021-10-05 09:20:34 -07:00
for (const key in byOutpoint) {
const item = byOutpoint[key];
if (item && item.status === 'running') {
if (
(!primaryUri || !primaryUri.includes(`/${item.claim_name}`)) &&
(!uri || !uri.includes(`/${item.claim_name}`))
) {
runningByOutpoint.push(item);
}
}
2021-10-05 09:20:34 -07:00
}
2021-10-01 13:00:57 -07:00
return {
2021-10-05 09:20:34 -07:00
downloadList: runningByOutpoint,
2021-10-01 13:00:57 -07:00
};
};
const perform = (dispatch) => ({
pause: () => dispatch(doSetPlayingUri({ uri: null })),
2021-10-05 09:20:34 -07:00
updateDownloadingStatus: (outpoint) => dispatch(doUpdateDownloadingStatus(outpoint)),
stopDownload: (outpoint) => dispatch(doStopDownload(outpoint)),
2021-10-01 13:00:57 -07:00
});
export default connect(select, perform)(DownloadProgress);