Skip to content

Commit 64d2f5c

Browse files
authored
feat: added delete integration confirmation box (#3556)
Signed-off-by: Efren Lim <elim@linuxfoundation.org>
1 parent 3804abe commit 64d2f5c

1 file changed

Lines changed: 37 additions & 1 deletion

File tree

frontend/src/modules/admin/modules/integration/components/integration-list-item.vue

Lines changed: 37 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -92,7 +92,7 @@
9292
:grandparent-id="route.params.grandparentId"
9393
@open-setting="isSettingsOpen = true"
9494
/>
95-
<lf-dropdown-item type="danger" @click="disconnectIntegration()">
95+
<lf-dropdown-item type="danger" @click="isModalOpen = true">
9696
<lf-icon name="link-simple-slash" type="regular" />
9797
Disconnect integration
9898
</lf-dropdown-item>
@@ -114,6 +114,37 @@
114114
v-if="props.config.mappedReposComponent"
115115
:segment-id="route.params.id"
116116
/>
117+
118+
<lf-modal v-model="isModalOpen">
119+
<template #default>
120+
<div class="px-6 pt-6 flex gap-4">
121+
<div class="min-w-10 w-10 h-10 rounded-full bg-red-50 flex items-center justify-center">
122+
<lf-icon name="link-simple-slash" class="text-red-500" :size="16" />
123+
</div>
124+
<div class="flex flex-col gap-6">
125+
<div class="flex flex-col gap-2">
126+
<span class="font-semibold">Are you sure you want to disconnect this integration?</span>
127+
<p class="text-gray-500 text-small">
128+
Once disconnected, data will no longer sync from this source.
129+
You can reconnect anytime to resume syncing, but this action can’t be undone.
130+
</p>
131+
</div>
132+
<div class="flex flex-col gap-1">
133+
<span class="font-semibold">Type DISCONNECT to confirm</span>
134+
<lf-input v-model="disconnectConfirm" placeholder="DISCONNECT" class="w-full" />
135+
</div>
136+
</div>
137+
</div>
138+
<div class="px-6 py-4.5 bg-gray-50 mt-8 flex justify-end gap-4">
139+
<lf-button type="secondary-ghost-light" @click="isModalOpen = false">
140+
Cancel
141+
</lf-button>
142+
<lf-button type="danger" :disabled="disconnectConfirm !== 'DISCONNECT'" @click="disconnectIntegration()">
143+
Disconnect integration
144+
</lf-button>
145+
</div>
146+
</template>
147+
</lf-modal>
117148
</article>
118149
</template>
119150

@@ -133,6 +164,8 @@ import { EventType, FeatureEventKey } from '@/shared/modules/monitoring/types/ev
133164
import useProductTracking from '@/shared/modules/monitoring/useProductTracking';
134165
import { useRoute } from 'vue-router';
135166
import { dateHelper } from '@/shared/date-helper/date-helper';
167+
import LfModal from '@/ui-kit/modal/Modal.vue';
168+
import LfInput from '@/ui-kit/input/Input.vue';
136169
137170
const props = defineProps<{
138171
config: IntegrationConfig,
@@ -145,6 +178,9 @@ const route = useRoute();
145178
const { doDestroy } = mapActions('integration');
146179
const { findByPlatform } = mapGetters('integration');
147180
181+
const isModalOpen = ref(false);
182+
const disconnectConfirm = ref('');
183+
148184
const { trackEvent } = useProductTracking();
149185
150186
const integration = computed(() => findByPlatform.value(props.config.key));

0 commit comments

Comments
 (0)