Files
twenty_crm/packages/twenty-front/src/modules/settings/accounts/utils/computeSyncStatus.ts
2024-09-18 18:46:39 +02:00

43 lines
1.3 KiB
TypeScript

import { CalendarChannelSyncStatus } from '@/accounts/types/CalendarChannel';
import { MessageChannelSyncStatus } from '@/accounts/types/MessageChannel';
import { SyncStatus } from '@/settings/accounts/constants/SyncStatus';
export const computeSyncStatus = (
messageChannelSyncStatus: MessageChannelSyncStatus,
calendarChannelSyncStatus: CalendarChannelSyncStatus,
) => {
if (
messageChannelSyncStatus === MessageChannelSyncStatus.FAILED_UNKNOWN ||
messageChannelSyncStatus ===
MessageChannelSyncStatus.FAILED_INSUFFICIENT_PERMISSIONS ||
calendarChannelSyncStatus === CalendarChannelSyncStatus.FAILED_UNKNOWN ||
calendarChannelSyncStatus ===
CalendarChannelSyncStatus.FAILED_INSUFFICIENT_PERMISSIONS
) {
return SyncStatus.FAILED;
}
if (
messageChannelSyncStatus === MessageChannelSyncStatus.ONGOING ||
calendarChannelSyncStatus === CalendarChannelSyncStatus.ONGOING
) {
return SyncStatus.IMPORTING;
}
if (
messageChannelSyncStatus === MessageChannelSyncStatus.NOT_SYNCED &&
calendarChannelSyncStatus === CalendarChannelSyncStatus.NOT_SYNCED
) {
return SyncStatus.NOT_SYNCED;
}
if (
messageChannelSyncStatus === MessageChannelSyncStatus.ACTIVE ||
calendarChannelSyncStatus === CalendarChannelSyncStatus.ACTIVE
) {
return SyncStatus.SYNCED;
}
return SyncStatus.NOT_SYNCED;
};