Linux heracles.o2switch.net 4.18.0-553.62.1.lve.el8.x86_64 #1 SMP Mon Jul 21 17:50:35 UTC 2025 x86_64
/
home
/
ophq1335
/
www
/
wp-content
/
themes
/
Divi
/
core
/
code-snippets
/
app
/
store
/
edit
/
/home/ophq1335/www/wp-content/themes/Divi/core/code-snippets/app/store/edit/sequences.js
// External dependencies. import { props, sequence, state, } from 'cerebral'; import { set, wait, when, } from 'cerebral/factories'; // Internal dependencies. import { MODAL_TYPE_EDIT_ITEM, STATE_ERROR, STATE_LOADING, STATE_SUCCESS, } from '@code-snippets/lib/constants'; import { closeModal, openModal, } from '@code-snippets/store/code-snippets-library/factories'; import { downloadSnippetContent } from '@code-snippets/store/code-snippets-library/sequences'; import { saveToCloud, saveToLocal, } from './actions'; const openLocalItemEditor = sequence('Open local item editor', [ set(state`edit.progress`, 10), ({ codeSnippetsLibApi, path, props: { item } }) => codeSnippetsLibApi.getItemContent(item.id, item.type) .then(response => path.success({ snippet: response.snippet })) .catch(() => path.error()), { success: [ set(state`edit.progress`, 90), wait(500), set(state`edit.progress`, 100), wait(200), ({ store, props: { snippet } }) => { store.set(state`edit.snippet`, snippet); }, set(state`edit.progress`, 0), ], error: [ set(state`edit.progress`, 0), ], }, ]); const openCloudItemEditor = sequence('Open cloud item editor', [ set(state`edit.snippet`, props`content.data`), set(state`edit.content`, props`content`), ]); const openEditModal = sequence('Open modal to edit code snippet', [ openModal(MODAL_TYPE_EDIT_ITEM), set(state`edit.item`, props`item`), set(state`edit.context`, props`context`), when(props`item.item_location`, item_location => 'cloud' === item_location), { true: [ openCloudItemEditor, ], false: [ openLocalItemEditor, ], }, ]); const closeEditModal = sequence('Close snippet editor modal', [ closeModal(), set(state`edit.saveState`, null), set(state`edit.item`, null), set(state`edit.snippet`, ''), ]); const saveEditedItemSuccess = sequence('Edited item Saved', [ () => ({needImageRefresh: true}), downloadSnippetContent, set(state`edit.saveState`, STATE_SUCCESS), wait(500), closeEditModal, ]); const saveEditedItemError = sequence('Error while saving edited item', [ set(state`edit.saveState`, STATE_ERROR), wait(500), closeEditModal, ]); const saveEditedContent = sequence('Save editted content', [ set(state`edit.saveState`, STATE_LOADING), when(state`edit.item.item_location`, item_location => 'cloud' === item_location), { true: [ saveToCloud, { success: [ ({ get, props: { content } }) => ({ snippetId: get(state`edit.item.id`), snippetContent: content }), ({ get }) => ({needImageRefresh: true, item_location: get(state`edit.item.item_location`)}), saveEditedItemSuccess, ], error: [ saveEditedItemError, ], }, ], false: [ saveToLocal, { success: [ ({ get }) => ({ snippetId: get(state`edit.item.id`) }), saveEditedItemSuccess, ], error: [ saveEditedItemError, ], }, ], }, ]); export { openEditModal, closeEditModal, saveEditedContent, };