import LoadingIndicator from "./LoadingIndicator";
import Login from "./Login";
import NavBar from "./NavBar";
+import SearchInput from "./SearchInput";
import api from "../api";
import * as constants from "../constants";
LoadingIndicator,
Login,
NavBar,
+ SearchInput,
},
data: function() {
this.navigate(`/${constants.basePaths.login}`);
},
- search: function() {
- this.navigate(
- `/${constants.basePaths.search}?${
- constants.params.searchTerm
- }=${encodeURI(this.searchTerm)}`
- );
- },
-
getSearchResults: function() {
let parent = this;
this.searchFailed = false;
<div
v-if="currentView == views.home"
v-on:submit.prevent="search"
- class="home-view d-flex flex-column justify-content-center align-items-center flex-grow-1 w-100"
+ class="
+ home-view
+ d-flex
+ flex-column
+ justify-content-center
+ align-items-center
+ flex-grow-1
+ w-100
+ "
>
<div class="mb-3">
<img src="../assets/logo.svg" />
</div>
- <form v-on:submit.prevent="search" class="w-100">
- <div class="form-group mb-4 w-100">
- <input
- type="text"
- class="form-control search-input"
- placeholder="Search"
- v-model="searchTerm"
- autofocus
- />
- <!-- TODO: Search Button -->
- </div>
- </form>
- <RecentlyModified />
+ <SearchInput class="search-input mb-4"></SearchInput>
+ <RecentlyModified></RecentlyModified>
</div>
<!-- Note -->
<!-- Search -->
<div v-if="currentView == views.search" class="w-100">
- <!-- Search Input -->
- <form v-on:submit.prevent="search">
- <div class="form-group mb-4 d-flex justify-content-center">
- <input
- type="text"
- class="form-control"
- placeholder="Search"
- v-model="searchTerm"
- style="max-width: 500px"
- autofocus
- />
- </div>
- </form>
-
<!-- Searching -->
<div v-if="searchResults == null">
<loading-indicator
.invisible {
visibility: hidden;
}
+
+.cursor-pointer {
+ cursor: pointer;
+}
</style>
<script>
--- /dev/null
+<template>
+ <form v-on:submit.prevent="search" class="w-100">
+ <div class="input-group w-100">
+ <input
+ type="text"
+ class="form-control"
+ placeholder="Search"
+ v-model="searchTermInput"
+ autofocus
+ />
+ <div class="input-group-append">
+ <button class="btn" type="submit">
+ <BIconSearch />
+ </button>
+ </div>
+ </div>
+ </form>
+</template>
+
+<style lang="scss" scoped>
+.btn {
+ border: 1px solid #cfd4da;
+ svg {
+ color: #a7abb1;
+ }
+}
+</style>
+
+<script>
+import EventBus from "../eventBus";
+import * as constants from "../constants";
+import { BIconSearch } from "bootstrap-vue";
+
+export default {
+ comments: {
+ BIconSearch,
+ },
+
+ data: function () {
+ return {
+ searchTermInput: null,
+ };
+ },
+
+ methods: {
+ search: function () {
+ EventBus.$emit(
+ "navigate",
+ `/${constants.basePaths.search}?${
+ constants.params.searchTerm
+ }=${encodeURI(this.searchTermInput)}`
+ );
+ },
+ },
+};
+</script>
// Search Data
searchFailed: false,
-
- // Note Data
searchTerm: null,
searchResults: null,
+
+ // Note Data
currentNote: null,
titleInput: null,
initialContent: null,
font-family: "Inter", sans-serif;
}
-.cursor-pointer {
- cursor: pointer;
-}
-
.clickable-link {
cursor: pointer;
&:hover {
padding: 0;
}
-.title-input:focus {
- outline: none;
+.form-control:focus {
+ box-shadow: none;
+ border-color: #ced4da;
}
.home-view {