11import type { ExtractPropTypes , HTMLAttributes } from 'vue' ;
2- import { createVNode , defineComponent , provide , ref } from 'vue' ;
2+ import { computed , createVNode , defineComponent , provide , ref } from 'vue' ;
33import PropTypes from '../_util/vue-types' ;
4- import classNames from '../_util/classNames' ;
54import useConfigInject from '../_util/hooks/useConfigInject' ;
65import { SiderHookProviderKey } from './injectionKey' ;
76
@@ -32,7 +31,7 @@ function generator({ suffixCls, tagName, name }: GeneratorArgument) {
3231 prefixCls : prefixCls . value ,
3332 tagName,
3433 } ;
35- return < BasicComponent { ...basicComponentProps } > { slots . default ?. ( ) } </ BasicComponent > ;
34+ return < BasicComponent { ...basicComponentProps } v-slots = { slots } > </ BasicComponent > ;
3635 } ;
3736 } ,
3837 } ) ;
@@ -43,7 +42,7 @@ function generator({ suffixCls, tagName, name }: GeneratorArgument) {
4342const Basic = defineComponent ( {
4443 props : basicProps ,
4544 setup ( props , { slots } ) {
46- return ( ) => createVNode ( props . tagName , { class : props . prefixCls } , slots . default ?. ( ) ) ;
45+ return ( ) => createVNode ( props . tagName , { class : props . prefixCls } , slots ) ;
4746 } ,
4847} ) ;
4948
@@ -62,15 +61,18 @@ const BasicLayout = defineComponent({
6261 } ;
6362
6463 provide ( SiderHookProviderKey , siderHookProvider ) ;
65-
66- return ( ) => {
67- const { prefixCls , hasSider , tagName } = props ;
68- const divCls = classNames ( prefixCls , {
64+ const divCls = computed ( ( ) => {
65+ const { prefixCls , hasSider } = props ;
66+ return {
67+ [ ` ${ prefixCls } ` ] : true ,
6968 [ `${ prefixCls } -has-sider` ] :
7069 typeof hasSider === 'boolean' ? hasSider : siders . value . length > 0 ,
7170 [ `${ prefixCls } -rtl` ] : direction . value === 'rtl' ,
72- } ) ;
73- return createVNode ( tagName , { class : divCls } , slots . default ?.( ) ) ;
71+ } ;
72+ } ) ;
73+ return ( ) => {
74+ const { tagName } = props ;
75+ return createVNode ( tagName , { class : divCls . value } , slots ) ;
7476 } ;
7577 } ,
7678} ) ;
0 commit comments