diff --git a/frontend/src/modules/admin/modules/integration/components/integration-list-item.vue b/frontend/src/modules/admin/modules/integration/components/integration-list-item.vue
index 510acba017..9472a2b4b0 100644
--- a/frontend/src/modules/admin/modules/integration/components/integration-list-item.vue
+++ b/frontend/src/modules/admin/modules/integration/components/integration-list-item.vue
@@ -166,7 +166,7 @@ import { IntegrationService } from '@/modules/integration/integration-service';
const props = defineProps<{
config: IntegrationConfig,
- progress: IntegrationProgress | null,
+ progress: IntegrationProgress[] | null,
progressError: boolean
}>();
diff --git a/frontend/src/modules/admin/modules/integration/components/status/integration-platform-select.vue b/frontend/src/modules/admin/modules/integration/components/status/integration-platform-select.vue
index b4fc8884ec..0f4f23904e 100644
--- a/frontend/src/modules/admin/modules/integration/components/status/integration-platform-select.vue
+++ b/frontend/src/modules/admin/modules/integration/components/status/integration-platform-select.vue
@@ -50,7 +50,7 @@ const props = defineProps<{
modelValue?: string,
}>();
-const emit = defineEmits<{(e: 'update:modelValue', value: string)}>();
+const emit = defineEmits<{(e: 'update:modelValue', value: string): void}>();
const model = computed({
get() {
diff --git a/frontend/src/modules/admin/modules/integration/pages/integration-status.page.vue b/frontend/src/modules/admin/modules/integration/pages/integration-status.page.vue
index a82db0fbfd..cf302b388b 100644
--- a/frontend/src/modules/admin/modules/integration/pages/integration-status.page.vue
+++ b/frontend/src/modules/admin/modules/integration/pages/integration-status.page.vue
@@ -70,7 +70,7 @@
diff --git a/frontend/src/modules/admin/modules/projects/components/form/lf-project-form.vue b/frontend/src/modules/admin/modules/projects/components/form/lf-project-form.vue
index 49f3f9f584..4dadeb6002 100644
--- a/frontend/src/modules/admin/modules/projects/components/form/lf-project-form.vue
+++ b/frontend/src/modules/admin/modules/projects/components/form/lf-project-form.vue
@@ -271,7 +271,7 @@ const onSuccess = () => {
emit('onSuccess');
};
-const onError = (error: AxiosError) => {
+const onError = (error: AxiosError
) => {
ToastStore.error(
error?.response?.data ? error.response.data
: `Something went wrong while ${props.id ? 'updating' : 'creating'} the project`,
diff --git a/frontend/src/modules/integration/components/integration-progress-bar.vue b/frontend/src/modules/integration/components/integration-progress-bar.vue
index 9eaf560e1a..525b1b4aa3 100644
--- a/frontend/src/modules/integration/components/integration-progress-bar.vue
+++ b/frontend/src/modules/integration/components/integration-progress-bar.vue
@@ -39,7 +39,7 @@ import { computed } from 'vue';
import LfIcon from '@/ui-kit/icon/Icon.vue';
const props = defineProps<{
- progress: IntegrationProgress | null,
+ progress: IntegrationProgress | null | undefined,
barOnly?: boolean,
hideBar?: boolean,
textClass?: string,
diff --git a/frontend/src/modules/integration/components/integration-progress-wrapper.vue b/frontend/src/modules/integration/components/integration-progress-wrapper.vue
index eed73ec9b8..1616762069 100644
--- a/frontend/src/modules/integration/components/integration-progress-wrapper.vue
+++ b/frontend/src/modules/integration/components/integration-progress-wrapper.vue
@@ -18,19 +18,14 @@ const props = withDefaults(defineProps<{
segments: () => ([]),
});
-const progress = ref(null);
+const progress = ref(null);
const progressError = ref(false);
const fetchUpdates = () => {
IntegrationService.fetchIntegrationsProgress(props.segments)
- .then((data: IntegrationProgress) => {
- const parsedData = data.platform === 'github-nango' ? {
- ...data,
- platform: 'github',
- } : data;
-
- progress.value = parsedData;
- if (parsedData.length === 0) {
+ .then((data: IntegrationProgress[]) => {
+ progress.value = data;
+ if (data.length === 0) {
pause();
}
})
diff --git a/frontend/src/modules/integration/components/integration-progress.vue b/frontend/src/modules/integration/components/integration-progress.vue
index 9db877ad61..665582df50 100644
--- a/frontend/src/modules/integration/components/integration-progress.vue
+++ b/frontend/src/modules/integration/components/integration-progress.vue
@@ -45,7 +45,7 @@ const props = defineProps<{
showParts?: boolean,
}>();
-const statusPriority = {
+const statusPriority: Record = {
ok: 1,
'in-progress': 2,
};
diff --git a/frontend/src/modules/integration/helpers/integration-progress-notification.ts b/frontend/src/modules/integration/helpers/integration-progress-notification.ts
index ca134d79e3..765fb749a4 100644
--- a/frontend/src/modules/integration/helpers/integration-progress-notification.ts
+++ b/frontend/src/modules/integration/helpers/integration-progress-notification.ts
@@ -3,11 +3,12 @@ import AppIntegrationProgress from '@/modules/integration/components/integration
import AppIntegrationProgressWrapper from '@/modules/integration/components/integration-progress-wrapper.vue';
import { lfIntegrations } from '@/config/integrations';
import { ToastStore } from '@/shared/message/notification';
+import type { IntegrationProgress } from '@/modules/integration/types/IntegrationProgress';
-export const showIntegrationProgressNotification = (platform, segmentId) => {
+export const showIntegrationProgressNotification = (platform: string, segmentId: string) => {
const label = lfIntegrations()[platform]?.name;
- const defaultSlot = ({ progress }) => {
- const integrationProgress = (progress || []).find((p) => p.platform === platform);
+ const defaultSlot = ({ progress }: { progress: IntegrationProgress[] | null }) => {
+ const integrationProgress = (progress || []).find((p: IntegrationProgress) => p.platform === platform);
const text = h('p', {
class: 'text-2xs text-black leading-4.5 pb-4',
}, 'Sit back and relax. We will send you an email when the entire process is completed.');
diff --git a/frontend/src/modules/integration/types/IntegrationProgress.ts b/frontend/src/modules/integration/types/IntegrationProgress.ts
index f7e0c3473b..63865a472c 100644
--- a/frontend/src/modules/integration/types/IntegrationProgress.ts
+++ b/frontend/src/modules/integration/types/IntegrationProgress.ts
@@ -1,5 +1,6 @@
export interface IntegrationProgress {
data: Record
+ percentage?: number;
platform: string;
reportStatus: 'ok' | 'in-progress' | 'calculating';
segmentId: string;
diff --git a/frontend/src/modules/lf/segments/store/actions.js b/frontend/src/modules/lf/segments/store/actions.js
index 370f284818..e0e76f83c5 100644
--- a/frontend/src/modules/lf/segments/store/actions.js
+++ b/frontend/src/modules/lf/segments/store/actions.js
@@ -15,9 +15,7 @@ const isAdminOnly = () => {
export default {
// Project Groups
- listProjectGroups({
- search = null, offset, limit, reset = false, adminOnly,
- } = {}) {
+ listProjectGroups({ search = null, offset, limit, reset = false, adminOnly } = {}) {
if (reset) {
this.projectGroups.pagination = {
pageSize: 20,
@@ -132,9 +130,7 @@ export default {
},
// Projects
/** @param {{ parentSlug?: string | null, search?: string | null, offset?: number, limit?: number, reset?: boolean }} [params] */
- listProjects({
- parentSlug = null, search = null, offset, limit, reset = false,
- } = {}) {
+ listProjects({ parentSlug = null, search = null, offset, limit, reset = false } = {}) {
this.projects.loading = true;
if (parentSlug) {
@@ -201,7 +197,9 @@ export default {
this.listProjects();
})
.catch((err) => {
- ToastStore.error(getAxiosErrorMessage(err, 'Something went wrong while creating the project'));
+ ToastStore.error(
+ getAxiosErrorMessage(err, 'Something went wrong while creating the project'),
+ );
})
.finally(() => Promise.resolve());
},
@@ -212,7 +210,9 @@ export default {
this.updateProjectList(id, data);
})
.catch((err) => {
- ToastStore.error(getAxiosErrorMessage(err, 'Something went wrong while updating the project'));
+ ToastStore.error(
+ getAxiosErrorMessage(err, 'Something went wrong while updating the project'),
+ );
})
.finally(() => Promise.resolve());
},
@@ -244,7 +244,9 @@ export default {
this.listProjects();
})
.catch((err) => {
- ToastStore.error(getAxiosErrorMessage(err, 'Something went wrong while creating the sub-project'));
+ ToastStore.error(
+ getAxiosErrorMessage(err, 'Something went wrong while creating the sub-project'),
+ );
})
.finally(() => Promise.resolve());
},
@@ -255,7 +257,9 @@ export default {
this.listProjects();
})
.catch((err) => {
- ToastStore.error(getAxiosErrorMessage(err, 'Something went wrong while updating the sub-project'));
+ ToastStore.error(
+ getAxiosErrorMessage(err, 'Something went wrong while updating the sub-project'),
+ );
})
.finally(() => Promise.resolve());
},
diff --git a/frontend/src/modules/overview/components/fragments/status-display.vue b/frontend/src/modules/overview/components/fragments/status-display.vue
index b2cde9b771..ef40c318d3 100644
--- a/frontend/src/modules/overview/components/fragments/status-display.vue
+++ b/frontend/src/modules/overview/components/fragments/status-display.vue
@@ -9,7 +9,7 @@
In progress
diff --git a/frontend/src/modules/overview/components/fragments/trend-display.vue b/frontend/src/modules/overview/components/fragments/trend-display.vue
index 8d30d5b387..1c03b1a64a 100644
--- a/frontend/src/modules/overview/components/fragments/trend-display.vue
+++ b/frontend/src/modules/overview/components/fragments/trend-display.vue
@@ -34,7 +34,7 @@
import { computed } from 'vue';
import LfIcon from '@/ui-kit/icon/Icon.vue';
import { formatNumber } from '@/utils/number';
-import type { OverviewTrends } from '@/modules/admin/modules/overview/types/overview.types';
+import type { OverviewTrends } from '../../types/overview.types';
const props = withDefaults(
defineProps<{
diff --git a/frontend/src/shared/modules/merge/types/MemberMessage.ts b/frontend/src/shared/modules/merge/types/MemberMessage.ts
index e58228191f..73b09deade 100644
--- a/frontend/src/shared/modules/merge/types/MemberMessage.ts
+++ b/frontend/src/shared/modules/merge/types/MemberMessage.ts
@@ -2,17 +2,21 @@ import type { Member } from '@/modules/member/types/Member';
import type { AxiosError } from 'axios';
export interface SuccessMessage {
- primaryMember: Member;
- secondaryMember: Member;
- selectedProjectGroupId: number;
+ primaryMember: Member;
+ secondaryMember: Member;
+ selectedProjectGroupId: number;
}
export interface ErrorMessage {
- error: AxiosError
+ error: AxiosError;
}
export interface MemberMessage {
- loadingMessage: () => void;
- successMessage: ({ primaryMember, secondaryMember, selectedProjectGroupId }: SuccessMessage) => void;
- apiErrorMessage: ({ error }: ErrorMessage) => boolean;
- }
+ loadingMessage: () => void;
+ successMessage: ({
+ primaryMember,
+ secondaryMember,
+ selectedProjectGroupId,
+ }: SuccessMessage) => void;
+ apiErrorMessage: ({ error }: ErrorMessage) => boolean;
+}
diff --git a/frontend/src/ui-kit/contenteditable/Contenteditable.vue b/frontend/src/ui-kit/contenteditable/Contenteditable.vue
index cc37ebbb06..7e58d06425 100644
--- a/frontend/src/ui-kit/contenteditable/Contenteditable.vue
+++ b/frontend/src/ui-kit/contenteditable/Contenteditable.vue
@@ -17,16 +17,19 @@ const props = defineProps<{
const emit = defineEmits<{(e: 'update:modelValue', value: string): any }>();
-const editable = ref(null);
+const editable = ref(null);
const proxy = ref(props.modelValue);
-const onInput = (e: InputEvent) => {
- const value = e.target?.innerText;
+const onInput = (e: Event) => {
+ // shortcut: cast hides a null target; input events always have one. revisit: if onInput is reused
+ const value = (e.target as HTMLElement).innerText;
proxy.value = value;
emit('update:modelValue', value);
};
const setDefualtValue = () => {
- editable.value.innerText = props.modelValue;
+ if (editable.value) {
+ editable.value.innerText = props.modelValue;
+ }
};
watch(() => props.modelValue, () => {
diff --git a/frontend/src/ui-kit/dropdown/Dropdown.stories.ts b/frontend/src/ui-kit/dropdown/Dropdown.stories.ts
index ce55867cf7..b448ca10f0 100644
--- a/frontend/src/ui-kit/dropdown/Dropdown.stories.ts
+++ b/frontend/src/ui-kit/dropdown/Dropdown.stories.ts
@@ -29,7 +29,7 @@ export const Regular = {
placement: 'bottom-start',
width: 'auto',
},
- render: (args) => ({
+ render: (args: Record) => ({
components: {
LfDropdown,
LfDropdownItem,
diff --git a/frontend/src/ui-kit/dropdown/DropdownItem.stories.ts b/frontend/src/ui-kit/dropdown/DropdownItem.stories.ts
index 7cb775a2fd..559bd2e7a0 100644
--- a/frontend/src/ui-kit/dropdown/DropdownItem.stories.ts
+++ b/frontend/src/ui-kit/dropdown/DropdownItem.stories.ts
@@ -25,7 +25,7 @@ export const Regular = {
disabled: false,
type: 'regular',
},
- render: (args) => ({
+ render: (args: Record) => ({
components: {
LfDropdownItem,
},
diff --git a/frontend/src/ui-kit/field-messages/FieldMessages.vue b/frontend/src/ui-kit/field-messages/FieldMessages.vue
index c2144f3be6..8c9a65fa27 100644
--- a/frontend/src/ui-kit/field-messages/FieldMessages.vue
+++ b/frontend/src/ui-kit/field-messages/FieldMessages.vue
@@ -11,18 +11,20 @@