mirror of
https://github.com/penpot/penpot.git
synced 2025-12-12 06:24:17 +01:00
🐛 Fix paste crash
This commit is contained in:
@@ -17,7 +17,7 @@ import {
|
|||||||
* @param {DataTransfer} clipboardData
|
* @param {DataTransfer} clipboardData
|
||||||
* @returns {DocumentFragment}
|
* @returns {DocumentFragment}
|
||||||
*/
|
*/
|
||||||
function getFormattedFragmentFromClipboardData(clipboardData) {
|
function getFormattedFragmentFromClipboardData(selectionController, clipboardData) {
|
||||||
return mapContentFragmentFromHTML(
|
return mapContentFragmentFromHTML(
|
||||||
clipboardData.getData("text/html"),
|
clipboardData.getData("text/html"),
|
||||||
selectionController.currentStyle,
|
selectionController.currentStyle,
|
||||||
@@ -30,7 +30,7 @@ function getFormattedFragmentFromClipboardData(clipboardData) {
|
|||||||
* @param {DataTransfer} clipboardData
|
* @param {DataTransfer} clipboardData
|
||||||
* @returns {DocumentFragment}
|
* @returns {DocumentFragment}
|
||||||
*/
|
*/
|
||||||
function getPlainFragmentFromClipboardData(clipboardData) {
|
function getPlainFragmentFromClipboardData(selectionController, clipboardData) {
|
||||||
return mapContentFragmentFromString(
|
return mapContentFragmentFromString(
|
||||||
clipboardData.getData("text/plain"),
|
clipboardData.getData("text/plain"),
|
||||||
selectionController.currentStyle,
|
selectionController.currentStyle,
|
||||||
@@ -44,11 +44,11 @@ function getPlainFragmentFromClipboardData(clipboardData) {
|
|||||||
* @param {DataTransfer} clipboardData
|
* @param {DataTransfer} clipboardData
|
||||||
* @returns {DocumentFragment|null}
|
* @returns {DocumentFragment|null}
|
||||||
*/
|
*/
|
||||||
function getFragmentFromClipboardData(clipboardData) {
|
function getFragmentFromClipboardData(selectionController, clipboardData) {
|
||||||
if (clipboardData.types.includes("text/html")) {
|
if (clipboardData.types.includes("text/html")) {
|
||||||
return getFormattedFragmentFromClipboardData(clipboardData)
|
return getFormattedFragmentFromClipboardData(selectionController, clipboardData)
|
||||||
} else if (clipboardData.types.includes("text/plain")) {
|
} else if (clipboardData.types.includes("text/plain")) {
|
||||||
return getPlainFragmentFromClipboardData(clipboardData)
|
return getPlainFragmentFromClipboardData(selectionController, clipboardData)
|
||||||
}
|
}
|
||||||
return null
|
return null
|
||||||
}
|
}
|
||||||
@@ -71,9 +71,9 @@ export function paste(event, editor, selectionController) {
|
|||||||
|
|
||||||
let fragment = null;
|
let fragment = null;
|
||||||
if (editor?.options?.allowHTMLPaste) {
|
if (editor?.options?.allowHTMLPaste) {
|
||||||
fragment = getFragmentFromClipboardData(event.clipboardData);
|
fragment = getFragmentFromClipboardData(selectionController, event.clipboardData);
|
||||||
} else {
|
} else {
|
||||||
fragment = getPlainFragmentFromClipboardData(event.clipboardData);
|
fragment = getPlainFragmentFromClipboardData(selectionController, event.clipboardData);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!fragment) {
|
if (!fragment) {
|
||||||
@@ -85,4 +85,4 @@ export function paste(event, editor, selectionController) {
|
|||||||
} else {
|
} else {
|
||||||
selectionController.replaceWithPaste(fragment);
|
selectionController.replaceWithPaste(fragment);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user