diff --git a/packages/twenty-front/src/modules/object-record/record-field/components/FieldDisplay.tsx b/packages/twenty-front/src/modules/object-record/record-field/components/FieldDisplay.tsx
index 738c35ac2..454cdb949 100644
--- a/packages/twenty-front/src/modules/object-record/record-field/components/FieldDisplay.tsx
+++ b/packages/twenty-front/src/modules/object-record/record-field/components/FieldDisplay.tsx
@@ -1,6 +1,8 @@
import { useContext } from 'react';
+import { BooleanFieldDisplay } from '@/object-record/record-field/meta-types/display/components/BooleanFieldDisplay';
import { LinksFieldDisplay } from '@/object-record/record-field/meta-types/display/components/LinksFieldDisplay';
+import { isFieldBoolean } from '@/object-record/record-field/types/guards/isFieldBoolean';
import { isFieldDisplayedAsPhone } from '@/object-record/record-field/types/guards/isFieldDisplayedAsPhone';
import { isFieldLinks } from '@/object-record/record-field/types/guards/isFieldLinks';
@@ -81,5 +83,7 @@ export const FieldDisplay = () => {
) : isFieldRawJson(fieldDefinition) ? (
+ ) : isFieldBoolean(fieldDefinition) ? (
+
) : null;
};
diff --git a/packages/twenty-front/src/modules/object-record/record-field/meta-types/display/components/BooleanFieldDisplay.tsx b/packages/twenty-front/src/modules/object-record/record-field/meta-types/display/components/BooleanFieldDisplay.tsx
new file mode 100644
index 000000000..5c8dcac5e
--- /dev/null
+++ b/packages/twenty-front/src/modules/object-record/record-field/meta-types/display/components/BooleanFieldDisplay.tsx
@@ -0,0 +1,8 @@
+import { useBooleanField } from '@/object-record/record-field/meta-types/hooks/useBooleanField';
+import { BooleanDisplay } from '@/ui/field/display/components/BooleanDisplay';
+
+export const BooleanFieldDisplay = () => {
+ const { fieldValue } = useBooleanField();
+
+ return ;
+};
diff --git a/packages/twenty-front/src/modules/ui/field/display/components/BooleanDisplay.tsx b/packages/twenty-front/src/modules/ui/field/display/components/BooleanDisplay.tsx
new file mode 100644
index 000000000..47911a936
--- /dev/null
+++ b/packages/twenty-front/src/modules/ui/field/display/components/BooleanDisplay.tsx
@@ -0,0 +1,36 @@
+import { useTheme } from '@emotion/react';
+import styled from '@emotion/styled';
+import { IconCheck, IconX } from 'twenty-ui';
+
+import { isDefined } from '~/utils/isDefined';
+
+const StyledBooleanFieldValue = styled.div`
+ margin-left: ${({ theme }) => theme.spacing(1)};
+`;
+
+type BooleanDisplayProps = {
+ value: boolean | null;
+};
+
+export const BooleanDisplay = ({ value }: BooleanDisplayProps) => {
+ const theme = useTheme();
+
+ return (
+ <>
+ {isDefined(value) ? (
+ <>
+ {value ? (
+
+ ) : (
+
+ )}
+
+ {value ? 'True' : 'False'}
+
+ >
+ ) : (
+ <>>
+ )}
+ >
+ );
+};
diff --git a/packages/twenty-front/src/modules/ui/field/input/components/BooleanInput.tsx b/packages/twenty-front/src/modules/ui/field/input/components/BooleanInput.tsx
index 348c89d78..30d33eecd 100644
--- a/packages/twenty-front/src/modules/ui/field/input/components/BooleanInput.tsx
+++ b/packages/twenty-front/src/modules/ui/field/input/components/BooleanInput.tsx
@@ -1,7 +1,7 @@
import { useEffect, useState } from 'react';
-import { useTheme } from '@emotion/react';
import styled from '@emotion/styled';
-import { IconCheck, IconX } from 'twenty-ui';
+
+import { BooleanDisplay } from '@/ui/field/display/components/BooleanDisplay';
const StyledEditableBooleanFieldContainer = styled.div`
align-items: center;
@@ -12,10 +12,6 @@ const StyledEditableBooleanFieldContainer = styled.div`
width: 100%;
`;
-const StyledEditableBooleanFieldValue = styled.div`
- margin-left: ${({ theme }) => theme.spacing(1)};
-`;
-
type BooleanInputProps = {
value: boolean;
onToggle?: (newValue: boolean) => void;
@@ -40,21 +36,12 @@ export const BooleanInput = ({
onToggle?.(!internalValue);
};
- const theme = useTheme();
-
return (
- {internalValue ? (
-
- ) : (
-
- )}
-
- {internalValue ? 'True' : 'False'}
-
+
);
};