apphouse
Version:
Component library for React that uses observable state management and theme-able components.
24 lines (21 loc) • 585 B
text/typescript
import { runInAction } from 'mobx';
import { merge } from '../utils/obj/merge';
import { getGutterStyles } from './getGutterStyles';
/**
* helper function to accept overwrite styles and merge with base styles
* @param componentStyles
* @param overwrites
* @returns
*/
export function mergeStyles<T>(
defaultStyles: T,
overwrites?: T,
gutters?: number | string
): T {
let styles = defaultStyles;
runInAction(() => {
const gutterStyles = getGutterStyles(gutters);
styles = merge({}, defaultStyles, overwrites || {}, gutterStyles || {});
});
return styles;
}