hide delete button for selection over 100 - issue #6023 (#6030)

hide the "Delete" Button when more than 100 records are Selected

---------

Co-authored-by: Weiko <corentin@twenty.com>
This commit is contained in:
ADITHYA THEJAS S
2024-06-27 14:51:45 +05:30
committed by GitHub
parent 97822533db
commit dcb709feee

View File

@ -1,6 +1,6 @@
import { useCallback, useMemo, useState } from 'react'; import { useCallback, useMemo, useState } from 'react';
import { isNonEmptyString } from '@sniptt/guards'; import { isNonEmptyString } from '@sniptt/guards';
import { useRecoilCallback, useSetRecoilState } from 'recoil'; import { useRecoilCallback, useRecoilValue, useSetRecoilState } from 'recoil';
import { import {
IconClick, IconClick,
IconFileExport, IconFileExport,
@ -11,6 +11,7 @@ import {
IconTrash, IconTrash,
} from 'twenty-ui'; } from 'twenty-ui';
import { apiConfigState } from '@/client-config/states/apiConfigState';
import { useFavorites } from '@/favorites/hooks/useFavorites'; import { useFavorites } from '@/favorites/hooks/useFavorites';
import { ObjectMetadataItem } from '@/object-metadata/types/ObjectMetadataItem'; import { ObjectMetadataItem } from '@/object-metadata/types/ObjectMetadataItem';
import { useDeleteManyRecords } from '@/object-record/hooks/useDeleteManyRecords'; import { useDeleteManyRecords } from '@/object-record/hooks/useDeleteManyRecords';
@ -53,6 +54,9 @@ export const useRecordActionBar = ({
objectNameSingular: objectMetadataItem.nameSingular, objectNameSingular: objectMetadataItem.nameSingular,
}); });
const apiConfig = useRecoilValue(apiConfigState);
const maxRecords = apiConfig?.mutationMaximumAffectedRecords;
const handleFavoriteButtonClick = useRecoilCallback( const handleFavoriteButtonClick = useRecoilCallback(
({ snapshot }) => ({ snapshot }) =>
() => { () => {
@ -138,7 +142,9 @@ export const useRecordActionBar = ({
); );
const deletionActions: ContextMenuEntry[] = useMemo( const deletionActions: ContextMenuEntry[] = useMemo(
() => [ () =>
maxRecords !== undefined && selectedRecordIds.length <= maxRecords
? [
{ {
label: 'Delete', label: 'Delete',
Icon: IconTrash, Icon: IconTrash,
@ -152,7 +158,9 @@ export const useRecordActionBar = ({
selectedRecordIds.length === 1 ? `record` : 'records' selectedRecordIds.length === 1 ? `record` : 'records'
}`} }`}
subtitle={`This action cannot be undone. This will permanently delete ${ subtitle={`This action cannot be undone. This will permanently delete ${
selectedRecordIds.length === 1 ? 'this record' : 'these records' selectedRecordIds.length === 1
? 'this record'
: 'these records'
}`} }`}
onConfirmClick={() => handleDeleteClick()} onConfirmClick={() => handleDeleteClick()}
deleteButtonText={`Delete ${ deleteButtonText={`Delete ${
@ -161,12 +169,14 @@ export const useRecordActionBar = ({
/> />
), ),
}, },
], ]
: [],
[ [
handleDeleteClick, handleDeleteClick,
selectedRecordIds, selectedRecordIds,
isDeleteRecordsModalOpen, isDeleteRecordsModalOpen,
setIsDeleteRecordsModalOpen, setIsDeleteRecordsModalOpen,
maxRecords,
], ],
); );