import React from 'react' import { connect } from 'react-redux' import { doNavigate, } from 'actions/app' import { doResolveUri, } from 'actions/content' import { makeSelectClaimForUri, makeSelectSourceForUri, makeSelectMetadataForUri, } from 'selectors/claims' import { makeSelectFileInfoForUri, } from 'selectors/file_info' import { makeSelectFetchingAvailabilityForUri, makeSelectAvailabilityForUri, } from 'selectors/availability' import { selectObscureNsfw, } from 'selectors/app' import { makeSelectResolvingUri, } from 'selectors/content' import FileTile from './view' const makeSelect = () => { const selectClaimForUri = makeSelectClaimForUri() const selectFileInfoForUri = makeSelectFileInfoForUri() const selectFetchingAvailabilityForUri = makeSelectFetchingAvailabilityForUri() const selectAvailabilityForUri = makeSelectAvailabilityForUri() const selectMetadataForUri = makeSelectMetadataForUri() const selectSourceForUri = makeSelectSourceForUri() const selectResolvingUri = makeSelectResolvingUri() const select = (state, props) => ({ claim: selectClaimForUri(state, props), fileInfo: selectFileInfoForUri(state, props), fetchingAvailability: selectFetchingAvailabilityForUri(state, props), selectAvailabilityForUri: selectAvailabilityForUri(state, props), obscureNsfw: selectObscureNsfw(state), metadata: selectMetadataForUri(state, props), source: selectSourceForUri(state, props), isResolvingUri: selectResolvingUri(state, props), }) return select } const perform = (dispatch) => ({ navigate: (path, params) => dispatch(doNavigate(path, params)), resolveUri: (uri) => dispatch(doResolveUri(uri)), }) export default connect(makeSelect, perform)(FileTile)