Skip to content

Commit 4dfabd0

Browse files
harshit078ehconitinFelixMalfait
committed
fix: New Relation Design hot fix (twentyhq#7423)
## Description - This PR solves the issue twentyhq#7353 - [x] Improved layout for mobile and desktop - [ ] Added tooltip on hover --------- Co-authored-by: Nitin Koche <[email protected]> Co-authored-by: Félix Malfait <[email protected]>
1 parent 45e0e00 commit 4dfabd0

File tree

2 files changed

+23
-11
lines changed

2 files changed

+23
-11
lines changed

packages/twenty-front/src/modules/settings/data-model/fields/forms/relation/components/SettingsDataModelFieldRelationForm.tsx

+6-4
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ import { RelationType } from '@/settings/data-model/types/RelationType';
1414
import { IconPicker } from '@/ui/input/components/IconPicker';
1515
import { Select } from '@/ui/input/components/Select';
1616
import { TextInput } from '@/ui/input/components/TextInput';
17+
import { useIsMobile } from '@/ui/utilities/responsive/hooks/useIsMobile';
1718
import { RelationDefinitionType } from '~/generated-metadata/graphql';
1819

1920
export const settingsDataModelFieldRelationFormSchema = z.object({
@@ -44,13 +45,12 @@ const StyledContainer = styled.div`
4445
padding: ${({ theme }) => theme.spacing(4)};
4546
`;
4647

47-
const StyledSelectsContainer = styled.div`
48+
const StyledSelectsContainer = styled.div<{ isMobile: boolean }>`
4849
display: grid;
4950
gap: ${({ theme }) => theme.spacing(4)};
50-
grid-template-columns: 1fr 1fr;
51+
grid-template-columns: ${({ isMobile }) => (isMobile ? '1fr' : '1fr 1fr')};
5152
margin-bottom: ${({ theme }) => theme.spacing(4)};
5253
`;
53-
5454
const StyledInputsLabel = styled.span`
5555
color: ${({ theme }) => theme.font.color.light};
5656
display: block;
@@ -98,9 +98,11 @@ export const SettingsDataModelFieldRelationForm = ({
9898
watchFormValue('relation.objectMetadataId'),
9999
);
100100

101+
const isMobile = useIsMobile();
102+
101103
return (
102104
<StyledContainer>
103-
<StyledSelectsContainer>
105+
<StyledSelectsContainer isMobile={isMobile}>
104106
<Controller
105107
name="relation.type"
106108
control={control}

packages/twenty-front/src/modules/settings/data-model/fields/forms/relation/components/SettingsDataModelFieldRelationSettingsFormCard.tsx

+17-7
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,8 @@ import {
1414
SettingsDataModelFieldPreviewCard,
1515
SettingsDataModelFieldPreviewCardProps,
1616
} from '@/settings/data-model/fields/preview/components/SettingsDataModelFieldPreviewCard';
17+
import { useIsMobile } from '@/ui/utilities/responsive/hooks/useIsMobile';
1718
import { FieldMetadataType } from '~/generated-metadata/graphql';
18-
1919
type SettingsDataModelFieldRelationSettingsFormCardProps = {
2020
fieldMetadataItem: Pick<FieldMetadataItem, 'icon' | 'label' | 'type'> &
2121
Partial<Omit<FieldMetadataItem, 'icon' | 'label' | 'type'>>;
@@ -27,14 +27,23 @@ const StyledFieldPreviewCard = styled(SettingsDataModelFieldPreviewCard)`
2727
flex: 1 1 100%;
2828
`;
2929

30-
const StyledPreviewContent = styled.div`
30+
const StyledPreviewContent = styled.div<{ isMobile: boolean }>`
3131
display: flex;
32-
flex-direction: column;
3332
gap: 6px;
33+
flex-direction: ${({ isMobile }) => (isMobile ? 'column' : 'row')};
3434
`;
3535

36-
const StyledRelationImage = styled.img<{ flip?: boolean }>`
37-
transform: ${({ flip }) => (flip ? 'scaleX(-1) rotate(270deg)' : 'none')};
36+
const StyledRelationImage = styled.img<{ flip?: boolean; isMobile: boolean }>`
37+
transform: ${({ flip, isMobile }) => {
38+
let transform = '';
39+
if (isMobile) {
40+
transform += 'rotate(90deg) ';
41+
}
42+
if (flip === true) {
43+
transform += 'scaleX(-1)';
44+
}
45+
return transform.trim();
46+
}};
3847
margin: auto;
3948
width: 54px;
4049
`;
@@ -46,7 +55,7 @@ export const SettingsDataModelFieldRelationSettingsFormCard = ({
4655
const { watch: watchFormValue } =
4756
useFormContext<SettingsDataModelFieldRelationFormValues>();
4857
const { findObjectMetadataItemById } = useFilteredObjectMetadataItems();
49-
58+
const isMobile = useIsMobile();
5059
const {
5160
initialRelationObjectMetadataItem,
5261
initialRelationType,
@@ -69,7 +78,7 @@ export const SettingsDataModelFieldRelationSettingsFormCard = ({
6978
return (
7079
<SettingsDataModelPreviewFormCard
7180
preview={
72-
<StyledPreviewContent>
81+
<StyledPreviewContent isMobile={isMobile}>
7382
<StyledFieldPreviewCard
7483
fieldMetadataItem={fieldMetadataItem}
7584
shrink
@@ -80,6 +89,7 @@ export const SettingsDataModelFieldRelationSettingsFormCard = ({
8089
src={relationTypeConfig.imageSrc}
8190
flip={relationTypeConfig.isImageFlipped}
8291
alt={relationTypeConfig.label}
92+
isMobile={isMobile}
8393
/>
8494
<StyledFieldPreviewCard
8595
fieldMetadataItem={{

0 commit comments

Comments
 (0)