= ({
className,
src,
filter = defaultFilter,
...props
}: BackgroundImageProps) => {
const getUrlValue = (size: keyof BackgroundImageSrcMap) => {
if (typeof src === 'string') {
return `url(${src})`;
} else if (typeof src === 'object') {
return `url(${src[size]})`;
}
return '';
};
const filterNum = React.useMemo(() => filterCounter++, []);
const filterId = `patternfly-background-image-filter-overlay${filterNum}`;
const style = {
[cssVar.name]: getUrlValue('xs'),
[cssVarName2x.name]: getUrlValue('xs2x'),
[cssVarNameSm.name]: getUrlValue('sm'),
[cssVarNameSm2x.name]: getUrlValue('sm2x'),
[cssVarNameLg.name]: getUrlValue('lg'),
[cssVarNameFilter.name]: `url(#${filterId})`
} as React.CSSProperties;
return (
);
};
BackgroundImage.displayName = 'BackgroundImage';