From 5489d9909907d65e18d6867717a19f8baebb1ab1 Mon Sep 17 00:00:00 2001 From: Sean Yesmunt Date: Wed, 4 Apr 2018 12:08:27 -0400 Subject: [PATCH] fix: multiple pending publishes when editing --- src/renderer/component/fileCard/index.js | 11 ++++------- src/renderer/component/fileList/view.jsx | 5 +++-- src/renderer/page/fileListPublished/index.js | 4 ++-- src/renderer/page/fileListPublished/view.jsx | 12 ++++++++++-- src/renderer/redux/selectors/publish.js | 12 +++++++++--- 5 files changed, 28 insertions(+), 16 deletions(-) diff --git a/src/renderer/component/fileCard/index.js b/src/renderer/component/fileCard/index.js index 12bc9e649..c7334c1b8 100644 --- a/src/renderer/component/fileCard/index.js +++ b/src/renderer/component/fileCard/index.js @@ -1,4 +1,3 @@ -import React from 'react'; import { connect } from 'react-redux'; import { doNavigate } from 'redux/actions/navigation'; import { doResolveUri } from 'redux/actions/content'; @@ -10,12 +9,10 @@ import { selectPendingPublish } from 'redux/selectors/publish'; import FileCard from './view'; const select = (state, props) => { - let claim; - let fileInfo; - let metadata; - let isResolvingUri; - - const pendingPublish = selectPendingPublish(props.uri)(state); + let pendingPublish; + if (props.checkPending) { + pendingPublish = selectPendingPublish(props.uri)(state); + } const fileCardInfo = pendingPublish || { claim: makeSelectClaimForUri(props.uri)(state), diff --git a/src/renderer/component/fileList/view.jsx b/src/renderer/component/fileList/view.jsx index ae80eecdd..88037eb19 100644 --- a/src/renderer/component/fileList/view.jsx +++ b/src/renderer/component/fileList/view.jsx @@ -25,6 +25,7 @@ type Props = { sortByHeight?: boolean, claimsById: Array<{}>, fileInfos: Array, + checkPending?: boolean, }; type State = { @@ -138,7 +139,7 @@ class FileList extends React.PureComponent { } render() { - const { fileInfos, hideFilter } = this.props; + const { fileInfos, hideFilter, checkPending } = this.props; const { sortBy } = this.state; const content = []; @@ -166,7 +167,7 @@ class FileList extends React.PureComponent { const uri = buildURI(uriParams); - content.push(); + content.push(); }); return ( diff --git a/src/renderer/page/fileListPublished/index.js b/src/renderer/page/fileListPublished/index.js index a053baa3a..8b7546b73 100644 --- a/src/renderer/page/fileListPublished/index.js +++ b/src/renderer/page/fileListPublished/index.js @@ -1,13 +1,13 @@ import { connect } from 'react-redux'; import { selectMyClaimsWithoutChannels } from 'redux/selectors/claims'; -import { selectPendingPublishes } from 'redux/selectors/publish'; +import { selectPendingPublishesLessEdits } from 'redux/selectors/publish'; import { doNavigate } from 'redux/actions/navigation'; import { doCheckPendingPublishes } from 'redux/actions/publish'; import FileListPublished from './view'; const select = state => ({ claims: selectMyClaimsWithoutChannels(state), - pendingPublishes: selectPendingPublishes(state), + pendingPublishes: selectPendingPublishesLessEdits(state), }); const perform = dispatch => ({ diff --git a/src/renderer/page/fileListPublished/view.jsx b/src/renderer/page/fileListPublished/view.jsx index 24b0520d0..5eee36a48 100644 --- a/src/renderer/page/fileListPublished/view.jsx +++ b/src/renderer/page/fileListPublished/view.jsx @@ -1,9 +1,17 @@ +// @flow import React from 'react'; import Button from 'component/button'; import FileList from 'component/fileList'; import Page from 'component/page'; -class FileListPublished extends React.PureComponent { +type Props = { + pendingPublishes: Array<{}>, + claims: Array<{}>, + checkIfPublishesConfirmed: (Array<{}>) => void, + navigate: (string, ?{}) => void, +}; + +class FileListPublished extends React.PureComponent { componentDidMount() { const { pendingPublishes, checkIfPublishesConfirmed } = this.props; if (pendingPublishes.length) { @@ -18,7 +26,7 @@ class FileListPublished extends React.PureComponent { return ( {fileInfos.length ? ( - + ) : (
{__("It looks like you haven't published anything to LBRY yet.")} diff --git a/src/renderer/redux/selectors/publish.js b/src/renderer/redux/selectors/publish.js index 38d7c67cc..21f27d7d1 100644 --- a/src/renderer/redux/selectors/publish.js +++ b/src/renderer/redux/selectors/publish.js @@ -3,9 +3,15 @@ import { parseURI } from 'lbryURI'; const selectState = state => state.publish || {}; -export const selectPendingPublishes = createSelector(selectState, state => { - return state.pendingPublishes.map(pendingClaim => ({ ...pendingClaim, pending: true })) || []; -}); +export const selectPendingPublishes = createSelector( + selectState, + state => state.pendingPublishes.map(pendingClaim => ({ ...pendingClaim, pending: true })) || [] +); + +export const selectPendingPublishesLessEdits = createSelector( + selectPendingPublishes, + pendingPublishes => pendingPublishes.filter(pendingPublish => !pendingPublish.sources) +); export const selectPublishFormValues = createSelector(selectState, state => { const { pendingPublish, ...formValues } = state;