Files
element-plus/packages/components/container/src/container.vue
三咲智子 55348b30b6 style: use prettier (#3228)
* style: use prettier

* style: just prettier format, no code changes

* style: eslint fix
object-shorthand, prefer-const

* style: fix no-void

* style: no-console
2021-09-04 19:29:28 +08:00

42 lines
940 B
Vue

<template>
<section class="el-container" :class="{ 'is-vertical': isVertical }">
<slot></slot>
</section>
</template>
<script lang="ts">
import { defineComponent, computed } from 'vue'
import type { Component, VNode } from 'vue'
export default defineComponent({
name: 'ElContainer',
props: {
direction: {
type: String,
default: '',
},
},
setup(props, { slots }) {
const isVertical = computed(() => {
if (props.direction === 'vertical') {
return true
} else if (props.direction === 'horizontal') {
return false
}
if (slots && slots.default) {
const vNodes: VNode[] = slots.default()
return vNodes.some((vNode) => {
const tag = (vNode.type as Component).name
return tag === 'ElHeader' || tag === 'ElFooter'
})
} else {
return false
}
})
return {
isVertical,
}
},
})
</script>