Migrate to a monorepo structure (#2909)

This commit is contained in:
Charles Bochet
2023-12-10 18:10:54 +01:00
committed by GitHub
parent a70a9281eb
commit 5bdca9de6c
2304 changed files with 37152 additions and 25869 deletions

View File

@ -0,0 +1,32 @@
import { ModalWrapper } from '@/spreadsheet-import/components/ModalWrapper';
import { Providers } from '@/spreadsheet-import/components/Providers';
import { Steps } from '@/spreadsheet-import/steps/components/Steps';
import { SpreadsheetOptions } from '@/spreadsheet-import/types';
export const defaultSpreadsheetImportProps: Partial<SpreadsheetOptions<any>> = {
autoMapHeaders: true,
allowInvalidSubmit: true,
autoMapDistance: 2,
uploadStepHook: async (value) => value,
selectHeaderStepHook: async (headerValues, data) => ({ headerValues, data }),
matchColumnsStepHook: async (table) => table,
dateFormat: 'yyyy-mm-dd', // ISO 8601,
parseRaw: true,
selectHeader: false,
maxRecords: 2000,
} as const;
export const SpreadsheetImport = <T extends string>(
// eslint-disable-next-line twenty/component-props-naming
props: SpreadsheetOptions<T>,
) => {
return (
<Providers values={props}>
<ModalWrapper isOpen={props.isOpen} onClose={props.onClose}>
<Steps />
</ModalWrapper>
</Providers>
);
};
SpreadsheetImport.defaultProps = defaultSpreadsheetImportProps;

View File

@ -0,0 +1,37 @@
import React from 'react';
import { useRecoilState } from 'recoil';
import { spreadsheetImportState } from '@/spreadsheet-import/states/spreadsheetImportState';
import { SpreadsheetImport } from './SpreadsheetImport';
type SpreadsheetImportProviderProps = React.PropsWithChildren;
export const SpreadsheetImportProvider = (
props: SpreadsheetImportProviderProps,
) => {
const [spreadsheetImport, setSpreadsheetImport] = useRecoilState(
spreadsheetImportState,
);
const handleClose = () => {
setSpreadsheetImport({
isOpen: false,
options: null,
});
};
return (
<>
{props.children}
{spreadsheetImport.isOpen && spreadsheetImport.options && (
<SpreadsheetImport
isOpen={true}
onClose={handleClose}
// eslint-disable-next-line react/jsx-props-no-spreading
{...spreadsheetImport.options}
/>
)}
</>
);
};