@appearhere/bloom
Version:
Appear Here's pattern library and styleguide
36 lines (30 loc) • 766 B
JavaScript
import PropTypes from 'prop-types';
import React, { Component } from 'react';
import { canUseDOM } from 'exenv';
const objectFitImages = canUseDOM ? require('object-fit-images') : null;
export default class FittedImage extends Component {
static propTypes = {
src: PropTypes.string.isRequired,
alt: PropTypes.string,
className: PropTypes.string,
};
componentDidMount() {
if (canUseDOM && typeof objectFitImages === 'function') {
objectFitImages(this.component);
}
}
render() {
const { src, alt, className, ...rest } = this.props;
return (
<img
{...rest}
className={className}
src={src}
alt={alt}
ref={c => {
this.component = c;
}}
/>
);
}
}