import { createNamespace } from '../utils'; import { ACTION_BAR_KEY } from '../action-bar'; // Composition import { useParent } from '@vant/use'; import { useRoute, routeProps } from '../composition/use-route'; // Components import Icon from '../icon'; import Badge from '../badge'; const [createComponent, bem] = createNamespace('action-bar-icon'); export default createComponent({ props: { ...routeProps, dot: Boolean, text: String, icon: String, color: String, badge: [Number, String], iconClass: null, }, setup(props, { slots }) { const route = useRoute(); useParent(ACTION_BAR_KEY); const renderIcon = () => { const { dot, badge, icon, color, iconClass } = props; if (slots.icon) { return (
{slots.icon()}
); } return ( ); }; return () => (
{renderIcon()} {slots.default ? slots.default() : props.text}
); }, });