import React from 'react'; import { connect } from 'react-redux'; import { selectPlatform } from 'selectors/app'; import { makeSelectFileInfoForUri, makeSelectDownloadingForUri, makeSelectLoadingForUri } from 'selectors/file_info'; import { makeSelectIsAvailableForUri } from 'selectors/availability'; import { selectCurrentModal } from 'selectors/app'; import { makeSelectCostInfoForUri } from 'selectors/cost_info'; import { doCloseModal, doOpenModal, doHistoryBack } from 'actions/app'; import { doFetchAvailability } from 'actions/availability'; import { doOpenFileInShell, doOpenFileInFolder, doDeleteFile } from 'actions/file_info'; import { doPurchaseUri, doLoadVideo } from 'actions/content'; import FileActions from './view'; const makeSelect = () => { const selectFileInfoForUri = makeSelectFileInfoForUri(); const selectIsAvailableForUri = makeSelectIsAvailableForUri(); const selectDownloadingForUri = makeSelectDownloadingForUri(); const selectCostInfoForUri = makeSelectCostInfoForUri(); const selectLoadingForUri = makeSelectLoadingForUri(); const select = (state, props) => ({ fileInfo: selectFileInfoForUri(state, props), isAvailable: selectIsAvailableForUri(state, props), platform: selectPlatform(state), modal: selectCurrentModal(state), downloading: selectDownloadingForUri(state, props), costInfo: selectCostInfoForUri(state, props), loading: selectLoadingForUri(state, props) }); return select; }; const perform = dispatch => ({ checkAvailability: uri => dispatch(doFetchAvailability(uri)), closeModal: () => dispatch(doCloseModal()), openInFolder: fileInfo => dispatch(doOpenFileInFolder(fileInfo)), openInShell: fileInfo => dispatch(doOpenFileInShell(fileInfo)), deleteFile: (fileInfo, deleteFromComputer) => { dispatch(doHistoryBack()); dispatch(doDeleteFile(fileInfo, deleteFromComputer)); }, openModal: modal => dispatch(doOpenModal(modal)), startDownload: uri => dispatch(doPurchaseUri(uri, 'affirmPurchase')), loadVideo: uri => dispatch(doLoadVideo(uri)) }); export default connect(makeSelect, perform)(FileActions);