From 8c33e4cdae2c747f090bbf27652e36e63f76fd82 Mon Sep 17 00:00:00 2001
From: Harshit Singh <73997189+harshit078@users.noreply.github.com>
Date: Sat, 16 Nov 2024 21:17:36 +0530
Subject: [PATCH] fix: Checkbox column width should be fixed (#8489)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
## Description
- This PR adds the functionality of fixed column width across all boards
- This PR fixes the issue
#8463
#8331
---------
Co-authored-by: Félix Malfait
---
.../components/RecordTableLastEmptyCell.tsx | 7 ++++-
.../RecordTableHeaderCheckboxColumn.tsx | 4 +--
.../RecordTableHeaderLastColumn.tsx | 30 +++++++++----------
3 files changed, 22 insertions(+), 19 deletions(-)
diff --git a/packages/twenty-front/src/modules/object-record/record-table/record-table-cell/components/RecordTableLastEmptyCell.tsx b/packages/twenty-front/src/modules/object-record/record-table/record-table-cell/components/RecordTableLastEmptyCell.tsx
index c8f5bccdf..8dd8112a2 100644
--- a/packages/twenty-front/src/modules/object-record/record-table/record-table-cell/components/RecordTableLastEmptyCell.tsx
+++ b/packages/twenty-front/src/modules/object-record/record-table/record-table-cell/components/RecordTableLastEmptyCell.tsx
@@ -6,5 +6,10 @@ import { RecordTableTd } from '@/object-record/record-table/record-table-cell/co
export const RecordTableLastEmptyCell = () => {
const { isSelected } = useContext(RecordTableRowContext);
- return ;
+ return (
+ <>
+
+
+ >
+ );
};
diff --git a/packages/twenty-front/src/modules/object-record/record-table/record-table-header/components/RecordTableHeaderCheckboxColumn.tsx b/packages/twenty-front/src/modules/object-record/record-table/record-table-header/components/RecordTableHeaderCheckboxColumn.tsx
index 6cb3894da..4dd54f6b4 100644
--- a/packages/twenty-front/src/modules/object-record/record-table/record-table-header/components/RecordTableHeaderCheckboxColumn.tsx
+++ b/packages/twenty-front/src/modules/object-record/record-table/record-table-header/components/RecordTableHeaderCheckboxColumn.tsx
@@ -17,8 +17,6 @@ const StyledColumnHeaderCell = styled.th`
background-color: ${({ theme }) => theme.background.primary};
border-bottom: 1px solid ${({ theme }) => theme.border.color.light};
border-right: transparent;
- max-width: 30px;
- min-width: 30px;
width: 30px;
`;
@@ -28,7 +26,6 @@ export const RecordTableHeaderCheckboxColumn = () => {
);
const { selectAllRows, resetTableRowSelection, setHasUserSelectedAllRows } =
useRecordTable();
-
const checked = allRowsSelectedStatus === 'all';
const indeterminate = allRowsSelectedStatus === 'some';
@@ -37,6 +34,7 @@ export const RecordTableHeaderCheckboxColumn = () => {
setHasUserSelectedAllRows(true);
selectAllRows();
} else {
+ setHasUserSelectedAllRows(false);
resetTableRowSelection();
}
};
diff --git a/packages/twenty-front/src/modules/object-record/record-table/record-table-header/components/RecordTableHeaderLastColumn.tsx b/packages/twenty-front/src/modules/object-record/record-table/record-table-header/components/RecordTableHeaderLastColumn.tsx
index 9b20a28c6..ff470e7ad 100644
--- a/packages/twenty-front/src/modules/object-record/record-table/record-table-header/components/RecordTableHeaderLastColumn.tsx
+++ b/packages/twenty-front/src/modules/object-record/record-table/record-table-header/components/RecordTableHeaderLastColumn.tsx
@@ -5,10 +5,8 @@ import { IconPlus, ThemeContext } from 'twenty-ui';
import { HIDDEN_TABLE_COLUMN_DROPDOWN_ID } from '@/object-record/record-table/constants/HiddenTableColumnDropdownId';
import { RecordTableHeaderPlusButtonContent } from '@/object-record/record-table/record-table-header/components/RecordTableHeaderPlusButtonContent';
-import { hiddenTableColumnsComponentSelector } from '@/object-record/record-table/states/selectors/hiddenTableColumnsComponentSelector';
import { Dropdown } from '@/ui/layout/dropdown/components/Dropdown';
import { useScrollWrapperScopedRef } from '@/ui/utilities/scroll/hooks/useScrollWrapperScopedRef';
-import { useRecoilComponentValueV2 } from '@/ui/utilities/state/component-state/hooks/useRecoilComponentValueV2';
const StyledPlusIconHeaderCell = styled.th<{
theme: Theme;
@@ -25,9 +23,8 @@ const StyledPlusIconHeaderCell = styled.th<{
background-color: ${({ theme }) => theme.background.primary};
border-left: none !important;
color: ${({ theme }) => theme.font.color.tertiary};
- min-width: 32px;
- width: 32px;
border-right: none !important;
+ width: 32px;
${({ isTableWiderThanScreen, theme }) =>
isTableWiderThanScreen
@@ -38,6 +35,12 @@ const StyledPlusIconHeaderCell = styled.th<{
z-index: 1;
`;
+const StyledEmptyHeaderCell = styled.th`
+ border-bottom: 1px solid ${({ theme }) => theme.border.color.light};
+ background-color: ${({ theme }) => theme.background.primary};
+ width: 100%;
+`;
+
const StyledPlusIconContainer = styled.div`
align-items: center;
display: flex;
@@ -58,16 +61,12 @@ export const RecordTableHeaderLastColumn = () => {
(scrollWrapper.ref.current?.clientWidth ?? 0) <
(scrollWrapper.ref.current?.scrollWidth ?? 0);
- const hiddenTableColumns = useRecoilComponentValueV2(
- hiddenTableColumnsComponentSelector,
- );
-
return (
-
- {hiddenTableColumns.length > 0 && (
+ <>
+
{
scope: HIDDEN_TABLE_COLUMN_DROPDOWN_HOTKEY_SCOPE_ID,
}}
/>
- )}
-
+
+
+ >
);
};