@mui/system 6.0.0-alpha.8 → 6.0.0-beta.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +407 -3
- package/Container/createContainer.js +0 -2
- package/DefaultPropsProvider/DefaultPropsProvider.d.ts +12 -0
- package/DefaultPropsProvider/DefaultPropsProvider.js +64 -0
- package/DefaultPropsProvider/index.d.ts +1 -0
- package/DefaultPropsProvider/index.js +1 -0
- package/DefaultPropsProvider/package.json +6 -0
- package/{cssVars/getInitColorSchemeScript.d.ts → InitColorSchemeScript/InitColorSchemeScript.d.ts} +9 -2
- package/{cssVars/getInitColorSchemeScript.js → InitColorSchemeScript/InitColorSchemeScript.js} +9 -2
- package/InitColorSchemeScript/index.d.ts +2 -0
- package/InitColorSchemeScript/index.js +1 -0
- package/InitColorSchemeScript/package.json +6 -0
- package/ThemeProvider/ThemeProvider.js +5 -1
- package/Unstable_Grid/Grid.js +5 -81
- package/Unstable_Grid/GridProps.d.ts +12 -97
- package/Unstable_Grid/createGrid.js +36 -55
- package/Unstable_Grid/gridClasses.js +1 -1
- package/Unstable_Grid/gridGenerator.d.ts +3 -10
- package/Unstable_Grid/gridGenerator.js +10 -19
- package/createStyled/createStyled.js +7 -10
- package/createTheme/applyStyles.d.ts +1 -1
- package/createTheme/applyStyles.js +1 -1
- package/createTheme/createTheme.d.ts +1 -1
- package/cssContainerQueries/cssContainerQueries.js +4 -4
- package/cssVars/createCssVarsProvider.d.ts +3 -3
- package/cssVars/createCssVarsProvider.js +2 -2
- package/cssVars/index.d.ts +0 -1
- package/cssVars/index.js +0 -1
- package/cssVars/useCurrentColorScheme.js +1 -1
- package/index.js +1 -1
- package/modern/Container/createContainer.js +0 -2
- package/modern/DefaultPropsProvider/DefaultPropsProvider.js +64 -0
- package/modern/DefaultPropsProvider/index.js +1 -0
- package/modern/{cssVars/getInitColorSchemeScript.js → InitColorSchemeScript/InitColorSchemeScript.js} +9 -2
- package/modern/InitColorSchemeScript/index.js +1 -0
- package/modern/ThemeProvider/ThemeProvider.js +5 -1
- package/modern/Unstable_Grid/Grid.js +5 -81
- package/modern/Unstable_Grid/createGrid.js +36 -55
- package/modern/Unstable_Grid/gridClasses.js +1 -1
- package/modern/Unstable_Grid/gridGenerator.js +10 -19
- package/modern/createStyled/createStyled.js +7 -10
- package/modern/createTheme/applyStyles.js +1 -1
- package/modern/cssContainerQueries/cssContainerQueries.js +4 -4
- package/modern/cssVars/createCssVarsProvider.js +2 -2
- package/modern/cssVars/index.js +0 -1
- package/modern/cssVars/useCurrentColorScheme.js +1 -1
- package/modern/index.js +1 -1
- package/modern/useMediaQuery/useMediaQuery.js +5 -27
- package/node/Container/createContainer.js +0 -2
- package/node/DefaultPropsProvider/DefaultPropsProvider.js +73 -0
- package/node/DefaultPropsProvider/index.js +20 -0
- package/node/{cssVars/getInitColorSchemeScript.js → InitColorSchemeScript/InitColorSchemeScript.js} +11 -3
- package/node/InitColorSchemeScript/index.js +13 -0
- package/node/ThemeProvider/ThemeProvider.js +5 -1
- package/node/Unstable_Grid/Grid.js +5 -81
- package/node/Unstable_Grid/createGrid.js +39 -58
- package/node/Unstable_Grid/gridClasses.js +1 -1
- package/node/Unstable_Grid/gridGenerator.js +10 -19
- package/node/createStyled/createStyled.js +7 -10
- package/node/createTheme/applyStyles.js +1 -1
- package/node/cssContainerQueries/cssContainerQueries.js +4 -4
- package/node/cssVars/createCssVarsProvider.js +5 -5
- package/node/cssVars/index.js +0 -7
- package/node/cssVars/useCurrentColorScheme.js +3 -3
- package/node/index.js +1 -1
- package/node/useMediaQuery/useMediaQuery.js +5 -26
- package/package.json +5 -5
- package/useMediaQuery/useMediaQuery.d.ts +0 -18
- package/useMediaQuery/useMediaQuery.js +5 -27
|
@@ -68,6 +68,11 @@ function processStyleArg(callableStyle, {
|
|
|
68
68
|
...props
|
|
69
69
|
}));
|
|
70
70
|
}
|
|
71
|
+
const mergedState = {
|
|
72
|
+
...props,
|
|
73
|
+
...ownerState,
|
|
74
|
+
ownerState
|
|
75
|
+
};
|
|
71
76
|
if (!!resolvedStylesArg && typeof resolvedStylesArg === 'object' && Array.isArray(resolvedStylesArg.variants)) {
|
|
72
77
|
const {
|
|
73
78
|
variants = [],
|
|
@@ -77,11 +82,7 @@ function processStyleArg(callableStyle, {
|
|
|
77
82
|
variants.forEach(variant => {
|
|
78
83
|
let isMatch = true;
|
|
79
84
|
if (typeof variant.props === 'function') {
|
|
80
|
-
isMatch = variant.props(
|
|
81
|
-
ownerState,
|
|
82
|
-
...props,
|
|
83
|
-
...ownerState
|
|
84
|
-
});
|
|
85
|
+
isMatch = variant.props(mergedState);
|
|
85
86
|
} else {
|
|
86
87
|
Object.keys(variant.props).forEach(key => {
|
|
87
88
|
if ((ownerState == null ? void 0 : ownerState[key]) !== variant.props[key] && props[key] !== variant.props[key]) {
|
|
@@ -93,11 +94,7 @@ function processStyleArg(callableStyle, {
|
|
|
93
94
|
if (!Array.isArray(result)) {
|
|
94
95
|
result = [result];
|
|
95
96
|
}
|
|
96
|
-
result.push(typeof variant.style === 'function' ? variant.style(
|
|
97
|
-
ownerState,
|
|
98
|
-
...props,
|
|
99
|
-
...ownerState
|
|
100
|
-
}) : variant.style);
|
|
97
|
+
result.push(typeof variant.style === 'function' ? variant.style(mergedState) : variant.style);
|
|
101
98
|
}
|
|
102
99
|
});
|
|
103
100
|
return result;
|
|
@@ -8,7 +8,7 @@ exports.default = applyStyles;
|
|
|
8
8
|
* A universal utility to style components with multiple color modes. Always use it from the theme object.
|
|
9
9
|
* It works with:
|
|
10
10
|
* - [Basic theme](https://mui.com/material-ui/customization/dark-mode/)
|
|
11
|
-
* - [CSS theme variables](https://mui.com/material-ui/
|
|
11
|
+
* - [CSS theme variables](https://mui.com/material-ui/customization/css-theme-variables/overview/)
|
|
12
12
|
* - Zero-runtime engine
|
|
13
13
|
*
|
|
14
14
|
* Tips: Use an array over object spread and place `theme.applyStyles()` last.
|
|
@@ -37,10 +37,10 @@ function sortContainerQueries(theme, css) {
|
|
|
37
37
|
});
|
|
38
38
|
}
|
|
39
39
|
function isCqShorthand(breakpointKeys, value) {
|
|
40
|
-
return value.startsWith('@') && (breakpointKeys.some(key => value.startsWith(`@${key}`)) || !!value.match(/^@\d/));
|
|
40
|
+
return value === '@' || value.startsWith('@') && (breakpointKeys.some(key => value.startsWith(`@${key}`)) || !!value.match(/^@\d/));
|
|
41
41
|
}
|
|
42
42
|
function getContainerQuery(theme, shorthand) {
|
|
43
|
-
const matches = shorthand.match(/^@([^/]+)
|
|
43
|
+
const matches = shorthand.match(/^@([^/]+)?\/?(.+)?$/);
|
|
44
44
|
if (!matches) {
|
|
45
45
|
if (process.env.NODE_ENV !== 'production') {
|
|
46
46
|
throw new Error(process.env.NODE_ENV !== "production" ? `MUI: The provided shorthand ${`(${shorthand})`} is invalid. The format should be \`@<breakpoint | number>\` or \`@<breakpoint | number>/<container>\`.
|
|
@@ -49,7 +49,7 @@ For example, \`@sm\` or \`@600\` or \`@40rem/sidebar\`.` : (0, _formatMuiErrorMe
|
|
|
49
49
|
return null;
|
|
50
50
|
}
|
|
51
51
|
const [, containerQuery, containerName] = matches;
|
|
52
|
-
const value = Number.isNaN(+containerQuery) ? containerQuery : +containerQuery;
|
|
52
|
+
const value = Number.isNaN(+containerQuery) ? containerQuery || 0 : +containerQuery;
|
|
53
53
|
return theme.containerQueries(containerName).up(value);
|
|
54
54
|
}
|
|
55
55
|
function cssContainerQueries(themeInput) {
|
|
@@ -63,7 +63,7 @@ function cssContainerQueries(themeInput) {
|
|
|
63
63
|
const result = toContainerQuery(themeInput.breakpoints.not(...args), name);
|
|
64
64
|
if (result.includes('not all and')) {
|
|
65
65
|
// `@container` does not work with `not all and`, so need to invert the logic
|
|
66
|
-
return result.replace('not all and ', '').replace('min-width:', 'width<').replace('max-width:', 'width>');
|
|
66
|
+
return result.replace('not all and ', '').replace('min-width:', 'width<').replace('max-width:', 'width>').replace('and', 'or');
|
|
67
67
|
}
|
|
68
68
|
return result;
|
|
69
69
|
};
|
|
@@ -12,7 +12,7 @@ var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
|
12
12
|
var _styledEngine = require("@mui/styled-engine");
|
|
13
13
|
var _privateTheming = require("@mui/private-theming");
|
|
14
14
|
var _ThemeProvider = _interopRequireDefault(require("../ThemeProvider"));
|
|
15
|
-
var
|
|
15
|
+
var _InitColorSchemeScript = _interopRequireWildcard(require("../InitColorSchemeScript/InitColorSchemeScript"));
|
|
16
16
|
var _useCurrentColorScheme = _interopRequireDefault(require("./useCurrentColorScheme"));
|
|
17
17
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
18
18
|
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
|
|
@@ -28,9 +28,9 @@ function createCssVarsProvider(options) {
|
|
|
28
28
|
* It should also ideally have a vars object created using `prepareCssVars`.
|
|
29
29
|
*/
|
|
30
30
|
theme: defaultTheme = {},
|
|
31
|
-
attribute: defaultAttribute =
|
|
32
|
-
modeStorageKey: defaultModeStorageKey =
|
|
33
|
-
colorSchemeStorageKey: defaultColorSchemeStorageKey =
|
|
31
|
+
attribute: defaultAttribute = _InitColorSchemeScript.DEFAULT_ATTRIBUTE,
|
|
32
|
+
modeStorageKey: defaultModeStorageKey = _InitColorSchemeScript.DEFAULT_MODE_STORAGE_KEY,
|
|
33
|
+
colorSchemeStorageKey: defaultColorSchemeStorageKey = _InitColorSchemeScript.DEFAULT_COLOR_SCHEME_STORAGE_KEY,
|
|
34
34
|
defaultMode: designSystemMode = 'light',
|
|
35
35
|
defaultColorScheme: designSystemColorScheme,
|
|
36
36
|
disableTransitionOnChange: designSystemTransitionOnChange = false,
|
|
@@ -310,7 +310,7 @@ function createCssVarsProvider(options) {
|
|
|
310
310
|
} : void 0;
|
|
311
311
|
const defaultLightColorScheme = typeof designSystemColorScheme === 'string' ? designSystemColorScheme : designSystemColorScheme.light;
|
|
312
312
|
const defaultDarkColorScheme = typeof designSystemColorScheme === 'string' ? designSystemColorScheme : designSystemColorScheme.dark;
|
|
313
|
-
const getInitColorSchemeScript = params => (0,
|
|
313
|
+
const getInitColorSchemeScript = params => (0, _InitColorSchemeScript.default)({
|
|
314
314
|
attribute: defaultAttribute,
|
|
315
315
|
colorSchemeStorageKey: defaultColorSchemeStorageKey,
|
|
316
316
|
defaultMode: designSystemMode,
|
package/node/cssVars/index.js
CHANGED
|
@@ -17,12 +17,6 @@ Object.defineProperty(exports, "default", {
|
|
|
17
17
|
return _createCssVarsProvider.default;
|
|
18
18
|
}
|
|
19
19
|
});
|
|
20
|
-
Object.defineProperty(exports, "getInitColorSchemeScript", {
|
|
21
|
-
enumerable: true,
|
|
22
|
-
get: function () {
|
|
23
|
-
return _getInitColorSchemeScript.default;
|
|
24
|
-
}
|
|
25
|
-
});
|
|
26
20
|
Object.defineProperty(exports, "prepareCssVars", {
|
|
27
21
|
enumerable: true,
|
|
28
22
|
get: function () {
|
|
@@ -36,7 +30,6 @@ Object.defineProperty(exports, "prepareTypographyVars", {
|
|
|
36
30
|
}
|
|
37
31
|
});
|
|
38
32
|
var _createCssVarsProvider = _interopRequireDefault(require("./createCssVarsProvider"));
|
|
39
|
-
var _getInitColorSchemeScript = _interopRequireDefault(require("./getInitColorSchemeScript"));
|
|
40
33
|
var _prepareCssVars = _interopRequireDefault(require("./prepareCssVars"));
|
|
41
34
|
var _prepareTypographyVars = _interopRequireDefault(require("./prepareTypographyVars"));
|
|
42
35
|
var _createCssVarsTheme = _interopRequireDefault(require("./createCssVarsTheme"));
|
|
@@ -8,7 +8,7 @@ exports.default = useCurrentColorScheme;
|
|
|
8
8
|
exports.getColorScheme = getColorScheme;
|
|
9
9
|
exports.getSystemMode = getSystemMode;
|
|
10
10
|
var React = _interopRequireWildcard(require("react"));
|
|
11
|
-
var
|
|
11
|
+
var _InitColorSchemeScript = require("../InitColorSchemeScript/InitColorSchemeScript");
|
|
12
12
|
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
|
|
13
13
|
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
14
14
|
function getSystemMode(mode) {
|
|
@@ -63,8 +63,8 @@ function useCurrentColorScheme(options) {
|
|
|
63
63
|
defaultLightColorScheme,
|
|
64
64
|
defaultDarkColorScheme,
|
|
65
65
|
supportedColorSchemes = [],
|
|
66
|
-
modeStorageKey =
|
|
67
|
-
colorSchemeStorageKey =
|
|
66
|
+
modeStorageKey = _InitColorSchemeScript.DEFAULT_MODE_STORAGE_KEY,
|
|
67
|
+
colorSchemeStorageKey = _InitColorSchemeScript.DEFAULT_COLOR_SCHEME_STORAGE_KEY,
|
|
68
68
|
storageWindow = typeof window === 'undefined' ? undefined : window
|
|
69
69
|
} = options;
|
|
70
70
|
const joinedColorSchemes = supportedColorSchemes.join(',');
|
package/node/index.js
CHANGED
|
@@ -12,18 +12,6 @@ var _useThemeProps = require("../useThemeProps");
|
|
|
12
12
|
var _useThemeWithoutDefault = _interopRequireDefault(require("../useThemeWithoutDefault"));
|
|
13
13
|
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
|
|
14
14
|
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
15
|
-
/**
|
|
16
|
-
* @deprecated Not used internally. Use `MediaQueryListEvent` from lib.dom.d.ts instead.
|
|
17
|
-
*/
|
|
18
|
-
|
|
19
|
-
/**
|
|
20
|
-
* @deprecated Not used internally. Use `MediaQueryList` from lib.dom.d.ts instead.
|
|
21
|
-
*/
|
|
22
|
-
|
|
23
|
-
/**
|
|
24
|
-
* @deprecated Not used internally. Use `(event: MediaQueryListEvent) => void` instead.
|
|
25
|
-
*/
|
|
26
|
-
|
|
27
15
|
function useMediaQueryOld(query, defaultMatches, matchMedia, ssrMatchMedia, noSsr) {
|
|
28
16
|
const [match, setMatch] = React.useState(() => {
|
|
29
17
|
if (noSsr && matchMedia) {
|
|
@@ -38,25 +26,17 @@ function useMediaQueryOld(query, defaultMatches, matchMedia, ssrMatchMedia, noSs
|
|
|
38
26
|
return defaultMatches;
|
|
39
27
|
});
|
|
40
28
|
(0, _useEnhancedEffect.default)(() => {
|
|
41
|
-
let active = true;
|
|
42
29
|
if (!matchMedia) {
|
|
43
30
|
return undefined;
|
|
44
31
|
}
|
|
45
32
|
const queryList = matchMedia(query);
|
|
46
33
|
const updateMatch = () => {
|
|
47
|
-
|
|
48
|
-
// TODO can we remove it?
|
|
49
|
-
// https://github.com/mui/material-ui/pull/17315#issuecomment-528286677
|
|
50
|
-
if (active) {
|
|
51
|
-
setMatch(queryList.matches);
|
|
52
|
-
}
|
|
34
|
+
setMatch(queryList.matches);
|
|
53
35
|
};
|
|
54
36
|
updateMatch();
|
|
55
|
-
|
|
56
|
-
queryList.addListener(updateMatch);
|
|
37
|
+
queryList.addEventListener('change', updateMatch);
|
|
57
38
|
return () => {
|
|
58
|
-
|
|
59
|
-
queryList.removeListener(updateMatch);
|
|
39
|
+
queryList.removeEventListener('change', updateMatch);
|
|
60
40
|
};
|
|
61
41
|
}, [query, matchMedia]);
|
|
62
42
|
return match;
|
|
@@ -84,10 +64,9 @@ function useMediaQueryNew(query, defaultMatches, matchMedia, ssrMatchMedia, noSs
|
|
|
84
64
|
}
|
|
85
65
|
const mediaQueryList = matchMedia(query);
|
|
86
66
|
return [() => mediaQueryList.matches, notify => {
|
|
87
|
-
|
|
88
|
-
mediaQueryList.addListener(notify);
|
|
67
|
+
mediaQueryList.addEventListener('change', notify);
|
|
89
68
|
return () => {
|
|
90
|
-
mediaQueryList.
|
|
69
|
+
mediaQueryList.removeEventListener('change', notify);
|
|
91
70
|
};
|
|
92
71
|
}];
|
|
93
72
|
}, [getDefaultSnapshot, matchMedia, query]);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mui/system",
|
|
3
|
-
"version": "6.0.0-
|
|
3
|
+
"version": "6.0.0-beta.0",
|
|
4
4
|
"private": false,
|
|
5
5
|
"author": "MUI Team",
|
|
6
6
|
"description": "MUI System is a set of CSS utilities to help you build custom designs more efficiently. It makes it possible to rapidly lay out custom designs.",
|
|
@@ -26,13 +26,13 @@
|
|
|
26
26
|
"url": "https://opencollective.com/mui-org"
|
|
27
27
|
},
|
|
28
28
|
"dependencies": {
|
|
29
|
-
"@babel/runtime": "^7.24.
|
|
29
|
+
"@babel/runtime": "^7.24.7",
|
|
30
30
|
"clsx": "^2.1.1",
|
|
31
31
|
"csstype": "^3.1.3",
|
|
32
32
|
"prop-types": "^15.8.1",
|
|
33
|
-
"@mui/private-theming": "
|
|
34
|
-
"@mui/
|
|
35
|
-
"@mui/
|
|
33
|
+
"@mui/private-theming": "6.0.0-beta.0",
|
|
34
|
+
"@mui/utils": "6.0.0-beta.0",
|
|
35
|
+
"@mui/styled-engine": "6.0.0-beta.0",
|
|
36
36
|
"@mui/types": "^7.2.14"
|
|
37
37
|
},
|
|
38
38
|
"peerDependencies": {
|
|
@@ -1,21 +1,3 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @deprecated Not used internally. Use `MediaQueryListEvent` from lib.dom.d.ts instead.
|
|
3
|
-
*/
|
|
4
|
-
export interface MuiMediaQueryListEvent {
|
|
5
|
-
matches: boolean;
|
|
6
|
-
}
|
|
7
|
-
/**
|
|
8
|
-
* @deprecated Not used internally. Use `MediaQueryList` from lib.dom.d.ts instead.
|
|
9
|
-
*/
|
|
10
|
-
export interface MuiMediaQueryList {
|
|
11
|
-
matches: boolean;
|
|
12
|
-
addListener: (listener: MuiMediaQueryListListener) => void;
|
|
13
|
-
removeListener: (listener: MuiMediaQueryListListener) => void;
|
|
14
|
-
}
|
|
15
|
-
/**
|
|
16
|
-
* @deprecated Not used internally. Use `(event: MediaQueryListEvent) => void` instead.
|
|
17
|
-
*/
|
|
18
|
-
export type MuiMediaQueryListListener = (event: MuiMediaQueryListEvent) => void;
|
|
19
1
|
export interface UseMediaQueryOptions {
|
|
20
2
|
/**
|
|
21
3
|
* As `window.matchMedia()` is unavailable on the server,
|
|
@@ -4,19 +4,6 @@ import * as React from 'react';
|
|
|
4
4
|
import useEnhancedEffect from '@mui/utils/useEnhancedEffect';
|
|
5
5
|
import { getThemeProps } from '../useThemeProps';
|
|
6
6
|
import useTheme from '../useThemeWithoutDefault';
|
|
7
|
-
|
|
8
|
-
/**
|
|
9
|
-
* @deprecated Not used internally. Use `MediaQueryListEvent` from lib.dom.d.ts instead.
|
|
10
|
-
*/
|
|
11
|
-
|
|
12
|
-
/**
|
|
13
|
-
* @deprecated Not used internally. Use `MediaQueryList` from lib.dom.d.ts instead.
|
|
14
|
-
*/
|
|
15
|
-
|
|
16
|
-
/**
|
|
17
|
-
* @deprecated Not used internally. Use `(event: MediaQueryListEvent) => void` instead.
|
|
18
|
-
*/
|
|
19
|
-
|
|
20
7
|
function useMediaQueryOld(query, defaultMatches, matchMedia, ssrMatchMedia, noSsr) {
|
|
21
8
|
const [match, setMatch] = React.useState(() => {
|
|
22
9
|
if (noSsr && matchMedia) {
|
|
@@ -31,25 +18,17 @@ function useMediaQueryOld(query, defaultMatches, matchMedia, ssrMatchMedia, noSs
|
|
|
31
18
|
return defaultMatches;
|
|
32
19
|
});
|
|
33
20
|
useEnhancedEffect(() => {
|
|
34
|
-
let active = true;
|
|
35
21
|
if (!matchMedia) {
|
|
36
22
|
return undefined;
|
|
37
23
|
}
|
|
38
24
|
const queryList = matchMedia(query);
|
|
39
25
|
const updateMatch = () => {
|
|
40
|
-
|
|
41
|
-
// TODO can we remove it?
|
|
42
|
-
// https://github.com/mui/material-ui/pull/17315#issuecomment-528286677
|
|
43
|
-
if (active) {
|
|
44
|
-
setMatch(queryList.matches);
|
|
45
|
-
}
|
|
26
|
+
setMatch(queryList.matches);
|
|
46
27
|
};
|
|
47
28
|
updateMatch();
|
|
48
|
-
|
|
49
|
-
queryList.addListener(updateMatch);
|
|
29
|
+
queryList.addEventListener('change', updateMatch);
|
|
50
30
|
return () => {
|
|
51
|
-
|
|
52
|
-
queryList.removeListener(updateMatch);
|
|
31
|
+
queryList.removeEventListener('change', updateMatch);
|
|
53
32
|
};
|
|
54
33
|
}, [query, matchMedia]);
|
|
55
34
|
return match;
|
|
@@ -77,10 +56,9 @@ function useMediaQueryNew(query, defaultMatches, matchMedia, ssrMatchMedia, noSs
|
|
|
77
56
|
}
|
|
78
57
|
const mediaQueryList = matchMedia(query);
|
|
79
58
|
return [() => mediaQueryList.matches, notify => {
|
|
80
|
-
|
|
81
|
-
mediaQueryList.addListener(notify);
|
|
59
|
+
mediaQueryList.addEventListener('change', notify);
|
|
82
60
|
return () => {
|
|
83
|
-
mediaQueryList.
|
|
61
|
+
mediaQueryList.removeEventListener('change', notify);
|
|
84
62
|
};
|
|
85
63
|
}];
|
|
86
64
|
}, [getDefaultSnapshot, matchMedia, query]);
|