<template> <Context> <ul class="context-menu"> <li v-for="(application, type) in applications" :key="type"> <a :ref="'createApplicationModalToggle' + type" @click="toggleCreateApplicationModal(type)" > <i class="context-menu-icon fas fa-fw" :class="'fa-' + application.iconClass" ></i> {{ application.name }} </a> <CreateApplicationModal :ref="'createApplicationModal' + type" :application="application" @created="hide" ></CreateApplicationModal> </li> </ul> </Context> </template> <script> import { mapState } from 'vuex' import CreateApplicationModal from '@/components/sidebar/CreateApplicationModal' import context from '@/mixins/context' export default { name: 'CreateApplicationContext', components: { CreateApplicationModal }, mixins: [context], computed: { ...mapState({ applications: state => state.application.applications }) }, methods: { toggleCreateApplicationModal(type) { const target = this.$refs['createApplicationModalToggle' + type][0] this.$refs['createApplicationModal' + type][0].toggle(target) } } } </script>