From 62dc650fec20d5b2edbdbfd202b5083dcef96a42 Mon Sep 17 00:00:00 2001 From: erezrokah Date: Thu, 7 Nov 2019 20:34:05 +0200 Subject: [PATCH] fix: don't add media files on entry when not a draft --- .../src/actions/__tests__/mediaLibrary.spec.js | 15 +++++++++++++++ .../src/actions/mediaLibrary.js | 18 ++++++++++-------- 2 files changed, 25 insertions(+), 8 deletions(-) diff --git a/packages/netlify-cms-core/src/actions/__tests__/mediaLibrary.spec.js b/packages/netlify-cms-core/src/actions/__tests__/mediaLibrary.spec.js index 1fe1b6644860..8cd950c50fba 100644 --- a/packages/netlify-cms-core/src/actions/__tests__/mediaLibrary.spec.js +++ b/packages/netlify-cms-core/src/actions/__tests__/mediaLibrary.spec.js @@ -177,6 +177,21 @@ describe('mediaLibrary', () => { createAssetProxy.mockReturnValue(assetProxy); return store.dispatch(persistMedia(file)).then(() => { + const actions = store.getActions(); + + expect(actions).toHaveLength(3); + expect(actions[0]).toEqual({ type: 'MEDIA_PERSIST_REQUEST' }); + expect(actions[1]).toEqual({ + type: 'ADD_ASSET', + payload: { public_path: '/media/name.png' }, + }); + expect(actions[2]).toEqual({ + type: 'MEDIA_PERSIST_SUCCESS', + payload: { + file: { draft: false, id: 'id', displayURL: 'displayURL' }, + }, + }); + expect(backend.persistMedia).toHaveBeenCalledTimes(1); expect(backend.persistMedia).toHaveBeenCalledWith( store.getState().config, diff --git a/packages/netlify-cms-core/src/actions/mediaLibrary.js b/packages/netlify-cms-core/src/actions/mediaLibrary.js index f5e88906b7f4..cb91a9b8bc7f 100644 --- a/packages/netlify-cms-core/src/actions/mediaLibrary.js +++ b/packages/netlify-cms-core/src/actions/mediaLibrary.js @@ -208,14 +208,16 @@ export function persistMedia(file, opts = {}) { const assetId = asset.id || id; const displayURL = asset.displayURL || URL.createObjectURL(file); - dispatch( - addDraftEntryMediaFile({ - ...asset, - id: assetId, - draft, - public_path: assetProxy.public_path, - }), - ); + if (draft) { + dispatch( + addDraftEntryMediaFile({ + ...asset, + id: assetId, + draft, + public_path: assetProxy.public_path, + }), + ); + } return dispatch( mediaPersisted({