FooterTabs.vue 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. <template>
  2. <div id="footer-tabs" class="col-1">
  3. <ul>
  4. <li class="history">
  5. <div class="wrapper">
  6. <transition name="fade" appear>
  7. <span
  8. v-if="historyItems.length && !historyOpened"
  9. title="Ouvrir l'historique'"
  10. @click.prevent="openHistory"
  11. @keydown.enter.prevent="openHistory"
  12. >
  13. Historique de consultation
  14. </span>
  15. </transition>
  16. </div>
  17. </li>
  18. <li class="results">
  19. <div class="wrapper">
  20. <transition name="fade" appear>
  21. <span
  22. v-if="resultsItems.length && !resultsOpened"
  23. title="Ouvrir les resultats"
  24. @click.prevent="openResults"
  25. @keydown.enter.prevent="openResults"
  26. >
  27. Resultats
  28. </span>
  29. </transition>
  30. </div>
  31. </li>
  32. </ul>
  33. </div>
  34. </template>
  35. <script>
  36. import { mapState } from 'vuex'
  37. export default {
  38. name: 'FooterTabs',
  39. computed: {
  40. resultsOpened: {
  41. get () { return this.$store.state.Search.opened },
  42. set (value) { this.$store.commit('Search/setOpened', value) }
  43. },
  44. historyOpened: {
  45. get () { return this.$store.state.History.opened },
  46. set (value) { this.$store.commit('History/setOpened', value) }
  47. },
  48. ...mapState({
  49. resultsItems: state => state.Search.results,
  50. historyItems: state => state.History.items
  51. })
  52. },
  53. watch: {
  54. $route (n, o) {
  55. // console.log('route changed')
  56. this.resultsOpened = false
  57. }
  58. },
  59. methods: {
  60. openResults () {
  61. this.resultsOpened = true
  62. },
  63. openHistory () {
  64. this.historyOpened = true
  65. }
  66. }
  67. }
  68. </script>
  69. <style lang="scss" scoped>
  70. </style>