47 lines
1.8 KiB
TypeScript
47 lines
1.8 KiB
TypeScript
/**
|
|
* @deprecated Not used internally. Use `MediaQueryListEvent` from lib.dom.d.ts instead.
|
|
*/
|
|
export interface MuiMediaQueryListEvent {
|
|
matches: boolean;
|
|
}
|
|
/**
|
|
* @deprecated Not used internally. Use `MediaQueryList` from lib.dom.d.ts instead.
|
|
*/
|
|
export interface MuiMediaQueryList {
|
|
matches: boolean;
|
|
addListener: (listener: MuiMediaQueryListListener) => void;
|
|
removeListener: (listener: MuiMediaQueryListListener) => void;
|
|
}
|
|
/**
|
|
* @deprecated Not used internally. Use `(event: MediaQueryListEvent) => void` instead.
|
|
*/
|
|
export type MuiMediaQueryListListener = (event: MuiMediaQueryListEvent) => void;
|
|
export interface UseMediaQueryOptions {
|
|
/**
|
|
* As `window.matchMedia()` is unavailable on the server,
|
|
* it returns a default matches during the first mount.
|
|
* @default false
|
|
*/
|
|
defaultMatches?: boolean;
|
|
/**
|
|
* You can provide your own implementation of matchMedia.
|
|
* This can be used for handling an iframe content window.
|
|
*/
|
|
matchMedia?: typeof window.matchMedia;
|
|
/**
|
|
* To perform the server-side hydration, the hook needs to render twice.
|
|
* A first time with `defaultMatches`, the value of the server, and a second time with the resolved value.
|
|
* This double pass rendering cycle comes with a drawback: it's slower.
|
|
* You can set this option to `true` if you use the returned value **only** client-side.
|
|
* @default false
|
|
*/
|
|
noSsr?: boolean;
|
|
/**
|
|
* You can provide your own implementation of `matchMedia`, it's used when rendering server-side.
|
|
*/
|
|
ssrMatchMedia?: (query: string) => {
|
|
matches: boolean;
|
|
};
|
|
}
|
|
export default function useMediaQuery<Theme = unknown>(queryInput: string | ((theme: Theme) => string), options?: UseMediaQueryOptions): boolean;
|