mirror of
https://github.com/idanoo/GoScrobble.git
synced 2024-11-25 09:55:15 +00:00
65 lines
1.8 KiB
JavaScript
65 lines
1.8 KiB
JavaScript
|
import _extends from "@babel/runtime/helpers/esm/extends";
|
||
|
import PropTypes from 'prop-types';
|
||
|
import { chainPropTypes } from '@material-ui/utils';
|
||
|
import merge from './merge';
|
||
|
|
||
|
function omit(input, fields) {
|
||
|
const output = {};
|
||
|
Object.keys(input).forEach(prop => {
|
||
|
if (fields.indexOf(prop) === -1) {
|
||
|
output[prop] = input[prop];
|
||
|
}
|
||
|
});
|
||
|
return output;
|
||
|
}
|
||
|
|
||
|
let warnedOnce = false;
|
||
|
|
||
|
function styleFunctionSx(styleFunction) {
|
||
|
const newStyleFunction = props => {
|
||
|
const output = styleFunction(props);
|
||
|
|
||
|
if (props.css) {
|
||
|
return _extends({}, merge(output, styleFunction(_extends({
|
||
|
theme: props.theme
|
||
|
}, props.css))), omit(props.css, [styleFunction.filterProps]));
|
||
|
}
|
||
|
|
||
|
if (props.sx) {
|
||
|
return _extends({}, merge(output, styleFunction(_extends({
|
||
|
theme: props.theme
|
||
|
}, props.sx))), omit(props.sx, [styleFunction.filterProps]));
|
||
|
}
|
||
|
|
||
|
return output;
|
||
|
};
|
||
|
|
||
|
newStyleFunction.propTypes = process.env.NODE_ENV !== 'production' ? _extends({}, styleFunction.propTypes, {
|
||
|
css: chainPropTypes(PropTypes.object, props => {
|
||
|
if (!warnedOnce && props.css !== undefined) {
|
||
|
warnedOnce = true;
|
||
|
return new Error('Material-UI: The `css` prop is deprecated, please use the `sx` prop instead.');
|
||
|
}
|
||
|
|
||
|
return null;
|
||
|
}),
|
||
|
sx: PropTypes.object
|
||
|
}) : {};
|
||
|
newStyleFunction.filterProps = ['css', 'sx', ...styleFunction.filterProps];
|
||
|
return newStyleFunction;
|
||
|
}
|
||
|
/**
|
||
|
*
|
||
|
* @deprecated
|
||
|
* The css style function is deprecated. Use the `styleFunctionSx` instead.
|
||
|
*/
|
||
|
|
||
|
|
||
|
export function css(styleFunction) {
|
||
|
if (process.env.NODE_ENV !== 'production') {
|
||
|
console.warn('Material-UI: The `css` function is deprecated. Use the `styleFunctionSx` instead.');
|
||
|
}
|
||
|
|
||
|
return styleFunctionSx(styleFunction);
|
||
|
}
|
||
|
export default styleFunctionSx;
|