All Downloads are FREE. Search and download functionalities are using the official Maven repository.

META-INF.resources.page_editor.app.thunks.pasteItems.js Maven / Gradle / Ivy

The newest version!
/**
 * SPDX-FileCopyrightText: (c) 2000 Liferay, Inc. https://liferay.com
 * SPDX-License-Identifier: LGPL-2.1-or-later OR LicenseRef-Liferay-DXP-EULA-2.0.0-2023-06
 */

import pasteItemAction from '../actions/pasteItems';
import {ITEM_ACTIVATION_ORIGINS} from '../config/constants/itemActivationOrigins';
import FragmentService from '../services/FragmentService';
import sortItemIds from '../utils/sortItemIds';
import filterSelectedItems from './filterSelectedItems';

export default function pasteItems({
	clipboard = [],
	parentItemId,
	selectItems = () => {},
}) {
	return (dispatch, getState) => {
		const {layoutData, segmentsExperienceId} = getState();

		FragmentService.pasteItems({
			itemIds: sortItemIds(
				filterSelectedItems(clipboard, layoutData.items),
				layoutData
			),
			onNetworkStatus: dispatch,
			parentItemId,
			segmentsExperienceId,
		}).then(
			({
				copiedFragmentEntryLinks,
				copiedItemIds,
				layoutData: nextLayoutData,
				restrictedItemIds,
			}) => {
				dispatch(
					pasteItemAction({
						addedFragmentEntryLinks: copiedFragmentEntryLinks,
						itemIds: copiedItemIds,
						layoutData: nextLayoutData,
						restrictedItemIds,
					})
				);

				if (copiedItemIds) {
					selectItems(
						filterSelectedItems(
							copiedItemIds,
							nextLayoutData.items
						),
						{
							origin: ITEM_ACTIVATION_ORIGINS.itemActions,
						}
					);
				}
			}
		);
	};
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy