Vue

by GuyNachshon

HTML

<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/3.2.33/vue.cjs.js"></script>
<div id="app">
  <div class="user-input">
    <input type="text" v-model="userInput"/>
    {{userInput}}
  </div>
  <div class="tag-modal" v-if="isTag">{{computedSearchQuery}}</div>
</div>

CSS

body {
  background: #20262E;
  padding: 20px;
  font-family: Helvetica;
}

#app {
  background: #fff;
  border-radius: 4px;
  padding: 20px;
  transition: all 0.2s;
}

.tag-modal {
  width: 100px;
  height: 100px;
  background: green;
}

Vue

new Vue({
  el: "#app",
  data: {
   isTag: false,
   userInput: ""
  },
  watch: {
  userInput: {
  handler() {
  if (userInput.startsWith("@")) {
  this.isTag = true;
  // implement logic...
  }
  }
  }
  },
  computed: {
  computedSearchQuery() {
  // will return search results
  return null
  }
  }
})