schlechtenburg/src/components/user/Layout/display.tsx

52 lines
891 B
TypeScript
Raw Normal View History

2020-05-27 13:57:57 +00:00
import {
computed,
defineComponent,
PropType,
} from '@vue/composition-api';
import {
model,
blockProps,
} from '@components/TreeElement';
import SbBlock from '@internal/Block';
import {
LayoutData,
LayoutProps,
getDefaultData,
} from './util';
import './style.scss';
export default defineComponent({
name: 'sb-layout-display',
model,
props: {
...blockProps,
data: {
type: (null as unknown) as PropType<LayoutData>,
default: getDefaultData,
},
},
2020-05-27 15:32:35 +00:00
setup(props: LayoutProps) {
2020-05-27 13:57:57 +00:00
const classes = computed(() => ({
'sb-layout': true,
[`sb-layout_${props.data.orientation}`]: true,
}));
return () => (
<div class={classes.value}>
2020-05-27 15:32:35 +00:00
{...props.data.children.map((child) => (
2020-05-27 13:57:57 +00:00
<SbBlock
key={child.blockId}
block={child}
/>
))}
</div>
);
},
});