mirror of
https://github.com/haiwen/seahub.git
synced 2025-05-13 02:15:59 +00:00
fix delete image failed when previewing in tag files view
This commit is contained in:
parent
beef890a47
commit
a4835a9d7b
frontend/src/tag
@ -14,7 +14,7 @@ import { getRowById } from '../../components/sf-table/utils/table';
|
||||
import { getTagFilesLinks } from '../utils/cell';
|
||||
import { PRIVATE_COLUMN_KEY } from '../constants';
|
||||
import URLDecorator from '../../utils/url-decorator';
|
||||
import { fileServerRoot, useGoFileserver } from '../../utils/constants';
|
||||
import { fileServerRoot, gettext, useGoFileserver } from '../../utils/constants';
|
||||
import { TAG_FILES_DEFAULT_SORT, TAG_FILES_SORT } from '../constants/sort';
|
||||
|
||||
// This hook provides content related to seahub interaction, such as whether to enable extended attributes, views data, etc.
|
||||
@ -64,8 +64,9 @@ export const TagViewProvider = ({
|
||||
});
|
||||
}, [repoID, copyFileCallback, updateSelectedFileIds]);
|
||||
|
||||
const deleteTagFiles = useCallback(() => {
|
||||
const files = selectedFileIds.map(id => getFileById(tagFiles, id));
|
||||
const deleteTagFiles = useCallback((ids) => {
|
||||
const tagIds = ids?.length ? ids : selectedFileIds;
|
||||
const files = tagIds.map(id => getFileById(tagFiles, id));
|
||||
const paths = files.map(f => Utils.joinPath(f[TAG_FILE_KEY.PARENT_DIR], f[TAG_FILE_KEY.NAME]));
|
||||
const fileNames = files.map(f => f[TAG_FILE_KEY.NAME]);
|
||||
metadataAPI.batchDeleteFiles(repoID, paths).then(() => {
|
||||
@ -79,7 +80,7 @@ export const TagViewProvider = ({
|
||||
const row = getRowById(tagsData, tagID);
|
||||
const oldTagFileLinks = getTagFilesLinks(row);
|
||||
if (Array.isArray(oldTagFileLinks) && oldTagFileLinks.length > 0) {
|
||||
const newTagFileLinks = oldTagFileLinks.filter(link => !selectedFileIds.includes(link.row_id));
|
||||
const newTagFileLinks = oldTagFileLinks.filter(link => !tagIds.includes(link.row_id));
|
||||
const update = { [PRIVATE_COLUMN_KEY.TAG_FILE_LINKS]: newTagFileLinks };
|
||||
idTagUpdates[tagID] = update;
|
||||
}
|
||||
@ -88,11 +89,17 @@ export const TagViewProvider = ({
|
||||
|
||||
setTagFiles(prevTagFiles => ({
|
||||
...prevTagFiles,
|
||||
rows: prevTagFiles.rows.filter(row => !selectedFileIds.includes(row[TAG_FILE_KEY.ID])),
|
||||
rows: prevTagFiles.rows.filter(row => !tagIds.includes(row[TAG_FILE_KEY.ID])),
|
||||
}));
|
||||
|
||||
deleteFilesCallback && deleteFilesCallback(paths, fileNames);
|
||||
updateSelectedFileIds([]);
|
||||
let msg = fileNames.length > 1
|
||||
? gettext('Successfully deleted {name} and {n} other items')
|
||||
: gettext('Successfully deleted {name}');
|
||||
msg = msg.replace('{name}', fileNames[0])
|
||||
.replace('{n}', fileNames.length - 1);
|
||||
toaster.success(msg);
|
||||
});
|
||||
}, [repoID, tagsData, tagFiles, selectedFileIds, updateLocalTags, deleteFilesCallback, updateSelectedFileIds]);
|
||||
|
||||
|
@ -44,6 +44,7 @@ const TagFiles = () => {
|
||||
|
||||
const currentImageRef = useRef(null);
|
||||
|
||||
const canDelete = useMemo(() => window.sfTagsDataContext && window.sfTagsDataContext.canModifyTag(), []);
|
||||
const isSelectedAll = useMemo(() => {
|
||||
return selectedFileIds ? selectedFileIds.length === tagFiles.rows.length : false;
|
||||
}, [selectedFileIds, tagFiles]);
|
||||
@ -133,8 +134,8 @@ const TagFiles = () => {
|
||||
setImagePreviewerVisible(false);
|
||||
}, []);
|
||||
|
||||
const handleDeleteTagFiles = useCallback(() => {
|
||||
deleteTagFiles();
|
||||
const handleDeleteTagFiles = useCallback((ids) => {
|
||||
deleteTagFiles(ids);
|
||||
updateSelectedFileIds([]);
|
||||
}, [deleteTagFiles, updateSelectedFileIds]);
|
||||
|
||||
@ -376,7 +377,6 @@ const TagFiles = () => {
|
||||
enableDirPrivateShare = true;
|
||||
}
|
||||
const isGroupOwnedRepo = repoInfo.owner_email.includes('@seafile_group');
|
||||
const canDelete = window.sfTagsDataContext && window.sfTagsDataContext.canModifyTag();
|
||||
return (
|
||||
<>
|
||||
<div className="table-container" onClick={onContainerClick}>
|
||||
@ -413,6 +413,7 @@ const TagFiles = () => {
|
||||
table={tagFiles}
|
||||
closeImagePopup={closeImagePreviewer}
|
||||
canDelete={canDelete}
|
||||
deleteRecords={handleDeleteTagFiles}
|
||||
/>
|
||||
)}
|
||||
<ContextMenu
|
||||
|
Loading…
Reference in New Issue
Block a user