Skip to content
Snippets Groups Projects
NavbarSubitem.vue 983 B
<template>
  <div @mouseenter="onMouseEnter" @mouseleave="onMouseLeave">
    <span class="navbar-menu__link navbar-menu__submenu-toggle" :class="{'navbar-menu__submenu-toggle--open': show}" @click="handleClick">{{ label }}</span>
    <div :class="{'navbar-menu__submenu-wrap--show': show}" class="navbar-menu__submenu-wrap">
      <slot>
      </slot>
    </div>
  </div>
</template>

<script>
import { isLgScreenSize } from "../../utils";

export default {
  data() {
    return {
      show: false
    };
  },
  props: {
    href: {
      type: String,
    },
    label: {
      type: String,
    }
  },
  methods: {
    onMouseEnter() {
      if (isLgScreenSize()) {
        this.$data.show = true;
      }
    },
    onMouseLeave() {
      if (isLgScreenSize()) {
        this.$data.show = false;
      }
    },
    handleClick() {
      if (this.$props.href) {
        window.location = this.$props.href;
      }

      this.$data.show = !this.$data.show;
    }
  }
}
</script>