Skip to content

Commit 301522a

Browse files
chore(release): 1.8.0 [skip ci]
# [1.8.0](v1.7.3...v1.8.0) (2023-05-12) ### Features * add overrideComponentsRootStyles helper ([93f46b0](93f46b0))
1 parent 93f46b0 commit 301522a

File tree

5 files changed

+54
-4
lines changed

5 files changed

+54
-4
lines changed

CHANGELOG.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,10 @@
1+
# [1.8.0](https://github.com/ocadotechnology/codeforlife-package-javascript/compare/v1.7.3...v1.8.0) (2023-05-12)
2+
3+
4+
### Features
5+
6+
* add overrideComponentsRootStyles helper ([93f46b0](https://github.com/ocadotechnology/codeforlife-package-javascript/commit/93f46b060ed7995cf243b4efd58590456dec1528))
7+
18
## [1.7.3](https://github.com/ocadotechnology/codeforlife-package-javascript/compare/v1.7.2...v1.7.3) (2023-05-12)
29

310

lib/cjs/helpers.d.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,10 @@
11
import React from 'react';
2-
import { DividerProps } from '@mui/material';
2+
import { DividerProps, Theme, ThemeOptions } from '@mui/material';
33
export declare function openInNewTab(url: string, target?: string): void;
44
export declare function insertDividerBetweenElements({ elements, dividerProps }: {
55
elements: React.ReactElement[];
66
dividerProps?: DividerProps;
77
}): React.ReactElement[];
88
export declare function stringToBoolean(value: string): boolean;
99
export declare function getSearchParams(requiredParams?: Record<string, (value: string) => any>, optionalParams?: Record<string, (value: string) => any>): Record<string, any> | null;
10+
export declare function overrideComponentsRootStyles(keys: Array<keyof NonNullable<ThemeOptions['components']>>, rootStyleOverrides: Record<string, any>, theme?: Theme): Theme;

lib/cjs/helpers.js

Lines changed: 22 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
1414
return (mod && mod.__esModule) ? mod : { "default": mod };
1515
};
1616
Object.defineProperty(exports, "__esModule", { value: true });
17-
exports.getSearchParams = exports.stringToBoolean = exports.insertDividerBetweenElements = exports.openInNewTab = void 0;
17+
exports.overrideComponentsRootStyles = exports.getSearchParams = exports.stringToBoolean = exports.insertDividerBetweenElements = exports.openInNewTab = void 0;
1818
var react_1 = __importDefault(require("react"));
1919
var react_router_dom_1 = require("react-router-dom");
2020
var material_1 = require("@mui/material");
@@ -55,3 +55,24 @@ function getSearchParams(requiredParams, optionalParams) {
5555
}));
5656
}
5757
exports.getSearchParams = getSearchParams;
58+
function overrideComponentsRootStyles(keys, rootStyleOverrides, theme) {
59+
var _a;
60+
theme = theme !== null && theme !== void 0 ? theme : (0, material_1.useTheme)();
61+
var components = (_a = theme.components) !== null && _a !== void 0 ? _a : {};
62+
components = __assign(__assign({}, components), Object.fromEntries(keys.map(function (key) {
63+
var _a;
64+
var component = (_a = components[key]) !== null && _a !== void 0 ? _a : {};
65+
;
66+
var styleOverrides = ('styleOverrides' in component) ? component.styleOverrides : {};
67+
component = __assign(__assign({}, component), { styleOverrides: __assign(__assign({}, styleOverrides), { root: function (_a) {
68+
var ownerState = _a.ownerState;
69+
return (__assign(__assign(__assign({}, (typeof styleOverrides.root === 'function' &&
70+
styleOverrides.root({ ownerState: ownerState }))), (typeof styleOverrides.root === 'object' &&
71+
styleOverrides.root)), rootStyleOverrides));
72+
} }) });
73+
return [key, component];
74+
})));
75+
return (0, material_1.createTheme)(theme, { components: components });
76+
}
77+
exports.overrideComponentsRootStyles = overrideComponentsRootStyles;
78+
;

lib/esm/helpers.d.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,10 @@
11
import React from 'react';
2-
import { DividerProps } from '@mui/material';
2+
import { DividerProps, Theme, ThemeOptions } from '@mui/material';
33
export declare function openInNewTab(url: string, target?: string): void;
44
export declare function insertDividerBetweenElements({ elements, dividerProps }: {
55
elements: React.ReactElement[];
66
dividerProps?: DividerProps;
77
}): React.ReactElement[];
88
export declare function stringToBoolean(value: string): boolean;
99
export declare function getSearchParams(requiredParams?: Record<string, (value: string) => any>, optionalParams?: Record<string, (value: string) => any>): Record<string, any> | null;
10+
export declare function overrideComponentsRootStyles(keys: Array<keyof NonNullable<ThemeOptions['components']>>, rootStyleOverrides: Record<string, any>, theme?: Theme): Theme;

lib/esm/helpers.js

Lines changed: 21 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ var __assign = (this && this.__assign) || function () {
1111
};
1212
import React from 'react';
1313
import { useSearchParams } from 'react-router-dom';
14-
import { Divider } from '@mui/material';
14+
import { Divider, useTheme, createTheme } from '@mui/material';
1515
export function openInNewTab(url, target) {
1616
if (target === void 0) { target = '_blank'; }
1717
window.open(url, target);
@@ -45,3 +45,23 @@ export function getSearchParams(requiredParams, optionalParams) {
4545
return [key, value(searchParams.get(key))];
4646
}));
4747
}
48+
export function overrideComponentsRootStyles(keys, rootStyleOverrides, theme) {
49+
var _a;
50+
theme = theme !== null && theme !== void 0 ? theme : useTheme();
51+
var components = (_a = theme.components) !== null && _a !== void 0 ? _a : {};
52+
components = __assign(__assign({}, components), Object.fromEntries(keys.map(function (key) {
53+
var _a;
54+
var component = (_a = components[key]) !== null && _a !== void 0 ? _a : {};
55+
;
56+
var styleOverrides = ('styleOverrides' in component) ? component.styleOverrides : {};
57+
component = __assign(__assign({}, component), { styleOverrides: __assign(__assign({}, styleOverrides), { root: function (_a) {
58+
var ownerState = _a.ownerState;
59+
return (__assign(__assign(__assign({}, (typeof styleOverrides.root === 'function' &&
60+
styleOverrides.root({ ownerState: ownerState }))), (typeof styleOverrides.root === 'object' &&
61+
styleOverrides.root)), rootStyleOverrides));
62+
} }) });
63+
return [key, component];
64+
})));
65+
return createTheme(theme, { components: components });
66+
}
67+
;

0 commit comments

Comments
 (0)