feat: wip import csv [part 1] (#1033)
* feat: wip import csv * feat: start implementing twenty UI * feat: new radio button component * feat: use new radio button component and fix scroll issue * fix: max height modal * feat: wip try to customize react-data-grid to match design * feat: wip match columns * feat: wip match column selection * feat: match column * feat: clean heading component & try to fix scroll in last step * feat: validation step * fix: small cleaning and remove unused component * feat: clean folder architecture * feat: remove translations * feat: remove chackra theme * feat: remove unused libraries * feat: use option button to open spreadsheet & fix stories * Fix lint and fix imports --------- Co-authored-by: Charles Bochet <charles@twenty.com>
This commit is contained in:
@ -0,0 +1,18 @@
|
||||
import type { Columns } from '@/spreadsheet-import/components/steps/MatchColumnsStep/MatchColumnsStep';
|
||||
import type { Fields } from '@/spreadsheet-import/types';
|
||||
|
||||
export const findUnmatchedRequiredFields = <T extends string>(
|
||||
fields: Fields<T>,
|
||||
columns: Columns<T>,
|
||||
) =>
|
||||
fields
|
||||
.filter((field) =>
|
||||
field.validations?.some((validation) => validation.rule === 'required'),
|
||||
)
|
||||
.filter(
|
||||
(field) =>
|
||||
columns.findIndex(
|
||||
(column) => 'value' in column && column.value === field.key,
|
||||
) === -1,
|
||||
)
|
||||
.map((field) => field.label) || [];
|
||||
Reference in New Issue
Block a user