UNPKG

@hedgedoc/html-to-react

Version:

Parse HTML into React components

24 lines 1.07 kB
import booleanAttributes from '../dom/attributes/booleanAttributes.js'; import reactAttributes from '../dom/attributes/reactAttributes.js'; import { isValidTagOrAttributeName } from './isValidTagOrAttributeName.js'; function getParsedAttributeValue(attribute, value) { if (booleanAttributes.has(attribute.toLowerCase())) { value = attribute; } return value; } function isEventHandlerAttribute(attribute) { return attribute.startsWith('on'); } export function mapHtmlAttributesToReactElementAttributes(attributes) { return Object.keys(attributes) .filter((attribute) => !isEventHandlerAttribute(attribute) && isValidTagOrAttributeName(attribute)) .reduce((mappedAttributes, attribute) => { const lowerCaseAttribute = attribute.toLowerCase(); const name = reactAttributes[lowerCaseAttribute] || attribute; mappedAttributes[name] = getParsedAttributeValue(name, attributes[attribute]); return mappedAttributes; }, {}); } //# sourceMappingURL=mapHtmlAttributesToReactElementAttributes.js.map