[new feature] add divider component (#3755)

This commit is contained in:
neverland
2019-07-04 20:51:43 +08:00
committed by GitHub
parent 6d67f4572c
commit aac691b7eb
12 changed files with 380 additions and 0 deletions
+50
View File
@@ -0,0 +1,50 @@
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
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);