html-to-json-parser removed
This commit is contained in:
parent
e82beb868a
commit
6da2e4f0e5
|
@ -66,6 +66,7 @@ module.exports = {
|
||||||
'unicorn/consistent-function-scoping': 'warn',
|
'unicorn/consistent-function-scoping': 'warn',
|
||||||
'unicorn/no-array-callback-reference': 'warn',
|
'unicorn/no-array-callback-reference': 'warn',
|
||||||
'unicorn/no-array-method-this-argument': 'warn',
|
'unicorn/no-array-method-this-argument': 'warn',
|
||||||
|
'unicorn/no-for-loop': 'off',
|
||||||
|
|
||||||
'sonarjs/no-duplicate-string': ['warn', { threshold: 5 }],
|
'sonarjs/no-duplicate-string': ['warn', { threshold: 5 }],
|
||||||
|
|
||||||
|
|
19
package-lock.json
generated
19
package-lock.json
generated
|
@ -88,7 +88,6 @@
|
||||||
"fast-deep-equal": "3.1.3",
|
"fast-deep-equal": "3.1.3",
|
||||||
"graphql": "16.6.0",
|
"graphql": "16.6.0",
|
||||||
"graphql-tag": "2.12.6",
|
"graphql-tag": "2.12.6",
|
||||||
"html-to-json-parser": "1.1.0",
|
|
||||||
"husky": "8.0.3",
|
"husky": "8.0.3",
|
||||||
"hygen": "6.2.11",
|
"hygen": "6.2.11",
|
||||||
"i18next-http-backend": "2.2.0",
|
"i18next-http-backend": "2.2.0",
|
||||||
|
@ -10657,15 +10656,6 @@
|
||||||
"url": "https://github.com/sponsors/sindresorhus"
|
"url": "https://github.com/sponsors/sindresorhus"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/html-to-json-parser": {
|
|
||||||
"version": "1.1.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/html-to-json-parser/-/html-to-json-parser-1.1.0.tgz",
|
|
||||||
"integrity": "sha512-j6JiUBhIQkC+guahmh0VKwQRrnsROpUaRWAQyRlu5tp6atQg9ljeU70eBtpHSJwNALFNo//VOozvif7AQlfOtA==",
|
|
||||||
"dev": true,
|
|
||||||
"dependencies": {
|
|
||||||
"xmldom": "^0.6.0"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/htmlparser2": {
|
"node_modules/htmlparser2": {
|
||||||
"version": "8.0.2",
|
"version": "8.0.2",
|
||||||
"resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-8.0.2.tgz",
|
"resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-8.0.2.tgz",
|
||||||
|
@ -19702,15 +19692,6 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/xmldom": {
|
|
||||||
"version": "0.6.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/xmldom/-/xmldom-0.6.0.tgz",
|
|
||||||
"integrity": "sha512-iAcin401y58LckRZ0TkI4k0VSM1Qg0KGSc3i8rU+xrxe19A/BN1zHyVSJY7uoutVlaTSzYyk/v5AmkewAP7jtg==",
|
|
||||||
"dev": true,
|
|
||||||
"engines": {
|
|
||||||
"node": ">=10.0.0"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/y-prosemirror": {
|
"node_modules/y-prosemirror": {
|
||||||
"version": "1.2.1",
|
"version": "1.2.1",
|
||||||
"resolved": "https://registry.npmjs.org/y-prosemirror/-/y-prosemirror-1.2.1.tgz",
|
"resolved": "https://registry.npmjs.org/y-prosemirror/-/y-prosemirror-1.2.1.tgz",
|
||||||
|
|
|
@ -109,7 +109,6 @@
|
||||||
"fast-deep-equal": "3.1.3",
|
"fast-deep-equal": "3.1.3",
|
||||||
"graphql": "16.6.0",
|
"graphql": "16.6.0",
|
||||||
"graphql-tag": "2.12.6",
|
"graphql-tag": "2.12.6",
|
||||||
"html-to-json-parser": "1.1.0",
|
|
||||||
"husky": "8.0.3",
|
"husky": "8.0.3",
|
||||||
"hygen": "6.2.11",
|
"hygen": "6.2.11",
|
||||||
"i18next-http-backend": "2.2.0",
|
"i18next-http-backend": "2.2.0",
|
||||||
|
|
|
@ -3,7 +3,6 @@ import type { Editor, JSONContent } from '@tiptap/core'
|
||||||
import { Icon } from '../../_shared/Icon'
|
import { Icon } from '../../_shared/Icon'
|
||||||
import { InlineForm } from '../InlineForm'
|
import { InlineForm } from '../InlineForm'
|
||||||
import styles from './EditorFloatingMenu.module.scss'
|
import styles from './EditorFloatingMenu.module.scss'
|
||||||
import HTMLParser from 'html-to-json-parser'
|
|
||||||
import { useLocalize } from '../../../context/localize'
|
import { useLocalize } from '../../../context/localize'
|
||||||
import { Modal } from '../../Nav/Modal'
|
import { Modal } from '../../Nav/Modal'
|
||||||
import { Menu } from './Menu'
|
import { Menu } from './Menu'
|
||||||
|
@ -20,10 +19,17 @@ type FloatingMenuProps = {
|
||||||
}
|
}
|
||||||
|
|
||||||
const embedData = async (data) => {
|
const embedData = async (data) => {
|
||||||
const result = (await HTMLParser(data, false)) as JSONContent
|
const element = document.createRange().createContextualFragment(data)
|
||||||
if ('type' in result && result.type === 'iframe') {
|
const { attributes } = element.firstChild as HTMLIFrameElement
|
||||||
return result.attributes
|
|
||||||
|
const result: { src: string } = { src: '' }
|
||||||
|
|
||||||
|
for (let i = 0; i < attributes.length; i++) {
|
||||||
|
const attribute = attributes[i]
|
||||||
|
result[attribute.name] = attribute.value
|
||||||
}
|
}
|
||||||
|
|
||||||
|
return result
|
||||||
}
|
}
|
||||||
|
|
||||||
export const EditorFloatingMenu = (props: FloatingMenuProps) => {
|
export const EditorFloatingMenu = (props: FloatingMenuProps) => {
|
||||||
|
@ -39,8 +45,8 @@ export const EditorFloatingMenu = (props: FloatingMenuProps) => {
|
||||||
}
|
}
|
||||||
|
|
||||||
const validateEmbed = async (value) => {
|
const validateEmbed = async (value) => {
|
||||||
const iframeData = (await HTMLParser(value, false)) as JSONContent
|
const element = document.createRange().createContextualFragment(value)
|
||||||
if (iframeData.type !== 'iframe') {
|
if (element.firstChild?.nodeName !== 'IFRAME') {
|
||||||
return t('Error')
|
return t('Error')
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue
Block a user