diff --git a/packages/twenty-front/src/modules/accounts/types/MessageChannel.ts b/packages/twenty-front/src/modules/accounts/types/MessageChannel.ts
index 90f28ed78..2517f506e 100644
--- a/packages/twenty-front/src/modules/accounts/types/MessageChannel.ts
+++ b/packages/twenty-front/src/modules/accounts/types/MessageChannel.ts
@@ -6,4 +6,5 @@ export type MessageChannel = {
isContactAutoCreationEnabled?: boolean;
isSyncEnabled: boolean;
visibility: InboxSettingsVisibilityValue;
+ syncStatus: string;
};
diff --git a/packages/twenty-front/src/modules/settings/accounts/components/SettingsAccountsMessageChannelsListCard.tsx b/packages/twenty-front/src/modules/settings/accounts/components/SettingsAccountsMessageChannelsListCard.tsx
index 1d6e6f28a..f3a08a0d0 100644
--- a/packages/twenty-front/src/modules/settings/accounts/components/SettingsAccountsMessageChannelsListCard.tsx
+++ b/packages/twenty-front/src/modules/settings/accounts/components/SettingsAccountsMessageChannelsListCard.tsx
@@ -55,11 +55,7 @@ export const SettingsAccountsMessageChannelsListCard = () => {
} & SettingsAccountsSynchronizationStatusProps)[] = messageChannels.map(
(messageChannel) => ({
...messageChannel,
- syncStatus: messageChannel.connectedAccount?.authFailedAt
- ? 'failed'
- : messageChannel.isSyncEnabled
- ? 'synced'
- : 'notSynced',
+ syncStatus: messageChannel.syncStatus,
}),
);
diff --git a/packages/twenty-front/src/modules/settings/accounts/components/SettingsAccountsSynchronizationStatus.tsx b/packages/twenty-front/src/modules/settings/accounts/components/SettingsAccountsSynchronizationStatus.tsx
index 8d07a6ad0..a8c074868 100644
--- a/packages/twenty-front/src/modules/settings/accounts/components/SettingsAccountsSynchronizationStatus.tsx
+++ b/packages/twenty-front/src/modules/settings/accounts/components/SettingsAccountsSynchronizationStatus.tsx
@@ -1,27 +1,24 @@
+import { useGetSyncStatusOptions } from '@/settings/accounts/hooks//useGetSyncStatusOptions';
import { Status } from '@/ui/display/status/components/Status';
export type SettingsAccountsSynchronizationStatusProps = {
- syncStatus: 'synced' | 'failed' | 'notSynced';
+ syncStatus: string;
};
export const SettingsAccountsSynchronizationStatus = ({
syncStatus,
-}: SettingsAccountsSynchronizationStatusProps) => (
-
-);
+}: SettingsAccountsSynchronizationStatusProps) => {
+ const syncStatusOptions = useGetSyncStatusOptions();
+
+ const syncStatusOption = syncStatusOptions?.find(
+ (option) => option.value === syncStatus,
+ );
+
+ return (
+
+ );
+};
diff --git a/packages/twenty-front/src/modules/settings/accounts/hooks/useGetSyncStatusOptions.ts b/packages/twenty-front/src/modules/settings/accounts/hooks/useGetSyncStatusOptions.ts
new file mode 100644
index 000000000..f349f3fe9
--- /dev/null
+++ b/packages/twenty-front/src/modules/settings/accounts/hooks/useGetSyncStatusOptions.ts
@@ -0,0 +1,25 @@
+import { useObjectMetadataItem } from '@/object-metadata/hooks/useObjectMetadataItem';
+import { CoreObjectNameSingular } from '@/object-metadata/types/CoreObjectNameSingular';
+import { isUndefinedOrNull } from '~/utils/isUndefinedOrNull';
+
+export const useGetSyncStatusOptions = () => {
+ const { objectMetadataItem } = useObjectMetadataItem({
+ objectNameSingular: CoreObjectNameSingular.MessageChannel,
+ });
+
+ if (isUndefinedOrNull(objectMetadataItem)) {
+ throw new Error('ObjectMetadataItem not found for MessageChannel');
+ }
+
+ const syncStatusMetadata = objectMetadataItem.fields.find(
+ (field) => field.name === 'syncStatus',
+ );
+
+ const syncStatusOptions = syncStatusMetadata?.options;
+
+ if (isUndefinedOrNull(syncStatusMetadata)) {
+ throw new Error('syncStatusMetaData not found for MessageChannel');
+ }
+
+ return syncStatusOptions;
+};