UNPKG

@equinor/fusion-react-utils

Version:
30 lines 1.13 kB
import { formatISO } from 'date-fns'; // eslint-disable-next-line @typescript-eslint/ban-types const objectToString = (object) => { switch (object.constructor) { case Date: return formatISO(object); default: return JSON.stringify(object); } }; /** * Utility to remove empty attributes from properties, JSX does not comply with the W3 standard * [W3](https://www.w3.org/TR/2008/WD-html5-20080610/semantics.html#boolean) */ export const elementAttributes = (props) => { return Object.keys(props).reduce((cur, key) => { const value = props[key]; switch (typeof value) { case 'string': return Object.assign(cur, { [key]: value }); case 'object': // eslint-disable-next-line @typescript-eslint/ban-types return Object.assign(cur, { [key]: key === 'style' ? value : objectToString(value) }); default: return value ? Object.assign(cur, { [key]: value }) : cur; } }, {}); }; export default elementAttributes; //# sourceMappingURL=element-attributes.js.map