@equinor/fusion-react-utils
Version:
Helper and util functions for React
30 lines • 1.13 kB
JavaScript
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