hedgedoc/html-to-react/src/utils/generatePropsFromAttributes.ts
Tilman Vatteroth 84527f065c feat: import html-to-react from https://github.com/hedgedoc/html-to-react
Signed-off-by: Tilman Vatteroth <git@tilmanvatteroth.de>
2023-08-26 15:07:49 +02:00

34 lines
998 B
TypeScript

/*
* SPDX-FileCopyrightText: 2020 The HedgeDoc developers (see AUTHORS file)
*
* SPDX-License-Identifier: AGPL-3.0-only
*/
import { mapHtmlAttributesToReactElementAttributes } from './mapHtmlAttributesToReactElementAttributes.js'
import { convertInlineStyleToMap } from './convertInlineStyleToMap.js'
/**
* Generates props for a React element from an object of HTML attributes
*
* @param {Object} attributes The HTML attributes
* @param {String} key The key to give the react element
*/
export function generatePropsFromAttributes(
attributes: Record<string, string>,
key: string | number
): Record<string, string | Record<string, string>> {
const props = Object.assign(
{ key },
mapHtmlAttributesToReactElementAttributes(attributes)
) as Record<string, string | Record<string, string>>
if (props.style) {
if (typeof props.style === 'string') {
props.style = convertInlineStyleToMap(props.style)
}
} else {
delete props.style
}
return props
}