diff --git a/packages/twenty-emails/package.json b/packages/twenty-emails/package.json index 8e0785846bce..36af44f3da6e 100644 --- a/packages/twenty-emails/package.json +++ b/packages/twenty-emails/package.json @@ -1,6 +1,6 @@ { "name": "twenty-emails", - "version": "0.24.0", + "version": "0.24.2", "description": "", "author": "", "private": true, diff --git a/packages/twenty-front/package.json b/packages/twenty-front/package.json index ed72dc01963c..434934ed719d 100644 --- a/packages/twenty-front/package.json +++ b/packages/twenty-front/package.json @@ -1,6 +1,6 @@ { "name": "twenty-front", - "version": "0.24.0", + "version": "0.24.2", "private": true, "type": "module", "scripts": { diff --git a/packages/twenty-front/src/modules/activities/tasks/components/TaskGroups.tsx b/packages/twenty-front/src/modules/activities/tasks/components/TaskGroups.tsx index 4503fd9913b3..a6e4999773bc 100644 --- a/packages/twenty-front/src/modules/activities/tasks/components/TaskGroups.tsx +++ b/packages/twenty-front/src/modules/activities/tasks/components/TaskGroups.tsx @@ -91,22 +91,24 @@ export const TaskGroups = ({ ); } + const sortedTasksByStatus = Object.entries( + groupBy(tasks, ({ status }) => status), + ).toSorted(([statusA], [statusB]) => statusB.localeCompare(statusA)); + return ( - {Object.entries(groupBy(tasks, ({ status }) => status)).map( - ([status, tasksByStatus]: [string, Task[]]) => ( - - ) - } - /> - ), - )} + {sortedTasksByStatus.map(([status, tasksByStatus]: [string, Task[]]) => ( + + ) + } + /> + ))} ); }; diff --git a/packages/twenty-front/src/modules/activities/tasks/components/TaskRow.tsx b/packages/twenty-front/src/modules/activities/tasks/components/TaskRow.tsx index 798bb077d797..52c1731db039 100644 --- a/packages/twenty-front/src/modules/activities/tasks/components/TaskRow.tsx +++ b/packages/twenty-front/src/modules/activities/tasks/components/TaskRow.tsx @@ -36,6 +36,8 @@ const StyledTaskBody = styled.div` max-width: 100%; flex: 1; overflow: hidden; + + padding-bottom: ${({ theme }) => theme.spacing(0.25)}; `; const StyledTaskTitle = styled.div<{ @@ -44,10 +46,13 @@ const StyledTaskTitle = styled.div<{ color: ${({ theme }) => theme.font.color.primary}; font-weight: ${({ theme }) => theme.font.weight.medium}; padding: 0 ${({ theme }) => theme.spacing(2)}; + padding-bottom: ${({ theme }) => theme.spacing(0.25)}; text-decoration: ${({ completed }) => (completed ? 'line-through' : 'none')}; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; + + align-items: center; `; const StyledDueDate = styled.div<{ @@ -71,8 +76,10 @@ const StyledPlaceholder = styled.div` `; const StyledLeftSideContainer = styled.div` + align-items: center; display: flex; flex: 1; + overflow: hidden; `; diff --git a/packages/twenty-front/src/modules/activities/timelineActivities/components/EventRow.tsx b/packages/twenty-front/src/modules/activities/timelineActivities/components/EventRow.tsx index 902a7b728db1..d920ec38f0b9 100644 --- a/packages/twenty-front/src/modules/activities/timelineActivities/components/EventRow.tsx +++ b/packages/twenty-front/src/modules/activities/timelineActivities/components/EventRow.tsx @@ -14,6 +14,7 @@ import { beautifyPastDateRelativeToNow } from '~/utils/date-utils'; import { isUndefinedOrNull } from '~/utils/isUndefinedOrNull'; const StyledTimelineItemContainer = styled.div` + color: ${({ theme }) => theme.font.color.primary}; display: flex; gap: ${({ theme }) => theme.spacing(4)}; height: 'auto'; diff --git a/packages/twenty-front/src/modules/settings/components/SettingsPageContainer.tsx b/packages/twenty-front/src/modules/settings/components/SettingsPageContainer.tsx index 2fc661c7a756..d33f1493d775 100644 --- a/packages/twenty-front/src/modules/settings/components/SettingsPageContainer.tsx +++ b/packages/twenty-front/src/modules/settings/components/SettingsPageContainer.tsx @@ -1,11 +1,9 @@ -import styled from '@emotion/styled'; -import { ReactNode } from 'react'; - import { OBJECT_SETTINGS_WIDTH } from '@/settings/data-model/constants/ObjectSettings'; import { useIsMobile } from '@/ui/utilities/responsive/hooks/useIsMobile'; -import { isDefined } from '~/utils/isDefined'; - import { ScrollWrapper } from '@/ui/utilities/scroll/components/ScrollWrapper'; +import styled from '@emotion/styled'; +import { ReactNode } from 'react'; +import { isDefined } from '~/utils/isDefined'; const StyledSettingsPageContainer = styled.div<{ width?: number }>` display: flex; @@ -24,17 +22,12 @@ const StyledSettingsPageContainer = styled.div<{ width?: number }>` }}; `; -const StyledScrollWrapper = styled(ScrollWrapper)` - background-color: ${({ theme }) => theme.background.secondary}; - border-radius: ${({ theme }) => theme.border.radius.md}; -`; - export const SettingsPageContainer = ({ children, }: { children: ReactNode; }) => ( - + {children} - + ); diff --git a/packages/twenty-front/src/modules/ui/navigation/link/components/UndecoratedLink.tsx b/packages/twenty-front/src/modules/ui/navigation/link/components/UndecoratedLink.tsx index c5c6e2ed15e8..09cae367bacf 100644 --- a/packages/twenty-front/src/modules/ui/navigation/link/components/UndecoratedLink.tsx +++ b/packages/twenty-front/src/modules/ui/navigation/link/components/UndecoratedLink.tsx @@ -1,8 +1,15 @@ import styled from '@emotion/styled'; import React from 'react'; -import { Link } from 'react-router-dom'; +import { Link, LinkProps } from 'react-router-dom'; -const StyledUndecoratedLink = styled(Link)<{ fullWidth: boolean }>` +type StyledLinkProps = LinkProps & { + fullWidth?: boolean; +}; + +const StyledUndecoratedLink = styled( + // eslint-disable-next-line react/jsx-props-no-spreading + ({ fullWidth: _, ...props }: StyledLinkProps) => , +)` text-decoration: none; width: ${({ fullWidth }) => (fullWidth ? '100%' : 'auto')}; `; diff --git a/packages/twenty-front/src/modules/views/view-picker/components/ViewPickerCreateOrEditContent.tsx b/packages/twenty-front/src/modules/views/view-picker/components/ViewPickerCreateOrEditContent.tsx index 8a1dc16e26be..a5402ea20fd4 100644 --- a/packages/twenty-front/src/modules/views/view-picker/components/ViewPickerCreateOrEditContent.tsx +++ b/packages/twenty-front/src/modules/views/view-picker/components/ViewPickerCreateOrEditContent.tsx @@ -79,6 +79,8 @@ export const ViewPickerCreateOrEditContent = () => { const { handleCreate, handleUpdate } = useViewPickerPersistView(); + const { availableFieldsForKanban } = useGetAvailableFieldsForKanban(); + useScopedHotkeys( Key.Enter, async () => { @@ -86,6 +88,12 @@ export const ViewPickerCreateOrEditContent = () => { return; } if (viewPickerMode === 'create') { + if ( + viewPickerType === ViewType.Kanban && + availableFieldsForKanban.length === 0 + ) { + return; + } await handleCreate(); } if (viewPickerMode === 'edit') { @@ -100,8 +108,6 @@ export const ViewPickerCreateOrEditContent = () => { setViewPickerSelectedIcon(iconKey); }; - const { availableFieldsForKanban } = useGetAvailableFieldsForKanban(); - const handleClose = async () => { if (viewPickerMode === 'edit') { await handleUpdate(); diff --git a/packages/twenty-server/package.json b/packages/twenty-server/package.json index 0b91d978cd6e..3d42d5e782d6 100644 --- a/packages/twenty-server/package.json +++ b/packages/twenty-server/package.json @@ -1,6 +1,6 @@ { "name": "twenty-server", - "version": "0.24.0", + "version": "0.24.2", "description": "", "author": "", "private": true, diff --git a/packages/twenty-ui/package.json b/packages/twenty-ui/package.json index b22ff8b7ca2a..132d5b99edaf 100644 --- a/packages/twenty-ui/package.json +++ b/packages/twenty-ui/package.json @@ -1,6 +1,6 @@ { "name": "twenty-ui", - "version": "0.24.0", + "version": "0.24.2", "type": "module", "main": "./src/index.ts", "exports": { diff --git a/packages/twenty-website/package.json b/packages/twenty-website/package.json index 0eb6260beb6a..3219867baf33 100644 --- a/packages/twenty-website/package.json +++ b/packages/twenty-website/package.json @@ -1,6 +1,6 @@ { "name": "twenty-website", - "version": "0.24.0", + "version": "0.24.2", "private": true, "scripts": { "nx": "NX_DEFAULT_PROJECT=twenty-website node ../../node_modules/nx/bin/nx.js",