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

58 lines
1 KiB
TypeScript
Raw Normal View History

2020-05-27 13:57:57 +00:00
import {
reactive,
computed,
defineComponent,
watch,
PropType,
} from '@vue/composition-api';
import {
model,
blockProps,
useActivation,
BlockData,
} from '@components/TreeElement';
import SbBlock from '@internal/Block';
import SbToolbar from '@internal/Toolbar';
import SbBlockPlaceholder from '@internal/BlockPlaceholder';
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,
},
},
setup(props: LayoutProps, context) {
const classes = computed(() => ({
'sb-layout': true,
[`sb-layout_${props.data.orientation}`]: true,
}));
return () => (
<div class={classes.value}>
{...props.data.children.map((child, index) => (
<SbBlock
key={child.blockId}
block={child}
/>
))}
</div>
);
},
});