schlechtenburg/src/components/internal/Modal.tsx

46 lines
862 B
TypeScript
Raw Normal View History

2020-05-27 13:57:57 +00:00
import {
defineComponent,
computed,
ref,
} from '@vue/composition-api';
import './Modal.scss';
export default defineComponent({
name: 'sb-modal',
props: {
open: {
type: Boolean,
default: false,
},
eventClose: {
type: (Function as unknown) as () => void,
default: () => () => undefined,
},
},
setup(props, context) {
const classes = computed(() => ({
'sb-modal': true,
'sb-modal_open': props.open,
}));
return () => (
<div class={classes.value}>
<div
class="sb-modal__overlay"
onClick={($event: MouseEvent) => {
$event.stopPropagation();
props.eventClose();
}}
>
<div class="sb-modal__content">
{context.slots.default()}
</div>
</div>
</div>
);
},
});