@empathyco/x-components
Version:
Empathy X Components
85 lines (61 loc) • 2.58 kB
Markdown
---
title: BaseEventsModalOpen
---
# BaseEventsModalOpen
Component contains an event button that emits XEventsTypes.UserClickedOpenEventsModal
when clicked. It has a default slot to customize its contents.
## Props
| Name | Description | Type | Default |
| ------------------------- | ---------------------------------------- | ---------------------------------------------- | ----------------------------------------- |
| <code>openingEvent</code> | Event name to use for opening the modal. | <code>PropsWithType<XEventsTypes, void></code> | <code>'UserClickedOpenEventsModal'</code> |
## Slots
| Name | Description | Bindings<br />(name - type - description) |
| -------------------- | ------------------------------------------------------ | ----------------------------------------- |
| <code>default</code> | (Required) Button content with a text, an icon or both | None |
## Events
A list of events that the component will emit:
- [`UserClickedOpenEventsModal`](https://github.com/empathyco/x/blob/main/packages/x-components/src/wiring/events.types.ts):
the event is emitted after the user clicks the button.
## Examples
This component serves to open the `BaseEventsModal`.
### Basic example
On clicked, the component closes the `BaseEventsModal`. The only needed thing is the content that
the button should render, that can be any thing: a text, an image, an icon, a combination of the two
of them...
```vue
<template>
<BaseEventsModalOpen>
<img src="./open-button-icon.svg" />
<span>Open</span>
</BaseEventsModalOpen>
</template>
<script>
import { BaseEventsModalOpen } from '@empathyco/x-components'
export default {
name: 'BaseEventsModalOpenTest',
components: {
BaseEventsModalOpen,
},
}
</script>
```
### Defining another event to emit when clicking the button
By default it uses the same `openingEvent` that the `BaseEventsModal` is listening by default too.
This event can be changed using the `openingEvent` prop, but remember to change it in the target
`BaseEventsModal` too.
```vue
<template>
<BaseEventsModalOpen openingEvent="UserOpenedEmpathize">
<span>Open</span>
</BaseEventsModalOpen>
</template>
<script>
import { BaseEventsModalOpen } from '@empathyco/x-components'
export default {
name: 'BaseEventsModalOpenTest',
components: {
BaseEventsModalOpen,
},
}
</script>
```