diff --git a/packages/twenty-front/src/modules/settings/accounts/components/SettingsAccountEmailsSkeletonCard.tsx b/packages/twenty-front/src/modules/settings/accounts/components/SettingsAccountEmailsSkeletonCard.tsx new file mode 100644 index 000000000..b30fbbec5 --- /dev/null +++ b/packages/twenty-front/src/modules/settings/accounts/components/SettingsAccountEmailsSkeletonCard.tsx @@ -0,0 +1,10 @@ +import styled from '@emotion/styled'; + +import { Card } from '@/ui/layout/card/components/Card'; + +const StyledCard = styled(Card)` + background-color: ${({ theme }) => theme.background.secondary}; + height: 40px; +`; + +export const SettingsAccountEmailsSkeletonCard = () => ; diff --git a/packages/twenty-front/src/modules/settings/accounts/components/SettingsAccountsEmailsSyncSection.tsx b/packages/twenty-front/src/modules/settings/accounts/components/SettingsAccountsEmailsSyncSection.tsx index ba6a3a0a4..198e47420 100644 --- a/packages/twenty-front/src/modules/settings/accounts/components/SettingsAccountsEmailsSyncSection.tsx +++ b/packages/twenty-front/src/modules/settings/accounts/components/SettingsAccountsEmailsSyncSection.tsx @@ -4,6 +4,7 @@ import { ConnectedAccount } from '@/accounts/types/ConnectedAccount'; import { MessageChannel } from '@/accounts/types/MessageChannel'; import { currentWorkspaceMemberState } from '@/auth/states/currentWorkspaceMemberState'; import { useFindManyRecords } from '@/object-record/hooks/useFindManyRecords'; +import { SettingsAccountEmailsSkeletonCard } from '@/settings/accounts/components/SettingsAccountEmailsSkeletonCard'; import { H2Title } from '@/ui/display/typography/components/H2Title'; import { Section } from '@/ui/layout/section/components/Section'; @@ -13,23 +14,25 @@ import { SettingsAccountsEmptyStateCard } from './SettingsAccountsEmptyStateCard export const SettingsAccountsEmailsSyncSection = () => { const currentWorkspaceMember = useRecoilValue(currentWorkspaceMemberState); - const accounts = useFindManyRecords({ - objectNameSingular: 'connectedAccount', - filter: { - accountOwnerId: { - eq: currentWorkspaceMember?.id, + const { records: accounts, loading: accountsLoading } = + useFindManyRecords({ + objectNameSingular: 'connectedAccount', + filter: { + accountOwnerId: { + eq: currentWorkspaceMember?.id, + }, }, - }, - }).records; + }); - const messageChannels = useFindManyRecords({ - objectNameSingular: 'messageChannel', - filter: { - connectedAccountId: { - in: accounts.map((account) => account.id), + const { records: messageChannels, loading: messageChannelsLoading } = + useFindManyRecords({ + objectNameSingular: 'messageChannel', + filter: { + connectedAccountId: { + in: accounts.map((account) => account.id), + }, }, - }, - }).records; + }); const messageChannelsWithSyncedEmails = messageChannels.map( (messageChannel) => ({ @@ -38,13 +41,18 @@ export const SettingsAccountsEmailsSyncSection = () => { }), ); + const loading = accountsLoading || messageChannelsLoading; + return (
- {accounts.length ? ( + + {loading ? ( + + ) : accounts.length ? (