11<template >
22 <div class =" s panel" :class =" computedClass" >
33 <div class =" flex items-center justify-between" >
4- <img
5- :alt =" integration.name"
6- :src =" integration.image"
7- class =" h-6 mb-4"
8- />
9- <span
10- v-if =" isDone"
11- class =" badge badge--green"
12- >Connected</span >
13- <div
14- v-else-if =" isError"
15- class =" text-red-500 flex items-center text-sm"
16- >
17- <i class =" ri-error-warning-line mr-1" /> Failed to
18- connect
4+ <img :alt =" integration.name" :src =" integration.image" class =" h-6 mb-4" />
5+ <span v-if =" isDone" class =" badge badge--green" >Connected</span >
6+ <div v-else-if =" isError" class =" text-red-500 flex items-center text-sm" >
7+ <i class =" ri-error-warning-line mr-1" /> Failed to connect
198 </div >
20- <div
21- v-else-if =" isNoData"
22- class =" text-red-500 flex items-center text-sm"
23- >
24- <i class =" ri-error-warning-line mr-1" /> Not
25- receiving activities
9+ <div v-else-if =" isNoData" class =" text-red-500 flex items-center text-sm" >
10+ <i class =" ri-error-warning-line mr-1" /> Not receiving activities
2611 </div >
2712 <div
2813 v-else-if =" isWaitingForAction"
3419 v-else-if =" isWaitingApproval"
3520 class =" text-gray-500 flex items-center text-sm"
3621 >
37- <i class =" ri-time-line mr-1" /> Waiting for
38- approval
22+ <i class =" ri-time-line mr-1" /> Waiting for approval
3923 </div >
40- <div
41- v-else-if =" isConnected"
42- class =" flex items-center"
43- >
24+ <div v-else-if =" isConnected" class =" flex items-center" >
4425 <div
4526 v-loading =" true"
4627 class =" app-page-spinner !relative h-4 !w-4 mr-2 !min-h-fit"
5738 </div >
5839 <div >
5940 <div class =" flex mb-2" >
60- <span class =" block font-semibold" >{{
61- integration.name
41+ <span class =" block font-semibold" >{{ integration.name }}</span >
42+ <span v-if =" integration.premium" class =" text-2xs text-brand-500 ml-1" >{{
43+ FeatureFlag.premiumFeatureCopy()
6244 }}</span >
63- <span
64- v-if =" integration.premium"
65- class =" text-2xs text-brand-500 ml-1"
66- >{{ FeatureFlag.premiumFeatureCopy() }}</span >
6745 </div >
6846 <span class =" block mb-6 text-xs text-gray-500" >{{
6947 integration.description
8563 @click =" connect"
8664 >
8765 {{
88- integration.premium === true
89- && !hasIntegration
90- ? 'Upgrade Plan'
91- : 'Connect'
66+ integration.premium === true && !hasIntegration
67+ ? "Upgrade Plan"
68+ : integration.platform === "zapier"
69+ ? "Learn how to connect"
70+ : "Connect"
9271 }}
9372 </el-button >
9473 <el-button
11493</template >
11594
11695<script setup>
117- import { useStore } from ' vuex' ;
118- import { defineProps , computed , ref } from ' vue' ;
119- import { FeatureFlag } from ' @/featureFlag' ;
120- import AppIntegrationConnect from ' @/modules/integration/components/integration-connect.vue' ;
96+ import { useStore } from " vuex" ;
97+ import { defineProps , computed , ref } from " vue" ;
98+ import { FeatureFlag } from " @/featureFlag" ;
99+ import AppIntegrationConnect from " @/modules/integration/components/integration-connect.vue" ;
121100
122101const store = useStore ();
123102const props = defineProps ({
@@ -128,37 +107,37 @@ const props = defineProps({
128107});
129108
130109const computedClass = computed (() => ({
131- ' integration-custom' :
132- props .integration .platform === ' custom' ,
110+ " integration-custom" : props .integration .platform === " custom" ,
133111}));
134112
135113const isConnected = computed (() => props .integration .status !== undefined );
136114
137- const isDone = computed (() => props .integration .status === ' done' );
115+ const isDone = computed (() => props .integration .status === " done" );
138116
139- const isError = computed (() => props .integration .status === ' error' );
117+ const isError = computed (() => props .integration .status === " error" );
140118
141- const isNoData = computed (() => props .integration .status === ' no-data' );
119+ const isNoData = computed (() => props .integration .status === " no-data" );
142120
143- const isWaitingForAction = computed (() => props .integration .status === ' pending-action' );
121+ const isWaitingForAction = computed (
122+ () => props .integration .status === " pending-action"
123+ );
144124
145- const isWaitingApproval = computed (() => props .integration .status === ' waiting-approval' );
125+ const isWaitingApproval = computed (
126+ () => props .integration .status === " waiting-approval"
127+ );
146128
147129const loadingDisconnect = ref (false );
148130
149131const handleDisconnect = async () => {
150132 loadingDisconnect .value = true ;
151- await store .dispatch (
152- ' integration/doDestroy' ,
153- props .integration .id ,
154- );
133+ await store .dispatch (" integration/doDestroy" , props .integration .id );
155134 loadingDisconnect .value = false ;
156135};
157136 </script >
158137
159138<script >
160139export default {
161- name: ' AppIntegrationListItem' ,
140+ name: " AppIntegrationListItem" ,
162141};
163142 </script >
164143
0 commit comments