@mui/codemod
Version:
Codemod scripts for Material UI.
70 lines (68 loc) • 1.86 kB
JavaScript
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.MergeClassesNoParams = MergeClassesNoParams;
exports.default = ComponentUsingStyles;
var React = _interopRequireWildcard(require("react"));
var _mui = require("tss-react/mui");
var _jsxRuntime = require("react/jsx-runtime");
/*
Sandboxes for verifying correct behavior:
JSS - https://codesandbox.io/p/sandbox/typescript-case-bt065c?file=/demo.tsx
TSS - https://codesandbox.io/p/sandbox/typescript-case-7jwpms?file=/demo.tsx
*/
const useStyles = (0, _mui.makeStyles)()((theme, _params, classes) => ({
test: {
backgroundColor: "purple",
color: "white",
[`& .${classes.test2}`]: {
backgroundColor: "lime",
color: "blue"
}
},
test2: {
backgroundColor: "blue",
color: "lime"
}
}));
function MergeClassesNoParams({
classes: classesProp
}) {
const {
classes
} = useStyles(undefined, {
props: {
classes: classesProp
}
});
return /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
className: classes.test,
children: "Test useStyles without params but with classes prop"
});
}
function InnerComponent({
classes
}) {
return /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
className: classes.test2,
children: "Inner Test2"
});
}
function ComponentUsingStyles() {
const {
classes
} = useStyles();
return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
className: classes.test,
children: ["Test", /*#__PURE__*/(0, _jsxRuntime.jsx)(InnerComponent, {
classes: classes
})]
}), /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
className: classes.test2,
children: "Outer Test2"
})]
});
}
;