Create import csv action (#10624)

Closes https://github.com/twentyhq/core-team-issues/issues/63

This PR:
- Creates an **Import csv** action
- Allows the import of notes and tasks
- Removes the import action from the index option menu
- Adds export action when only one record is selected
- Adds see deleted record action to workflow objects
This commit is contained in:
Raphaël Bosi
2025-03-03 17:03:53 +01:00
committed by GitHub
parent 3d56e5394f
commit a5d60919a7
11 changed files with 186 additions and 55 deletions

View File

@ -1,7 +1,6 @@
import { Key } from 'ts-key-enum';
import {
AppTooltip,
IconFileImport,
IconLayout,
IconLayoutList,
IconList,
@ -10,12 +9,10 @@ import {
useIcons,
} from 'twenty-ui';
import { CoreObjectNameSingular } from '@/object-metadata/types/CoreObjectNameSingular';
import { useObjectOptionsForBoard } from '@/object-record/object-options-dropdown/hooks/useObjectOptionsForBoard';
import { useOptionsDropdown } from '@/object-record/object-options-dropdown/hooks/useOptionsDropdown';
import { recordGroupFieldMetadataComponentState } from '@/object-record/record-group/states/recordGroupFieldMetadataComponentState';
import { TableOptionsHotkeyScope } from '@/object-record/record-table/types/TableOptionsHotkeyScope';
import { useOpenObjectRecordsSpreadsheetImportDialog } from '@/object-record/spreadsheet-import/hooks/useOpenObjectRecordsSpreadsheetImportDialog';
import { DropdownMenuHeader } from '@/ui/layout/dropdown/components/DropdownMenuHeader';
import { DropdownMenuItemsContainer } from '@/ui/layout/dropdown/components/DropdownMenuItemsContainer';
import { DropdownMenuSeparator } from '@/ui/layout/dropdown/components/DropdownMenuSeparator';
@ -66,16 +63,6 @@ export const ObjectOptionsDropdownMenuContent = () => {
viewBarId: recordIndexId,
});
const { openObjectRecordsSpreasheetImportDialog } =
useOpenObjectRecordsSpreadsheetImportDialog(
objectMetadataItem.nameSingular,
);
// TODO: Remove this once we have implemented Rich Text v2 and removed the old rich text
const canImportOrExport =
objectMetadataItem.nameSingular !== CoreObjectNameSingular.Note &&
objectMetadataItem.nameSingular !== CoreObjectNameSingular.Task;
const isCommandMenuV2Enabled = useIsFeatureEnabled(
FeatureFlagKey.IsCommandMenuV2Enabled,
);
@ -137,19 +124,6 @@ export const ObjectOptionsDropdownMenuContent = () => {
/>
)}
</DropdownMenuItemsContainer>
<DropdownMenuSeparator />
<DropdownMenuItemsContainer>
{canImportOrExport && (
<MenuItem
onClick={() => {
closeDropdown();
openObjectRecordsSpreasheetImportDialog();
}}
LeftIcon={IconFileImport}
text={t`Import`}
/>
)}
</DropdownMenuItemsContainer>
</>
);
};