@hedgedoc/html-to-react
Version:
Parse HTML into React components
24 lines • 1.07 kB
JavaScript
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