From ccf1d703bfc443ee399f9f8f78934b9c5d29f511 Mon Sep 17 00:00:00 2001 From: Etienne <45695613+etiennejouan@users.noreply.github.com> Date: Tue, 8 Jul 2025 13:17:08 +0200 Subject: [PATCH] Import - fixes (#13097) - Fixes : https://github.com/twentyhq/twenty/issues/11623 - Design fix : https://www.figma.com/design/xt8O9mFeLl46C5InWwoMrN/Twenty?node-id=61976-118483&t=z12YCJg7W7PFMcmg-4 After Screenshot 2025-07-08 at 11 52 26 Before Screenshot 2025-07-08 at 11 23 08 --------- Co-authored-by: Charles Bochet --- .../components/SpreadsheetImportTable.tsx | 28 +++++++++++++------ .../components/SelectHeaderTable.tsx | 11 ++++---- .../SelectSheetStep/SelectSheetStep.tsx | 20 +++++++++---- 3 files changed, 39 insertions(+), 20 deletions(-) diff --git a/packages/twenty-front/src/modules/spreadsheet-import/components/SpreadsheetImportTable.tsx b/packages/twenty-front/src/modules/spreadsheet-import/components/SpreadsheetImportTable.tsx index af3148f62..e47a7971c 100644 --- a/packages/twenty-front/src/modules/spreadsheet-import/components/SpreadsheetImportTable.tsx +++ b/packages/twenty-front/src/modules/spreadsheet-import/components/SpreadsheetImportTable.tsx @@ -107,10 +107,22 @@ const StyledDataGrid = styled(DataGrid)` } ` as typeof DataGrid; -type SpreadsheetImportTableProps = DataGridProps & { - rowHeight?: number; - hiddenHeader?: boolean; -}; +type SpreadsheetImportTableProps = Pick< + DataGridProps, + | 'selectedRows' + | 'onSelectedRowsChange' + | 'columns' + | 'headerRowHeight' + | 'rowKeyGetter' + | 'rows' +> & + Partial< + Pick, 'onRowClick' | 'components' | 'onRowsChange'> + > & { + className?: string; + rowHeight?: number; + hiddenHeader?: boolean; + }; export const SpreadsheetImportTable = ({ className, @@ -119,8 +131,8 @@ export const SpreadsheetImportTable = ({ headerRowHeight, rowKeyGetter, rows, - onRowClick, onRowsChange, + onRowClick, onSelectedRowsChange, selectedRows, }: SpreadsheetImportTableProps) => { @@ -137,12 +149,12 @@ export const SpreadsheetImportTable = ({ {...{ className: `${className || ''} ${themeClassName}`, columns, - components, headerRowHeight, rowKeyGetter, - rows, - onRowClick, onRowsChange, + rows, + components, + onRowClick, onSelectedRowsChange, selectedRows, }} diff --git a/packages/twenty-front/src/modules/spreadsheet-import/steps/components/SelectHeaderStep/components/SelectHeaderTable.tsx b/packages/twenty-front/src/modules/spreadsheet-import/steps/components/SelectHeaderStep/components/SelectHeaderTable.tsx index f236f4319..121e71e45 100644 --- a/packages/twenty-front/src/modules/spreadsheet-import/steps/components/SelectHeaderStep/components/SelectHeaderTable.tsx +++ b/packages/twenty-front/src/modules/spreadsheet-import/steps/components/SelectHeaderStep/components/SelectHeaderTable.tsx @@ -27,12 +27,11 @@ export const SelectHeaderTable = ({ rowKeyGetter={(row: any) => importedRows.indexOf(row)} rows={importedRows} columns={columns} - selectedRowIndexes={selectedRowIndexes} - onSelectedRowIndexesChange={(newRowIndexes: number[]) => { - // allow selecting only one row - newRowIndexes.forEach((value: any) => { - if (!selectedRowIndexes.has(value as number)) { - setSelectedRowIndexes(new Set([value as number])); + selectedRows={selectedRowIndexes} + onSelectedRowsChange={(newRowIndexes: number[]) => { + newRowIndexes.forEach((value) => { + if (!selectedRowIndexes.has(value)) { + setSelectedRowIndexes(new Set([value])); return; } }); diff --git a/packages/twenty-front/src/modules/spreadsheet-import/steps/components/SelectSheetStep/SelectSheetStep.tsx b/packages/twenty-front/src/modules/spreadsheet-import/steps/components/SelectSheetStep/SelectSheetStep.tsx index 2e2798aca..fe63402a1 100644 --- a/packages/twenty-front/src/modules/spreadsheet-import/steps/components/SelectSheetStep/SelectSheetStep.tsx +++ b/packages/twenty-front/src/modules/spreadsheet-import/steps/components/SelectSheetStep/SelectSheetStep.tsx @@ -16,19 +16,23 @@ import { WorkBook } from 'xlsx-ugnis'; const StyledContent = styled(Modal.Content)` align-items: center; - padding-left: ${({ theme }) => theme.spacing(6)}; - padding-right: ${({ theme }) => theme.spacing(6)}; + display: flex; + flex-direction: column; + justify-content: center; + gap: ${({ theme }) => theme.spacing(8)}; `; const StyledHeading = styled(Heading)` - margin-bottom: ${({ theme }) => theme.spacing(8)}; + display: flex; `; const StyledRadioContainer = styled.div` display: flex; flex-direction: column; - flex-grow: 1; - height: 0px; +`; + +const StyledRadio = styled(Radio)` + margin-bottom: ${({ theme }) => theme.spacing(6)}; `; type SelectSheetStepProps = { @@ -110,7 +114,11 @@ export const SelectSheetStep = ({ setValue(value)} value={value}> {sheetNames.map((sheetName) => ( - + ))}