refactor: migrate to nuxt compatibilityVersion: 4 (#3298)
This commit is contained in:
parent
46e4433e1c
commit
a3fbc056a9
342 changed files with 1200 additions and 2932 deletions
38
app/pages/[[server]]/search.vue
Normal file
38
app/pages/[[server]]/search.vue
Normal file
|
@ -0,0 +1,38 @@
|
|||
<script setup lang="ts">
|
||||
const keys = useMagicKeys()
|
||||
const { t } = useI18n()
|
||||
|
||||
useHydratedHead({
|
||||
title: () => t('nav.search'),
|
||||
})
|
||||
|
||||
const search = ref<{ input?: HTMLInputElement }>()
|
||||
|
||||
watchEffect(() => {
|
||||
if (search.value?.input)
|
||||
search.value?.input?.focus()
|
||||
})
|
||||
onActivated(() => search.value?.input?.focus())
|
||||
onDeactivated(() => search.value?.input?.blur())
|
||||
|
||||
watch(keys['/'], (v) => {
|
||||
// focus on input when '/' is up to avoid '/' being typed
|
||||
if (!v)
|
||||
search.value?.input?.focus()
|
||||
})
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<MainContent>
|
||||
<template #title>
|
||||
<NuxtLink to="/search" timeline-title-style flex items-center gap-2 @click="$scrollToTop">
|
||||
<div i-ri:search-line class="rtl-flip" />
|
||||
<span>{{ $t('nav.search') }}</span>
|
||||
</NuxtLink>
|
||||
</template>
|
||||
|
||||
<div px2 mt3>
|
||||
<SearchWidget v-if="isHydrated" ref="search" m-1 />
|
||||
</div>
|
||||
</MainContent>
|
||||
</template>
|
Loading…
Add table
Add a link
Reference in a new issue