Skip to content

Commit a5a3411

Browse files
tangjinzhouajuner
andauthored
refactor: drawer (#4725)
* refactor(drawer): use compositionAPI * refactor(drawer): update * refactor: update * chore: update * docs: update * fix: remove transitionStr * chore: use useConfigInject * refactor: drawer #4708 Co-authored-by: ajuner <[email protected]>
1 parent 4fe3c7a commit a5a3411

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

46 files changed

+2280
-1559
lines changed

components/_util/Portal.jsx

-38
This file was deleted.

components/_util/Portal.tsx

+29
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
import PropTypes from './vue-types';
2+
import { defineComponent, nextTick, onBeforeUnmount, onUpdated, Teleport } from 'vue';
3+
4+
export default defineComponent({
5+
name: 'Portal',
6+
inheritAttrs: false,
7+
props: {
8+
getContainer: PropTypes.func.isRequired,
9+
didUpdate: PropTypes.func,
10+
},
11+
setup(props, { slots }) {
12+
// getContainer 不会改变,不用响应式
13+
const container = props.getContainer();
14+
15+
onUpdated(() => {
16+
nextTick(() => {
17+
props.didUpdate?.(props);
18+
});
19+
});
20+
onBeforeUnmount(() => {
21+
if (container && container.parentNode) {
22+
container.parentNode.removeChild(container);
23+
}
24+
});
25+
return () => {
26+
return container ? <Teleport to={container} v-slots={slots}></Teleport> : null;
27+
};
28+
},
29+
});

components/_util/PortalWrapper.jsx

-150
This file was deleted.

0 commit comments

Comments
 (0)