---
title: HistoryQuery
tags: UI reference
---
# HistoryQuery
This component renders a single history query suggestion. It can be used to render two buttons: one to select the
suggestion as the search query, and another one to remove the query suggestion from the history queries.
## Props
| Name | Description | Type | Default |
| ------------ | ------------------------------------------------------ | ------------------- | ------- |
| `suggestion` | _Required_. The history query suggestion to render | `HistoryQueryModel` | None |
## Methods
None
## Slots
| Name | Description | Bindings </br>(name - type - description) |
| --------------------- | ----------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------ |
| default | History Query content | **suggestion** - `Suggestion`- History Query suggestion data <br/> **queryHTML** -`string`- Suggestion query with the matching part inside an HTML span tag |
| remove-button-content | Content of the button to remove the History Query | **suggestion** - `Suggestion` - History Query suggestion data |
## Events
| Name | Description | Payload | Payload type |
| --------------------------- | ----------------------------------------------------- | -------------------------- | -------------- |
| `UserSelectedAHistoryQuery` | Event emitted after the user clicks the button | The selected history query | `HistoryQuery` |
:::tip X Events
Apart from the specific component events, **base events** can be emitted.
:::
## See it in action
The `HistoryQuery` component only requires a prop called `suggestion` to be rendered.
```vue live
<HistoryQuery :suggestion="{ query: 'puzzle' }" />
```
### Play with Events
In this example, an event is triggered when the `HistoryQuery` is clicked, illustrated by the message returning the query selected.
_Click the history query “puzzle” to try it out!_
```vue live
<HistoryQuery
:suggestion="{ query: 'puzzle' }"
@UserSelectedAHistoryQuery="
(historyQuery) => {
message = historyQuery.query
}
"
/>
```
### Play with default slot
The default slot allows you to replace the content of the suggestion button. It has two
properties, the suggestion itself, and an HTML string with the matching query.
```vue live
<HistoryQuery :suggestion="{ query: 'puzzle' }">
<template #default="{ suggestion, queryHTML }">
<img src="/assets/icons/history.svg"/>
<span v-html="queryHTML"/>
</template>
</HistoryQuery>
```
### Play with remove-button-content slot
The `remove-button-content` slot allows you to set the content of the
button used to remove the query from the history. This slot only has one property, the
suggestion.
```vue live
<HistoryQuery :suggestion="{ query: 'puzzle' }">
<template #remove-button-content="{ suggestion }">
<img src="/assets/icons/cross-dark.svg"/>
</template>
</HistoryQuery>
```