32 lines
639 B
Vue
32 lines
639 B
Vue
interface IndentProps {
|
|
prefixCls: string;
|
|
level: number;
|
|
isStart: boolean[];
|
|
isEnd: boolean[];
|
|
}
|
|
|
|
const Indent = ({ prefixCls, level, isStart, isEnd }: IndentProps) => {
|
|
const baseClassName = `${prefixCls}-indent-unit`;
|
|
const list = [];
|
|
for (let i = 0; i < level; i += 1) {
|
|
list.push(
|
|
<span
|
|
key={i}
|
|
class={{
|
|
[baseClassName]: true,
|
|
[`${baseClassName}-start`]: isStart[i],
|
|
[`${baseClassName}-end`]: isEnd[i],
|
|
}}
|
|
/>,
|
|
);
|
|
}
|
|
|
|
return (
|
|
<span aria-hidden="true" class={`${prefixCls}-indent`}>
|
|
{list}
|
|
</span>
|
|
);
|
|
};
|
|
|
|
export default Indent;
|