diff --git a/react/sagas/show_channel.js b/react/sagas/show_channel.js index f7ac99ef..34d7ecd3 100644 --- a/react/sagas/show_channel.js +++ b/react/sagas/show_channel.js @@ -1,10 +1,18 @@ -import { call, put, takeLatest } from 'redux-saga/effects'; +import {call, put, select, takeLatest} from 'redux-saga/effects'; import * as actions from 'constants/show_action_types'; import { addNewChannelToChannelList, addRequestToRequestList, onRequestError, updateChannelClaims } from 'actions/show'; import { getChannelClaims, getChannelData } from 'api/channelApi'; +import { selectShowState } from 'selectors/show'; function* getNewChannelAndUpdateChannelList (action) { const { requestId, channelName, channelId } = action.data; + const state = yield select(selectShowState); + // is this an existing request? + // If this uri is in the request list, it's already been fetched + if (state.requestList[requestId]) { + console.log('that request already exists in the request list!'); + return null; + } // get channel long id console.log('getting channel long id and short id'); let longId, shortId; @@ -16,6 +24,12 @@ function* getNewChannelAndUpdateChannelList (action) { // store the request in the channel requests list const channelKey = `c#${channelName}#${longId}`; yield put(addRequestToRequestList(requestId, null, channelKey)); + // is this an existing channel? + // If this channel is in the channel list, it's already been fetched + if (state.channelList[channelKey]) { + console.log('that channel already exists in the channel list!'); + return null; + } // get channel claims data console.log('getting channel claims data'); let claimsData;