vant/src/divider/index.tsx
2020-01-19 19:29:30 +08:00

53 lines
1.1 KiB
TypeScript

// Utils
import { createNamespace } from '../utils';
import { inherit } from '../utils/functional';
// Types
import { CreateElement, RenderContext } from 'vue/types';
import { DefaultSlots } from '../utils/types';
export type DividerProps = {
dashed?: boolean;
hairline: boolean;
borderColor?: string;
contentPosition: 'left' | 'center' | 'right';
};
const [createComponent, bem] = createNamespace('divider');
function Divider(
h: CreateElement,
props: DividerProps,
slots: DefaultSlots,
ctx: RenderContext
) {
return (
<div
role="separator"
style={{ borderColor: props.borderColor }}
class={bem({
dashed: props.dashed,
hairline: props.hairline,
[`content-${props.contentPosition}`]: slots.default,
})}
{...inherit(ctx, true)}
>
{slots.default && slots.default()}
</div>
);
}
Divider.props = {
dashed: Boolean,
hairline: {
type: Boolean,
default: true,
},
contentPosition: {
type: String,
default: 'center',
},
};
export default createComponent<DividerProps>(Divider);