diff --git a/packages/netlify-cms-core/src/components/Editor/EditorControlPane/Widget.js b/packages/netlify-cms-core/src/components/Editor/EditorControlPane/Widget.js
index 7bfca195..b9aff48d 100644
--- a/packages/netlify-cms-core/src/components/Editor/EditorControlPane/Widget.js
+++ b/packages/netlify-cms-core/src/components/Editor/EditorControlPane/Widget.js
@@ -41,7 +41,7 @@ export default class Widget extends Component {
getAsset: PropTypes.func.isRequired,
resolveWidget: PropTypes.func.isRequired,
getEditorComponents: PropTypes.func.isRequired,
- isFetching: PropTypes.node,
+ isFetching: PropTypes.bool,
query: PropTypes.func.isRequired,
clearSearch: PropTypes.func.isRequired,
queryHits: PropTypes.oneOfType([
diff --git a/packages/netlify-cms-core/src/reducers/search.js b/packages/netlify-cms-core/src/reducers/search.js
index 19f05c06..d7e8b4b6 100644
--- a/packages/netlify-cms-core/src/reducers/search.js
+++ b/packages/netlify-cms-core/src/reducers/search.js
@@ -36,6 +36,7 @@ const entries = (state = defaultState, action) => {
return state.withMutations((map) => {
const entryIds = List(loadedEntries.map(entry => ({ collection: entry.collection, slug: entry.slug })));
map.set('isFetching', false);
+ map.set('fetchID', null);
map.set('page', page);
map.set('term', searchTerm);
map.set('entryIds', (!page || isNaN(page) || page === 0) ? entryIds : map.get('entryIds', List()).concat(entryIds));
@@ -45,6 +46,7 @@ const entries = (state = defaultState, action) => {
if (action.payload.searchTerm !== state.get('term')) {
return state.withMutations((map) => {
map.set('isFetching', action.payload.namespace ? true : false);
+ map.set('fetchID', action.payload.namespace)
map.set('term', action.payload.searchTerm);
});
}
@@ -55,6 +57,7 @@ const entries = (state = defaultState, action) => {
response = action.payload.response;
return state.withMutations((map) => {
map.set('isFetching', false);
+ map.set('fetchID', null);
map.set('term', searchTerm);
map.mergeIn(['queryHits'], Map({ [action.payload.namespace]: response.hits }));
});
diff --git a/packages/netlify-cms-widget-relation/src/RelationControl.js b/packages/netlify-cms-widget-relation/src/RelationControl.js
index 3b6fb568..e96e37ea 100644
--- a/packages/netlify-cms-widget-relation/src/RelationControl.js
+++ b/packages/netlify-cms-widget-relation/src/RelationControl.js
@@ -51,7 +51,8 @@ export default class RelationControl extends React.Component {
forID: PropTypes.string.isRequired,
value: PropTypes.node,
field: PropTypes.node,
- isFetching: PropTypes.node,
+ isFetching: PropTypes.bool,
+ fetchID: PropTypes.string,
query: PropTypes.func.isRequired,
clearSearch: PropTypes.func.isRequired,
queryHits: PropTypes.oneOfType([
@@ -141,6 +142,7 @@ export default class RelationControl extends React.Component {
const {
value,
isFetching,
+ fetchID,
forID,
queryHits,
classNameWrapper,
@@ -172,7 +174,7 @@ export default class RelationControl extends React.Component {
inputProps={inputProps}
focusInputOnSuggestionClick={false}
/>
-
+
);
}