diff --git a/jsconfig.json b/jsconfig.json
new file mode 100644
index 0000000..e8b3494
--- /dev/null
+++ b/jsconfig.json
@@ -0,0 +1,7 @@
+{
+ "compilerOptions": {
+ "paths": {
+ "@/*": ["./src/*"]
+ }
+ }
+}
\ No newline at end of file
diff --git a/src/App.vue b/src/App.vue
index 8f9a924..8cbcbe8 100644
--- a/src/App.vue
+++ b/src/App.vue
@@ -31,11 +31,10 @@ import Footer from './features/footer/components/Footer.vue';
\ No newline at end of file
diff --git a/src/features/nav/components/Navbar.vue b/src/features/nav/components/Navbar.vue
index d15a230..8ecdd2a 100644
--- a/src/features/nav/components/Navbar.vue
+++ b/src/features/nav/components/Navbar.vue
@@ -16,7 +16,9 @@ limitations under the License.
diff --git a/src/features/search/components/Searchbar.vue b/src/features/search/components/Searchbar.vue
index be24483..8955b17 100644
--- a/src/features/search/components/Searchbar.vue
+++ b/src/features/search/components/Searchbar.vue
@@ -14,12 +14,37 @@ See the License for the specific language governing permissions and
limitations under the License.
-->
+
+
-
-
-
-
-
+
+
\ No newline at end of file
diff --git a/src/router/index.js b/src/router/index.js
index ef4d6ca..f209bef 100644
--- a/src/router/index.js
+++ b/src/router/index.js
@@ -1,24 +1,66 @@
-import { createRouter, createWebHistory } from 'vue-router'
+/*
+Copyright 2026 Seekra
-import SearchView from '../views/SearchView.vue'
-import NotFound from '../views/NotFound.vue'
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+import { createRouter, createWebHistory } from 'vue-router';
+
+import SearchView from '../views/SearchView.vue';
+import SearchResultsView from '@/features/search/views/SearchResultsView.vue';
+import NotFound from '../views/NotFound.vue';
const routes = [
{
path: '/',
- name: 'search',
+ name: 'startPage',
component: SearchView
},
+ {
+ path: '/search',
+ name: 'searchResults',
+ component: SearchResultsView,
+ props: route => ({
+ searchQuery: route.query.q
+ }),
+ meta: {
+ title: (route) => route.query.q
+ }
+ },
{
path: '/:pathMatch(.*)*',
name: 'not-found',
component: NotFound
},
-]
+];
const router = createRouter({
history: createWebHistory(),
routes
-})
+});
-export default router
\ No newline at end of file
+// set page title
+router.afterEach(to => {
+ const title =
+ typeof to.meta.title === 'function'
+ ? to.meta.title(to)
+ : to.meta.title;
+
+ if (title) {
+ document.title = `${title} - Seekra`;
+ } else {
+ document.title = 'Seekra';
+ };
+});
+
+export default router;
\ No newline at end of file
diff --git a/src/styles/common.css b/src/styles/common.css
index d01c4f1..9adf663 100644
--- a/src/styles/common.css
+++ b/src/styles/common.css
@@ -23,4 +23,12 @@ body {
min-height: 100vh;
display: flex;
flex-direction: column;
+}
+
+.link {
+ text-decoration: none;
+}
+
+.link:hover:not(.button-link) {
+ text-decoration: underline;
}
\ No newline at end of file
diff --git a/src/views/SearchView.vue b/src/views/SearchView.vue
index 0ec7c61..4ac2462 100644
--- a/src/views/SearchView.vue
+++ b/src/views/SearchView.vue
@@ -15,23 +15,43 @@ limitations under the License.
-->
-
-