27 lines
713 B
TypeScript
27 lines
713 B
TypeScript
import { ComponentProps, ComponentType, PureComponent } from "react";
|
|
|
|
import { ThemedSvgProps } from "./hocTypings";
|
|
import { getDisplayName } from "./utils";
|
|
|
|
export function asThemedSvg<C extends ComponentType<ComponentProps<C>>>(
|
|
WrappedComponent: C
|
|
) {
|
|
return class AsThemedSvg extends PureComponent<ThemedSvgProps> {
|
|
static displayName = `asThemedSvg(${getDisplayName(WrappedComponent)})`;
|
|
|
|
static defaultProps = {
|
|
className: "ddbc-svg--themed",
|
|
};
|
|
|
|
render() {
|
|
return (
|
|
<WrappedComponent
|
|
{...(this.props as any)}
|
|
fillColor={this.props.theme.themeColor}
|
|
backgroundColor={this.props.theme.backgroundColor}
|
|
/>
|
|
);
|
|
}
|
|
};
|
|
}
|