Files
vant/packages/vant/src/divider/Divider.tsx
2021-12-20 20:20:47 +08:00

36 lines
835 B
TypeScript

import { defineComponent, type ExtractPropTypes } from 'vue';
import { truthProp, makeStringProp, createNamespace } from '../utils';
const [name, bem] = createNamespace('divider');
export type DividerContentPosition = 'left' | 'center' | 'right';
const dividerProps = {
dashed: Boolean,
hairline: truthProp,
contentPosition: makeStringProp<DividerContentPosition>('center'),
};
export type DividerProps = ExtractPropTypes<typeof dividerProps>;
export default defineComponent({
name,
props: dividerProps,
setup(props, { slots }) {
return () => (
<div
role="separator"
class={bem({
dashed: props.dashed,
hairline: props.hairline,
[`content-${props.contentPosition}`]: !!slots.default,
})}
>
{slots.default?.()}
</div>
);
},
});