Refactor spreadsheet import (#11250)

Mostly renaming objects to avoid conflicts (it was painful because names
were too generic so you could cmd+replace easily)

Also refactoring `useBuildAvailableFieldsForImport`
This commit is contained in:
Félix Malfait
2025-03-28 07:56:51 +01:00
committed by GitHub
parent 9af2628264
commit e9e33c4d29
84 changed files with 960 additions and 916 deletions
@@ -1,26 +1,24 @@
import {
Columns,
ColumnType,
} from '@/spreadsheet-import/steps/components/MatchColumnsStep/MatchColumnsStep';
import {
Fields,
ImportedRow,
ImportedStructuredRow,
SpreadsheetImportFields,
} from '@/spreadsheet-import/types';
import { SpreadsheetColumns } from '@/spreadsheet-import/types/SpreadsheetColumns';
import { SpreadsheetColumnType } from '@/spreadsheet-import/types/SpreadsheetColumnType';
import { isDefined } from 'twenty-shared/utils';
import { z } from 'zod';
import { normalizeCheckboxValue } from './normalizeCheckboxValue';
import { isDefined } from 'twenty-shared/utils';
export const normalizeTableData = <T extends string>(
columns: Columns<T>,
columns: SpreadsheetColumns<T>,
data: ImportedRow[],
fields: Fields<T>,
fields: SpreadsheetImportFields<T>,
) =>
data.map((row) =>
columns.reduce((acc, column, index) => {
const curr = row[index];
switch (column.type) {
case ColumnType.matchedCheckbox: {
case SpreadsheetColumnType.matchedCheckbox: {
const field = fields.find((field) => field.key === column.value);
if (!field) {
@@ -49,12 +47,12 @@ export const normalizeTableData = <T extends string>(
}
return acc;
}
case ColumnType.matched: {
case SpreadsheetColumnType.matched: {
acc[column.value] = curr === '' ? undefined : curr;
return acc;
}
case ColumnType.matchedSelect:
case ColumnType.matchedSelectOptions: {
case SpreadsheetColumnType.matchedSelect:
case SpreadsheetColumnType.matchedSelectOptions: {
const field = fields.find((field) => field.key === column.value);
if (!field) {
@@ -96,8 +94,8 @@ export const normalizeTableData = <T extends string>(
}
return acc;
}
case ColumnType.empty:
case ColumnType.ignored: {
case SpreadsheetColumnType.empty:
case SpreadsheetColumnType.ignored: {
return acc;
}
default: