feat: search bar

This commit is contained in:
CorentinTh 2020-05-15 12:27:18 +02:00
parent 34889eb1ce
commit 49f0721107
No known key found for this signature in database
GPG key ID: 44C26D9F091CEFC7
4 changed files with 75 additions and 11 deletions

View file

@ -43,6 +43,14 @@
<v-toolbar-title class="mr-12 align-center"> <v-toolbar-title class="mr-12 align-center">
<router-link to="/" class="title">IT Tools</router-link> <router-link to="/" class="title">IT Tools</router-link>
</v-toolbar-title> </v-toolbar-title>
<v-spacer></v-spacer>
<v-row
align="center"
style="max-width: 650px"
>
<SearchBar />
</v-row>
<v-spacer></v-spacer> <v-spacer></v-spacer>
<div class="right-links"> <div class="right-links">
@ -56,7 +64,7 @@
<v-content> <v-content>
<v-row class="fill-height pa-4" justify="center" align="center" no-gutters> <v-row class="fill-height pa-4" justify="center" align="center" no-gutters>
<router-view></router-view> <router-view></router-view>
</v-row> </v-row>
</v-content> </v-content>
@ -69,10 +77,13 @@
</template> </template>
<script> <script>
import SearchBar from "./components/SearchBar";
export default { export default {
props: { props: {
source: String, source: String,
}, },
components: {SearchBar},
data: () => ({ data: () => ({
appVersion: 'v' + process.env.APPLICATION_VERSION, appVersion: 'v' + process.env.APPLICATION_VERSION,
drawer: null, drawer: null,
@ -106,15 +117,16 @@
</script> </script>
<style lang="less"> <style lang="less">
html{ html {
overflow-y: auto !important; overflow-y: auto !important;
} }
.single-card { .single-card {
width: 100%; width: 100%;
max-width: 700px !important; max-width: 700px !important;
} }
.v-card__title{ .v-card__title {
justify-content: center; justify-content: center;
font-size: 30px !important; font-size: 30px !important;
line-height: 30px !important; line-height: 30px !important;

View file

@ -11,7 +11,7 @@
> >
<p>Drag & drop a file here</p> <p>Drag & drop a file here</p>
<p class="or">or</p> <p class="or">or</p>
<v-btn depressed>upload manually</v-btn> <v-btn depressed>select a file</v-btn>
<p class="or">or</p> <p class="or">or</p>
<v-text-field outlined dense label="Paste an url to the file" hide-details></v-text-field> <v-text-field outlined dense label="Paste an url to the file" hide-details></v-text-field>
</div> </div>

View file

@ -0,0 +1,44 @@
<template>
<v-autocomplete
label="Search..."
single-line
append-icon="fa-search"
color="white"
hide-details
:items="items"
item-text="component.name"
item-value="path"
solo-inverted
@change="choose"
>
<template v-slot:no-data>
<v-list-item>
<v-list-item-title>
Search for the <strong>tool</strong> you need!
</v-list-item-title>
</v-list-item>
</template>
</v-autocomplete>
</template>
<script>
import {toolsRoutes} from '../router'
export default {
name: "SearchBar",
data(){
const vm = this;
return {
items:toolsRoutes,
choose(path){
vm.$router.push(path)
}
}
},
}
</script>
<style scoped>
</style>

View file

@ -9,11 +9,7 @@ import FileToBase64 from "./routes/tools/FileToBase64";
Vue.use(VueRouter) Vue.use(VueRouter)
const routes = [ const toolsRoutes = [
{
path: '/',
component: Home
},
{ {
path: '/token-generator', path: '/token-generator',
component: TokenGenerator component: TokenGenerator
@ -33,6 +29,14 @@ const routes = [
{ {
path: '/file-to-base64', path: '/file-to-base64',
component: FileToBase64 component: FileToBase64
}
]
const routes = [
...toolsRoutes,
{
path: '/',
component: Home
}, },
{ {
path: '/about', path: '/about',
@ -45,6 +49,10 @@ const router = new VueRouter({
mode: 'history', mode: 'history',
base: process.env.BASE_URL, base: process.env.BASE_URL,
routes routes
}) });
export default router export default router;
export {
routes,
toolsRoutes
};