Skip to content

Commit d8a57c6

Browse files
authored
Fix verticale line timeline activity (twentyhq#5894)
Before <img width="400" alt="Capture d’écran 2024-06-17 à 10 23 17" src="https://github.com/twentyhq/twenty/assets/22936103/01408d7b-9a6c-4a21-9f08-c8cf304e2ea0"> After <img width="400" alt="Capture d’écran 2024-06-17 à 10 05 39" src="https://github.com/twentyhq/twenty/assets/22936103/df384726-bbf9-4828-ad47-d1c91724947d">
1 parent bca374c commit d8a57c6

File tree

2 files changed

+56
-55
lines changed

2 files changed

+56
-55
lines changed

packages/twenty-front/src/modules/activities/timelineActivities/components/EventRow.tsx

+55-54
Original file line numberDiff line numberDiff line change
@@ -10,10 +10,23 @@ import { TimelineActivity } from '@/activities/timelineActivities/types/Timeline
1010
import { getTimelineActivityAuthorFullName } from '@/activities/timelineActivities/utils/getTimelineActivityAuthorFullName';
1111
import { currentWorkspaceMemberState } from '@/auth/states/currentWorkspaceMemberState';
1212
import { ObjectMetadataItem } from '@/object-metadata/types/ObjectMetadataItem';
13-
import { useIsMobile } from '@/ui/utilities/responsive/hooks/useIsMobile';
1413
import { beautifyPastDateRelativeToNow } from '~/utils/date-utils';
1514
import { isUndefinedOrNull } from '~/utils/isUndefinedOrNull';
1615

16+
const StyledTimelineItemContainer = styled.div`
17+
display: flex;
18+
gap: ${({ theme }) => theme.spacing(4)};
19+
height: 'auto';
20+
justify-content: space-between;
21+
overflow: hidden;
22+
white-space: nowrap;
23+
`;
24+
25+
const StyledLeftContainer = styled.div`
26+
display: flex;
27+
flex-direction: column;
28+
`;
29+
1730
const StyledIconContainer = styled.div`
1831
display: flex;
1932
align-items: center;
@@ -25,62 +38,50 @@ const StyledIconContainer = styled.div`
2538
user-select: none;
2639
text-decoration-line: underline;
2740
z-index: 2;
28-
align-self: normal;
29-
`;
30-
31-
const StyledItemContainer = styled.div`
32-
display: flex;
33-
align-items: center;
34-
gap: ${({ theme }) => theme.spacing(1)};
35-
flex: 1;
36-
overflow: hidden;
37-
`;
38-
39-
const StyledItemTitleDate = styled.div`
40-
align-items: center;
41-
color: ${({ theme }) => theme.font.color.tertiary};
42-
display: flex;
43-
gap: ${({ theme }) => theme.spacing(2)};
44-
justify-content: flex-end;
45-
margin-left: auto;
46-
align-self: baseline;
4741
`;
4842

4943
const StyledVerticalLineContainer = styled.div`
50-
align-items: center;
51-
align-self: stretch;
5244
display: flex;
53-
gap: ${({ theme }) => theme.spacing(2)};
45+
flex-shrink: 0;
5446
justify-content: center;
55-
width: 26px;
5647
z-index: 2;
48+
height: 100%;
5749
`;
5850

5951
const StyledVerticalLine = styled.div`
60-
align-self: stretch;
6152
background: ${({ theme }) => theme.border.color.light};
62-
flex-shrink: 0;
6353
width: 2px;
54+
height: 100%;
6455
`;
6556

66-
const StyledTimelineItemContainer = styled.div<{ isGap?: boolean }>`
67-
display: flex;
57+
const StyledSummary = styled.summary`
6858
align-items: center;
69-
justify-content: space-between;
70-
gap: ${({ theme }) => theme.spacing(4)};
71-
height: ${({ isGap, theme }) =>
72-
isGap ? (useIsMobile() ? theme.spacing(6) : theme.spacing(3)) : 'auto'};
73-
overflow: hidden;
74-
white-space: nowrap;
59+
display: flex;
60+
flex: 1;
61+
flex-direction: row;
62+
gap: ${({ theme }) => theme.spacing(1)};
7563
`;
7664

77-
const StyledSummary = styled.summary`
65+
const StyledItemContainer = styled.div<{ isMarginBottom?: boolean }>`
66+
align-items: flex-start;
7867
display: flex;
7968
flex: 1;
80-
flex-direction: row;
69+
flex-direction: column;
8170
gap: ${({ theme }) => theme.spacing(1)};
82-
align-items: center;
8371
overflow: hidden;
72+
margin-bottom: ${({ isMarginBottom, theme }) =>
73+
isMarginBottom ? theme.spacing(3) : 0};
74+
min-height: 26px;
75+
`;
76+
77+
const StyledItemTitleDate = styled.div`
78+
align-items: flex-start;
79+
padding-top: ${({ theme }) => theme.spacing(1)};
80+
color: ${({ theme }) => theme.font.color.tertiary};
81+
display: flex;
82+
gap: ${({ theme }) => theme.spacing(1)};
83+
justify-content: flex-end;
84+
margin-left: auto;
8485
`;
8586

8687
type EventRowProps = {
@@ -118,13 +119,20 @@ export const EventRow = ({
118119
return (
119120
<>
120121
<StyledTimelineItemContainer>
121-
<StyledIconContainer>
122-
<EventIconDynamicComponent
123-
event={event}
124-
linkedObjectMetadataItem={linkedObjectMetadataItem}
125-
/>
126-
</StyledIconContainer>
127-
<StyledItemContainer>
122+
<StyledLeftContainer>
123+
<StyledIconContainer>
124+
<EventIconDynamicComponent
125+
event={event}
126+
linkedObjectMetadataItem={linkedObjectMetadataItem}
127+
/>
128+
</StyledIconContainer>
129+
{!isLastEvent && (
130+
<StyledVerticalLineContainer>
131+
<StyledVerticalLine />
132+
</StyledVerticalLineContainer>
133+
)}
134+
</StyledLeftContainer>
135+
<StyledItemContainer isMarginBottom={!isLastEvent}>
128136
<StyledSummary>
129137
<EventRowDynamicComponent
130138
authorFullName={authorFullName}
@@ -134,18 +142,11 @@ export const EventRow = ({
134142
linkedObjectMetadataItem={linkedObjectMetadataItem}
135143
/>
136144
</StyledSummary>
137-
<StyledItemTitleDate id={`id-${event.id}`}>
138-
{beautifiedCreatedAt}
139-
</StyledItemTitleDate>
140145
</StyledItemContainer>
146+
<StyledItemTitleDate id={`id-${event.id}`}>
147+
{beautifiedCreatedAt}
148+
</StyledItemTitleDate>
141149
</StyledTimelineItemContainer>
142-
{!isLastEvent && (
143-
<StyledTimelineItemContainer isGap>
144-
<StyledVerticalLineContainer>
145-
<StyledVerticalLine />
146-
</StyledVerticalLineContainer>
147-
</StyledTimelineItemContainer>
148-
)}
149150
</>
150151
);
151152
};

packages/twenty-front/src/modules/activities/timelineActivities/rows/components/EventCard.tsx

+1-1
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ const StyledCardContainer = styled.div`
1515
gap: ${({ theme }) => theme.spacing(2)};
1616
width: 400px;
1717
padding: ${({ theme }) => theme.spacing(2)} 0px
18-
${({ theme }) => theme.spacing(4)} 0px;
18+
${({ theme }) => theme.spacing(1)} 0px;
1919
`;
2020

2121
const StyledCard = styled(Card)`

0 commit comments

Comments
 (0)