elk/components/search/SearchResult.vue

32 lines
931 B
Vue
Raw Normal View History

2022-12-17 21:35:07 +00:00
<script setup lang="ts">
import type { SearchResult } from './types'
2023-01-05 16:48:20 +00:00
defineProps<{
result: SearchResult
active: boolean
}>()
2022-12-17 21:35:07 +00:00
const onActivate = () => {
(document.activeElement as HTMLElement).blur()
}
</script>
<template>
2023-01-05 22:50:14 +00:00
<CommonScrollIntoView
as="RouterLink"
hover:bg-active
:active="active"
:to="result.to" py2 block px2
:aria-selected="active"
:class="{ 'bg-active': active }"
@click="() => onActivate()"
>
2022-12-17 21:35:07 +00:00
<SearchHashtagInfo v-if="result.type === 'hashtag'" :hashtag="result.hashtag" />
2023-01-05 22:50:14 +00:00
<SearchAccountInfo v-else-if="result.type === 'account' && result.account" :account="result.account" />
2023-01-05 16:48:20 +00:00
<StatusCard v-else-if="result.type === 'status' && result.status" :status="result.status" :actions="false" :show-reply-to="false" />
<!-- <div v-else-if="result.type === 'action'" text-center>
2022-12-17 21:35:07 +00:00
{{ result.action!.label }}
2023-01-05 16:48:20 +00:00
</div> -->
</CommonScrollIntoView>
2022-12-17 21:35:07 +00:00
</template>