fix: layout sidebar collapsed, close #5373

pull/5380/head
tangjinzhou 2022-03-21 14:36:16 +08:00
parent cec9414d5c
commit 5d9afb7d1c
1 changed files with 25 additions and 28 deletions

View File

@ -1,15 +1,6 @@
import classNames from '../_util/classNames'; import classNames from '../_util/classNames';
import type { PropType, ExtractPropTypes, CSSProperties } from 'vue'; import type { PropType, ExtractPropTypes, CSSProperties } from 'vue';
import { import { inject, defineComponent, ref, watch, onMounted, onBeforeUnmount, provide } from 'vue';
watchEffect,
inject,
defineComponent,
ref,
watch,
onMounted,
onBeforeUnmount,
provide,
} from 'vue';
import PropTypes from '../_util/vue-types'; import PropTypes from '../_util/vue-types';
import { tuple } from '../_util/type'; import { tuple } from '../_util/type';
import initDefaultProps from '../_util/props-util/initDefaultProps'; import initDefaultProps from '../_util/props-util/initDefaultProps';
@ -123,25 +114,31 @@ export default defineComponent({
siderHook && siderHook.addSider(uniqueId); siderHook && siderHook.addSider(uniqueId);
onMounted(() => { onMounted(() => {
watchEffect(() => { watch(
try { () => props.breakpoint,
mql?.removeEventListener('change', responsiveHandler); () => {
} catch (error) { try {
mql?.removeListener(responsiveHandler); mql?.removeEventListener('change', responsiveHandler);
} } catch (error) {
if (typeof window !== 'undefined') { mql?.removeListener(responsiveHandler);
const { matchMedia } = window;
if (matchMedia! && props.breakpoint && props.breakpoint in dimensionMaxMap) {
mql = matchMedia(`(max-width: ${dimensionMaxMap[props.breakpoint]})`);
try {
mql.addEventListener('change', responsiveHandler);
} catch (error) {
mql.addListener(responsiveHandler);
}
responsiveHandler(mql);
} }
} if (typeof window !== 'undefined') {
}); const { matchMedia } = window;
if (matchMedia! && props.breakpoint && props.breakpoint in dimensionMaxMap) {
mql = matchMedia(`(max-width: ${dimensionMaxMap[props.breakpoint]})`);
try {
mql.addEventListener('change', responsiveHandler);
} catch (error) {
mql.addListener(responsiveHandler);
}
responsiveHandler(mql);
}
}
},
{
immediate: true,
},
);
}); });
onBeforeUnmount(() => { onBeforeUnmount(() => {
try { try {