Migrate to a monorepo structure (#2909)
This commit is contained in:
@ -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;
|
||||
@ -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}
|
||||
/>
|
||||
)}
|
||||
</>
|
||||
);
|
||||
};
|
||||
Reference in New Issue
Block a user