1
1
import type { ExtractPropTypes } from 'vue' ;
2
2
import { defineComponent , computed } from 'vue' ;
3
- import { getPropsSlot } from '../_util/props-util' ;
4
3
import PropTypes from '../_util/vue-types' ;
5
4
6
5
export const starProps = {
@@ -24,7 +23,7 @@ export default defineComponent({
24
23
inheritAttrs : false ,
25
24
props : starProps ,
26
25
emits : [ 'hover' , 'click' ] ,
27
- setup ( props , { slots , emit } ) {
26
+ setup ( props , { emit } ) {
28
27
const onHover = ( e : MouseEvent ) => {
29
28
const { index } = props ;
30
29
emit ( 'hover' , e , index ) ;
@@ -61,8 +60,17 @@ export default defineComponent({
61
60
} ) ;
62
61
63
62
return ( ) => {
64
- const { disabled, prefixCls, characterRender, index, count, value } = props ;
65
- const character = getPropsSlot ( slots , props , 'character' ) ;
63
+ const { disabled, prefixCls, characterRender, character, index, count, value } = props ;
64
+ const characterNode =
65
+ typeof character === 'function'
66
+ ? character ( {
67
+ disabled,
68
+ prefixCls,
69
+ index,
70
+ count,
71
+ value,
72
+ } )
73
+ : character ;
66
74
let star = (
67
75
< li class = { cls . value } >
68
76
< div
@@ -75,8 +83,8 @@ export default defineComponent({
75
83
aria-setsize = { count }
76
84
tabindex = { disabled ? - 1 : 0 }
77
85
>
78
- < div class = { `${ prefixCls } -first` } > { character } </ div >
79
- < div class = { `${ prefixCls } -second` } > { character } </ div >
86
+ < div class = { `${ prefixCls } -first` } > { characterNode } </ div >
87
+ < div class = { `${ prefixCls } -second` } > { characterNode } </ div >
80
88
</ div >
81
89
</ li >
82
90
) ;
0 commit comments