fix(core): listFloatingToolbar does not appear as expected (#7124)

close AFF-1201
This commit is contained in:
JimmFly
2024-05-31 10:16:41 +00:00
parent 1b633b5135
commit b65c01c5e1
4 changed files with 20 additions and 7 deletions
@@ -98,8 +98,12 @@ export const VirtualizedCollectionList = ({
}, []); }, []);
const handleDelete = useCallback(() => { const handleDelete = useCallback(() => {
return collectionService.deleteCollection(info, ...selectedCollectionIds); if (selectedCollectionIds.length === 0) {
}, [collectionService, info, selectedCollectionIds]); return;
}
collectionService.deleteCollection(info, ...selectedCollectionIds);
hideFloatingToolbar();
}, [collectionService, hideFloatingToolbar, info, selectedCollectionIds]);
return ( return (
<> <>
@@ -123,7 +127,7 @@ export const VirtualizedCollectionList = ({
headerRenderer={collectionHeaderRenderer} headerRenderer={collectionHeaderRenderer}
/> />
<ListFloatingToolbar <ListFloatingToolbar
open={showFloatingToolbar && selectedCollectionIds.length > 0} open={showFloatingToolbar}
content={ content={
<Trans <Trans
i18nKey="com.affine.collection.toolbar.selected" i18nKey="com.affine.collection.toolbar.selected"
@@ -132,6 +132,9 @@ export const VirtualizedPageList = ({
const { setTrashModal } = useTrashModalHelper(currentWorkspace.docCollection); const { setTrashModal } = useTrashModalHelper(currentWorkspace.docCollection);
const handleMultiDelete = useCallback(() => { const handleMultiDelete = useCallback(() => {
if (filteredSelectedPageIds.length === 0) {
return;
}
const pageNameMapping = Object.fromEntries( const pageNameMapping = Object.fromEntries(
pageMetas.map(meta => [meta.id, meta.title]) pageMetas.map(meta => [meta.id, meta.title])
); );
@@ -171,7 +174,7 @@ export const VirtualizedPageList = ({
headerRenderer={pageHeaderRenderer} headerRenderer={pageHeaderRenderer}
/> />
<ListFloatingToolbar <ListFloatingToolbar
open={showFloatingToolbar && filteredSelectedPageIds.length > 0} open={showFloatingToolbar}
onDelete={handleMultiDelete} onDelete={handleMultiDelete}
onClose={hideFloatingToolbar} onClose={hideFloatingToolbar}
content={ content={
@@ -69,6 +69,9 @@ export const VirtualizedTagList = ({
}, []); }, []);
const handleDelete = useCallback(() => { const handleDelete = useCallback(() => {
if (selectedTagIds.length === 0) {
return;
}
onTagDelete(selectedTagIds); onTagDelete(selectedTagIds);
hideFloatingToolbar(); hideFloatingToolbar();
return; return;
@@ -97,7 +100,7 @@ export const VirtualizedTagList = ({
headerRenderer={tagHeaderRenderer} headerRenderer={tagHeaderRenderer}
/> />
<ListFloatingToolbar <ListFloatingToolbar
open={showFloatingToolbar && selectedTagIds.length > 0} open={showFloatingToolbar}
content={ content={
<Trans <Trans
i18nKey="com.affine.tag.toolbar.selected" i18nKey="com.affine.tag.toolbar.selected"
@@ -67,6 +67,9 @@ export const VirtualizedTrashList = () => {
}, [filteredSelectedPageIds, hideFloatingToolbar, restoreFromTrash, t]); }, [filteredSelectedPageIds, hideFloatingToolbar, restoreFromTrash, t]);
const onConfirmPermanentlyDelete = useCallback(() => { const onConfirmPermanentlyDelete = useCallback(() => {
if (filteredSelectedPageIds.length === 0) {
return;
}
openConfirmModal({ openConfirmModal({
title: `${t['com.affine.trashOperation.deletePermanently']()}?`, title: `${t['com.affine.trashOperation.deletePermanently']()}?`,
description: t['com.affine.trashOperation.deleteDescription'](), description: t['com.affine.trashOperation.deleteDescription'](),
@@ -77,7 +80,7 @@ export const VirtualizedTrashList = () => {
}, },
onConfirm: handleMultiDelete, onConfirm: handleMultiDelete,
}); });
}, [handleMultiDelete, openConfirmModal, t]); }, [filteredSelectedPageIds.length, handleMultiDelete, openConfirmModal, t]);
const pageOperationsRenderer = useCallback( const pageOperationsRenderer = useCallback(
(item: ListItem) => { (item: ListItem) => {
@@ -129,7 +132,7 @@ export const VirtualizedTrashList = () => {
onSelectedIdsChange={setSelectedPageIds} onSelectedIdsChange={setSelectedPageIds}
/> />
<ListFloatingToolbar <ListFloatingToolbar
open={showFloatingToolbar && filteredSelectedPageIds.length > 0} open={showFloatingToolbar}
onDelete={onConfirmPermanentlyDelete} onDelete={onConfirmPermanentlyDelete}
onClose={hideFloatingToolbar} onClose={hideFloatingToolbar}
onRestore={handleMultiRestore} onRestore={handleMultiRestore}