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 a8c074868..c859ac586 100644
--- a/packages/twenty-front/src/modules/settings/accounts/components/SettingsAccountsSynchronizationStatus.tsx
+++ b/packages/twenty-front/src/modules/settings/accounts/components/SettingsAccountsSynchronizationStatus.tsx
@@ -17,6 +17,7 @@ export const SettingsAccountsSynchronizationStatus = ({
return (
diff --git a/packages/twenty-front/src/modules/ui/display/status/components/Status.tsx b/packages/twenty-front/src/modules/ui/display/status/components/Status.tsx
index 17b0b4704..36fe7d6db 100644
--- a/packages/twenty-front/src/modules/ui/display/status/components/Status.tsx
+++ b/packages/twenty-front/src/modules/ui/display/status/components/Status.tsx
@@ -1,11 +1,13 @@
import styled from '@emotion/styled';
+import { Loader } from '@/ui/feedback/loader/components/Loader';
import { ThemeColor } from '@/ui/theme/constants/MainColorNames';
import { themeColorSchema } from '@/ui/theme/utils/themeColorSchema';
const StyledStatus = styled.h3<{
color: ThemeColor;
weight: 'regular' | 'medium';
+ isLoaderVisible: boolean;
}>`
align-items: center;
background: ${({ color, theme }) => theme.tag.background[color]};
@@ -19,7 +21,10 @@ const StyledStatus = styled.h3<{
height: ${({ theme }) => theme.spacing(5)};
margin: 0;
overflow: hidden;
- padding: 0 ${({ theme }) => theme.spacing(2)};
+ padding: 0
+ ${({ theme, isLoaderVisible }) =>
+ isLoaderVisible ? theme.spacing(1) : theme.spacing(2)}
+ 0 ${({ theme }) => theme.spacing(2)};
&:before {
background-color: ${({ color, theme }) => theme.tag.text[color]};
@@ -41,6 +46,7 @@ const StyledContent = styled.span`
type StatusProps = {
className?: string;
color: ThemeColor;
+ isLoaderVisible?: boolean;
text: string;
onClick?: () => void;
weight?: 'regular' | 'medium';
@@ -49,6 +55,7 @@ type StatusProps = {
export const Status = ({
className,
color,
+ isLoaderVisible = false,
text,
onClick,
weight = 'regular',
@@ -58,7 +65,9 @@ export const Status = ({
color={themeColorSchema.catch('gray').parse(color)}
onClick={onClick}
weight={weight}
+ isLoaderVisible={isLoaderVisible}
>
{text}
+ {isLoaderVisible ? : null}
);
diff --git a/packages/twenty-front/src/modules/ui/feedback/loader/components/Loader.tsx b/packages/twenty-front/src/modules/ui/feedback/loader/components/Loader.tsx
index 15cc03852..f76c2d155 100644
--- a/packages/twenty-front/src/modules/ui/feedback/loader/components/Loader.tsx
+++ b/packages/twenty-front/src/modules/ui/feedback/loader/components/Loader.tsx
@@ -1,7 +1,11 @@
import styled from '@emotion/styled';
import { motion } from 'framer-motion';
-const StyledLoaderContainer = styled.div`
+import { ThemeColor } from '@/ui/theme/constants/MainColorNames';
+
+const StyledLoaderContainer = styled.div<{
+ color?: ThemeColor;
+}>`
justify-content: center;
align-items: center;
display: flex;
@@ -9,20 +13,30 @@ const StyledLoaderContainer = styled.div`
width: ${({ theme }) => theme.spacing(6)};
height: ${({ theme }) => theme.spacing(3)};
border-radius: ${({ theme }) => theme.border.radius.pill};
- border: 1px solid ${({ theme }) => theme.font.color.tertiary};
+ border: 1px solid
+ ${({ color, theme }) =>
+ color ? theme.tag.text[color] : theme.font.color.tertiary};
overflow: hidden;
`;
-const StyledLoader = styled(motion.div)`
- background-color: ${({ theme }) => theme.font.color.tertiary};
+const StyledLoader = styled(motion.div)<{
+ color?: ThemeColor;
+}>`
+ background-color: ${({ color, theme }) =>
+ color ? theme.tag.text[color] : theme.font.color.tertiary};
border-radius: ${({ theme }) => theme.border.radius.pill};
height: 8px;
width: 8px;
`;
-export const Loader = () => (
-
+type LoaderProps = {
+ color?: ThemeColor;
+};
+
+export const Loader = ({ color }: LoaderProps) => (
+