From 0dc7220a819c147e0a4a95b89c28b7d6fe14a813 Mon Sep 17 00:00:00 2001 From: Daniel Roe Date: Wed, 28 Jan 2026 21:03:23 +0000 Subject: [PATCH 1/5] feat: add search bar in header, hide connector on mobile, add back button to settings page --- app/app.vue | 2 +- app/components/AppHeader.vue | 116 ++++++++++++++++++++++------------- app/pages/settings.vue | 15 +++++ i18n/locales/en.json | 3 +- i18n/locales/fr.json | 3 +- i18n/locales/it.json | 3 +- i18n/locales/zh-CN.json | 3 +- 7 files changed, 99 insertions(+), 46 deletions(-) diff --git a/app/app.vue b/app/app.vue index b8582a1719..3a860a9c9b 100644 --- a/app/app.vue +++ b/app/app.vue @@ -7,7 +7,7 @@ const router = useRouter() // Initialize accent color before hydration to prevent flash initAccentOnPrehydrate() -const isHomepage = computed(() => route.path === '/') +const isHomepage = computed(() => route.name === 'index') useHead({ titleTemplate: titleChunk => { diff --git a/app/components/AppHeader.vue b/app/components/AppHeader.vue index 332cdda933..71c37345be 100644 --- a/app/components/AppHeader.vue +++ b/app/components/AppHeader.vue @@ -13,6 +13,24 @@ withDefaults( const { isConnected, npmUser } = useConnector() const router = useRouter() +const route = useRoute() + +const searchQuery = ref('') +const isSearchFocused = ref(false) + +const showSearchBar = computed(() => { + return route.name === 'search' || route.name === 'index' +}) + +async function handleSearchInput() { + const query = searchQuery.value.trim() + await router.push({ + name: 'search', + query: query ? { q: query } : undefined, + }) + searchQuery.value = '' +} + onKeyStroke(',', e => { // Don't trigger if user is typing in an input const target = e.target as HTMLElement @@ -45,40 +63,66 @@ onKeyStroke(',', e => { - - + +
+ + + +
    + +
  • + +
  • + + +
  • + +
  • +
+
-
+
+ + {{ $t('footer.about') }} + + {{ $t('nav.settings') }} @@ -90,19 +134,9 @@ onKeyStroke(',', e => { -
+ - - -
diff --git a/app/pages/settings.vue b/app/pages/settings.vue index c1aed8450a..3c801075ce 100644 --- a/app/pages/settings.vue +++ b/app/pages/settings.vue @@ -1,4 +1,5 @@