akkoma-fe/src/components/search_bar/search_bar.vue

89 lines
1.6 KiB
Vue
Raw Normal View History

2017-05-12 16:54:12 +00:00
<template>
2020-11-01 14:44:57 +00:00
<div
class="SearchBar"
:class="{ '-expanded': !hidden }"
>
<button
v-if="hidden"
class="button-unstyled nav-icon"
:title="$t('nav.search')"
2020-11-01 14:44:57 +00:00
@click.prevent.stop="toggleHidden"
type="button"
>
<FAIcon
fixed-width
class="fa-scale-110 fa-old-padding"
icon="search"
/>
</button>
<template v-else>
<input
id="search-bar-input"
ref="searchInput"
v-model="searchTerm"
class="search-bar-input"
:placeholder="$t('nav.search')"
type="text"
@keyup.enter="find(searchTerm)"
2020-11-01 14:44:57 +00:00
>
<button
class="button-default search-button"
@click="find(searchTerm)"
type="submit"
2020-11-01 14:44:57 +00:00
>
<FAIcon
fixed-width
icon="search"
2020-11-01 14:44:57 +00:00
/>
</button>
<button
class="button-unstyled cancel-search"
@click.prevent.stop="toggleHidden"
type="button"
>
<FAIcon
fixed-width
icon="times"
class="cancel-icon fa-scale-110 fa-old-padding"
2020-11-01 14:44:57 +00:00
/>
</button>
</template>
2018-12-05 12:01:56 +00:00
</div>
2017-05-12 16:54:12 +00:00
</template>
2019-07-15 16:42:27 +00:00
<script src="./search_bar.js"></script>
2017-05-12 16:54:12 +00:00
<style lang="scss">
@import '../../_variables.scss';
.SearchBar {
2018-12-03 05:03:11 +00:00
display: inline-flex;
align-items: baseline;
vertical-align: baseline;
2019-07-15 16:42:27 +00:00
justify-content: flex-end;
2018-12-03 05:03:11 +00:00
&.-expanded {
width: 100%;
}
2019-07-15 16:42:27 +00:00
.search-bar-input,
2018-12-03 05:03:11 +00:00
.search-button {
height: 29px;
}
2019-07-15 16:42:27 +00:00
.search-bar-input {
flex: 1 0 auto;
2018-12-03 05:03:11 +00:00
}
.cancel-search {
height: 50px;
}
2020-10-20 19:54:43 +00:00
.cancel-icon {
color: $fallback--text;
color: var(--btnTopBarText, $fallback--text);
2019-07-15 16:42:27 +00:00
}
}
2017-09-10 17:46:42 +00:00
2017-05-12 16:54:12 +00:00
</style>