@empathyco/x-components
Version:
Empathy X Components
159 lines (123 loc) • 5.64 kB
Markdown
---
title: HistoryQueries
---
# HistoryQueries
This component renders a list of suggestions coming from the user queries history.
Allows the user to select one of them, emitting the needed events. A history query is just
another type of suggestion that contains a query that the user has made in the past.
## Slots
| Name | Description | Bindings<br />(name - type - description) |
| -------------------------------------- | ----------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| <code>suggestion</code> | History Query item | **v-bind** <code>Object</code> - History Query suggestion attributes:<br /> - **suggestion** <code>Suggestion</code> - History Query suggestion data<br /> - **index** <code>number</code> - History Query suggestion index |
| <code>suggestion-content</code> | History Query content | **v-bind** <code>Object</code> - History Query suggestion attributes:<br /> - **suggestion** <code>Suggestion</code> - History Query suggestion data<br /> - **index** <code>number</code> - History Query suggestion index |
| <code>suggestion-remove-content</code> | History Query remove button content | **v-bind** <code>Object</code> - History Query suggestion attributes:<br /> - **suggestion** <code>Suggestion</code> - History Query suggestion data<br /> - **index** <code>number</code> - History Query suggestion index |
## Inherited props
This component inherits the [`BaseSuggestions`](../base-components/x-components.base-suggestions.md)
props.
| Name | Description | Type | Default |
| ------------------ | ----------------------------------------------------------------- | -------- | ------- |
| `animation` | Animation component that will be used to animate the suggestions. | `Vue` | `"ul"` |
| `maxItemsToRender` | Number of popular searches to be rendered. | `number` | |
## Events
This component doesn't emit events.
## See it in action
Here you have a basic example of how the HistoryQueries is rendered.
```vue live
<template>
<div>
<SearchInput />
<HistoryQueries />
</div>
</template>
<script setup>
import { SearchInput } from "@empathyco/x-components/search-box";
import { HistoryQueries } from "@empathyco/x-components/history-queries";
</script>
```
### Play with props
In this example, the history queries have been limited to render a maximum of 10 queries (by default
it is 5).
```vue live
<template>
<div>
<SearchInput />
<HistoryQueries :maxItemsToRender="10" />
</div>
</template>
<script setup>
import { SearchInput } from "@empathyco/x-components/search-box";
import { HistoryQueries } from "@empathyco/x-components/history-queries";
</script>
```
### Play with the animation
```vue live
<template>
<div>
<SearchInput />
<HistoryQueries :animation="animation" />
</div>
</template>
<script setup>
import { SearchInput } from "@empathyco/x-components/search-box";
import { HistoryQueries } from "@empathyco/x-components/history-queries";
import { FadeAndSlide } from "@empathyco/x-components";
const animation = FadeAndSlide;
</script>
```
### Play with suggestion slot
In this example, the [`HistoryQuery`](./x-components.history-query.md) component is passed in the
`suggestion` slot (although any other component could potentially be passed).
```vue live
<template>
<div>
<SearchInput />
<HistoryQueries #suggestion="{ suggestion }">
<HistoryQuery :suggestion="suggestion" />
</HistoryQueries>
</div>
</template>
<script setup>
import { SearchInput } from "@empathyco/x-components/search-box";
import {
HistoryQueries,
HistoryQuery,
} from "@empathyco/x-components/history-queries";
</script>
```
### Play with suggestion-content slot
To continue the previous example, the [`HistoryQuery`](./x-components.history-query.md) component is
passed in the `suggestion-content` slot, but in addition, an HTML span tag for the text are also
passed.
```vue live
<template>
<div>
<SearchInput />
<HistoryQueries #suggestion-content="{ suggestion }">
<span>{{ suggestion.query }}</span>
</HistoryQueries>
</div>
</template>
<script setup>
import { SearchInput } from "@empathyco/x-components/search-box";
import { HistoryQueries } from "@empathyco/x-components/history-queries";
</script>
```
### Play with suggestion-content-remove slot
To continue the previous example, the [`HistoryQuery`](./x-components.history-query.md) component is
passed in the `suggestion-content` slot, but in addition, a cross icon is also passed to change the
icon to remove the history query.
```vue live
<template>
<div>
<SearchInput />
<HistoryQueries #suggestion-remove-content="{ suggestion }">
<CrossIcon />
</HistoryQueries>
</div>
</template>
<script setup>
import { SearchInput } from "@empathyco/x-components/search-box";
import { HistoryQueries } from "@empathyco/x-components/history-queries";
import { CrossIcon } from "@empathyco/x-components";
</script>
```