summaryrefslogtreecommitdiff
path: root/src/client/components/google.vue
diff options
context:
space:
mode:
Diffstat (limited to 'src/client/components/google.vue')
-rw-r--r--src/client/components/google.vue71
1 files changed, 71 insertions, 0 deletions
diff --git a/src/client/components/google.vue b/src/client/components/google.vue
new file mode 100644
index 0000000000..e6ef7f7d90
--- /dev/null
+++ b/src/client/components/google.vue
@@ -0,0 +1,71 @@
+<template>
+<div class="mk-google">
+ <input type="search" v-model="query" :placeholder="q">
+ <button @click="search"><fa icon="search"/> {{ $t('@.search') }}</button>
+</div>
+</template>
+
+<script lang="ts">
+import Vue from 'vue';
+import i18n from '../i18n';
+
+export default Vue.extend({
+ i18n,
+ props: ['q'],
+ data() {
+ return {
+ query: null
+ };
+ },
+ mounted() {
+ this.query = this.q;
+ },
+ methods: {
+ search() {
+ const engine = this.$store.state.settings.webSearchEngine ||
+ 'https://www.google.com/?#q={{query}}';
+ const url = engine.replace('{{query}}', this.query)
+ window.open(url, '_blank');
+ }
+ }
+});
+</script>
+
+<style lang="scss" scoped>
+.mk-google {
+ display: flex;
+ margin: 8px 0;
+
+ > input {
+ flex-shrink: 1;
+ padding: 10px;
+ width: 100%;
+ height: 40px;
+ font-size: 16px;
+ color: var(--googleSearchFg);
+ background: var(--googleSearchBg);
+ border: solid 1px var(--googleSearchBorder);
+ border-radius: 4px 0 0 4px;
+
+ &:hover {
+ border-color: var(--googleSearchHoverBorder);
+ }
+ }
+
+ > button {
+ flex-shrink: 0;
+ padding: 0 16px;
+ border: solid 1px var(--googleSearchBorder);
+ border-left: none;
+ border-radius: 0 4px 4px 0;
+
+ &:hover {
+ background-color: var(--googleSearchHoverButton);
+ }
+
+ &:active {
+ box-shadow: 0 2px 4px rgba(#000, 0.15) inset;
+ }
+ }
+}
+</style>