Web: Files: fixed badges update, fixed markAsRead

This commit is contained in:
Nikita Gopienko 2020-06-30 18:46:19 +03:00
parent d13c4ac3bd
commit ba4b16393e
2 changed files with 35 additions and 33 deletions

View File

@ -29,7 +29,6 @@ class FilesRowContent extends React.PureComponent {
editingId: props.fileAction.id,
showNewFilesPanel: false,
newFolderId: [],
fileStatus: props.item.fileStatus,
newItems: props.item.new
//loading: false
};
@ -187,19 +186,18 @@ class FilesRowContent extends React.PureComponent {
onBadgeClick = () => {
const { showNewFilesPanel } = this.state;
const { item, treeFolders, setTreeFolders, rootFolderId, newItems } = this.props;
const { item, treeFolders, setTreeFolders, rootFolderId, newItems, filter } = this.props;
if (item.fileExst) {
this.setState({fileStatus: 0}, () =>
api.files
.markAsRead([], [item.id])
.then(() => {
const data = treeFolders;
const dataItem = data.find((x) => x.id === rootFolderId);
dataItem.newItems = newItems ? dataItem.newItems - 1 : 0;//////newItems
setTreeFolders(data);
})
.catch((err) => toastr.error(err))
)
api.files
.markAsRead([], [item.id])
.then(() => {
const data = treeFolders;
const dataItem = data.find((x) => x.id === rootFolderId);
dataItem.newItems = newItems ? dataItem.newItems - 1 : 0;//////newItems
setTreeFolders(data);
fetchFiles(this.props.selectedFolder.id, filter.clone(), store.dispatch);
})
.catch((err) => toastr.error(err))
} else {
const newFolderId = this.props.selectedFolder.pathParts;
newFolderId.push(item.id);
@ -215,11 +213,9 @@ class FilesRowContent extends React.PureComponent {
this.setState({showNewFilesPanel: !showNewFilesPanel});
};
setNewItems = newItems => this.setState({ newItems });
render() {
const { t, item, fileAction, isLoading, isTrashFolder, onLoading, folders } = this.props;
const { itemTitle, editingId, showNewFilesPanel, fileStatus, newItems, newFolderId } = this.state;
const { itemTitle, editingId, showNewFilesPanel, newItems, newFolderId } = this.state;
const {
contentLength,
updated,
@ -227,6 +223,7 @@ class FilesRowContent extends React.PureComponent {
fileExst,
filesCount,
foldersCount,
fileStatus,
id,
versionGroup
} = item;
@ -295,7 +292,6 @@ class FilesRowContent extends React.PureComponent {
onClose={this.onShowNewFilesPanel}
onLoading={onLoading}
folderId={newFolderId}
setNewItems={this.setNewItems}
folders={folders}
/>
)}

View File

@ -73,9 +73,20 @@ class NewFilesPanelComponent extends React.Component {
onMarkAsRead = () => {
const { folderId, onClose } = this.props;
const markAsReadFiles = true;
const folderIds = [];
const fileIds = [];
for(let item of this.state.files) {
if(item.fileExst) {
fileIds.push(item.id);
} else {
folderIds.push(item.id);
}
}
api.files
//.markAsRead([], [])
.markAsRead([folderId], [])
.markAsRead(folderIds, fileIds)
.then(() => this.setNewFilesCount(folderId, markAsReadFiles))
.catch(err => toastr.error(err))
.finally(() => onClose());
@ -129,8 +140,8 @@ class NewFilesPanelComponent extends React.Component {
};
setNewFilesCount = (folderPath, markAsReadAll, item) => {
const { treeFolders, setTreeFolders, setNewItems, folders, files, filter } = this.props;
//const newFilter = filter.clone();
const { treeFolders, setTreeFolders, folders, files, filter } = this.props;
const newFilter = filter.clone();
const data = treeFolders;
let dataItem;
@ -142,6 +153,7 @@ class NewFilesPanelComponent extends React.Component {
const newFilesCounter = dataItem.newItems ? dataItem.newItems : dataItem.new;
rootItem.newItems = markAsReadAll ? rootItem.newItems - newFilesCounter : rootItem.newItems - 1;
dataItem.newItems = markAsReadAll ? 0 : newFilesCounter - 1;
fetchFiles(this.props.selectedFolder.id, newFilter, store.dispatch);
return;
} else { loop(index + 1, dataItem.folders); }
}
@ -152,27 +164,21 @@ class NewFilesPanelComponent extends React.Component {
dataItem = data.find(x => x.id === folderPath[0]);
dataItem.newItems = markAsReadAll ? 0 : dataItem.newItems - 1;
if(item.fileExst) {
if(item && item.fileExst) {
const fileItem = files.find(x => x.id === item.id && x.fileExst);
if(fileItem) {
fileItem.new = markAsReadAll ? 0 : fileItem.new - 1;
//file
//fetchFiles(this.props.selectedFolder.id, newFilter, store.dispatch);
} else {
const a = folders.find(x => x.id === item.folderId);
a.new = markAsReadAll ? 0 : a.new - 1;
//fetchFiles(this.props.selectedFolder.id, newFilter, store.dispatch);
//file in folder
const filesFolder = folders.find(x => x.id === item.folderId);
filesFolder.new = markAsReadAll ? 0 : filesFolder.new - 1;
}
} else {
fetchFiles(this.props.selectedFolder.id, newFilter, store.dispatch);
} else if(item && !item.fileExst) {
const folderItem = folders.find(x => x.id === item.id && !x.fileExst);
folderItem.new = markAsReadAll ? 0 : folderItem.new - 1;
}
}
setNewItems && setNewItems(dataItem.newItems);
setTreeFolders(data);
}