Files
leadchat/app/javascript/dashboard/routes/dashboard/settings/integrations/ShowIntegration.vue
Muhsin Keloth 9606abe251 chore: Fix Eslint warnings (#3654)
* Fix all the eslint warnings

* Revert the schema
2021-12-27 13:49:31 +05:30

83 lines
2.2 KiB
Vue

<template>
<div class="column content-box">
<div class="row">
<div class="small-12 columns integrations-wrap">
<div class="row integrations">
<div v-if="integrationLoaded" class="small-12 columns integration">
<integration
:integration-id="integration.id"
:integration-logo="integration.logo"
:integration-name="integration.name"
:integration-description="integration.description"
:integration-enabled="integration.enabled"
:integration-action="integrationAction()"
/>
</div>
<div v-if="integration.enabled" class="small-12 columns integration">
<IntegrationHelpText />
</div>
</div>
</div>
</div>
</div>
</template>
<script>
import { mapGetters } from 'vuex';
import globalConfigMixin from 'shared/mixins/globalConfigMixin';
import Integration from './Integration';
import IntegrationHelpText from './IntegrationHelpText';
export default {
components: {
Integration,
IntegrationHelpText,
},
mixins: [globalConfigMixin],
props: {
integrationId: {
type: [String, Number],
required: true,
},
code: { type: String, default: '' },
},
data() {
return {
integrationLoaded: false,
};
},
computed: {
integration() {
return this.$store.getters['integrations/getIntegration'](
this.integrationId
);
},
...mapGetters({
currentUser: 'getCurrentUser',
globalConfig: 'globalConfig/get',
accountId: 'getCurrentAccountId',
}),
},
mounted() {
this.intializeSlackIntegration();
},
methods: {
integrationAction() {
if (this.integration.enabled) {
return 'disconnect';
}
return this.integration.action;
},
async intializeSlackIntegration() {
await this.$store.dispatch('integrations/get', this.integrationId);
if (this.code) {
await this.$store.dispatch('integrations/connectSlack', this.code);
// we are clearing code from the path as subsequent request would throw error
this.$router.replace(this.$route.path);
}
this.integrationLoaded = true;
},
},
};
</script>