mirror of
https://github.com/CorentinTh/it-tools.git
synced 2025-04-23 00:06:15 -04:00
feat: search bar
This commit is contained in:
parent
34889eb1ce
commit
49f0721107
4 changed files with 75 additions and 11 deletions
18
src/App.vue
18
src/App.vue
|
@ -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;
|
||||||
|
|
|
@ -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>
|
||||||
|
|
44
src/components/SearchBar.vue
Normal file
44
src/components/SearchBar.vue
Normal 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>
|
|
@ -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
|
||||||
|
};
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue