UNPKG

decap-cms-core

Version:

Decap CMS core application, see decap-cms package for the main distribution.

86 lines (83 loc) 2.54 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.DEPLOY_PREVIEW_SUCCESS = exports.DEPLOY_PREVIEW_REQUEST = exports.DEPLOY_PREVIEW_FAILURE = void 0; exports.loadDeployPreview = loadDeployPreview; var _backend = require("../backend"); var _reducers = require("../reducers"); var _notifications = require("./notifications"); const DEPLOY_PREVIEW_REQUEST = exports.DEPLOY_PREVIEW_REQUEST = 'DEPLOY_PREVIEW_REQUEST'; const DEPLOY_PREVIEW_SUCCESS = exports.DEPLOY_PREVIEW_SUCCESS = 'DEPLOY_PREVIEW_SUCCESS'; const DEPLOY_PREVIEW_FAILURE = exports.DEPLOY_PREVIEW_FAILURE = 'DEPLOY_PREVIEW_FAILURE'; function deployPreviewLoading(collection, slug) { return { type: DEPLOY_PREVIEW_REQUEST, payload: { collection, slug } }; } function deployPreviewLoaded(collection, slug, deploy) { const { url, status } = deploy; return { type: DEPLOY_PREVIEW_SUCCESS, payload: { collection, slug, url, status } }; } function deployPreviewError(collection, slug) { return { type: DEPLOY_PREVIEW_FAILURE, payload: { collection, slug } }; } /** * Requests a deploy preview object from the registered backend. */ function loadDeployPreview(collection, slug, entry, published, opts) { return async (dispatch, getState) => { const state = getState(); const backend = (0, _backend.currentBackend)(state.config); const collectionName = collection.get('name'); // Exit if currently fetching const deployState = (0, _reducers.selectDeployPreview)(state, collectionName, slug); if (deployState && deployState.isFetching) { return; } dispatch(deployPreviewLoading(collectionName, slug)); try { /** * `getDeploy` is for published entries, while `getDeployPreview` is for * unpublished entries. */ const deploy = published ? backend.getDeploy(collection, slug, entry) : await backend.getDeployPreview(collection, slug, entry, opts); if (deploy) { return dispatch(deployPreviewLoaded(collectionName, slug, deploy)); } return dispatch(deployPreviewError(collectionName, slug)); } catch (error) { console.error(error); dispatch((0, _notifications.addNotification)({ message: { details: error.message, key: 'ui.toast.onFailToLoadDeployPreview' }, type: 'error', dismissAfter: 8000 })); dispatch(deployPreviewError(collectionName, slug)); } }; }