Web: Files: added onSelect function for tree root folders
This commit is contained in:
parent
948d43a05d
commit
887f3a72ba
@ -4,10 +4,19 @@ import {
|
||||
utils,
|
||||
TreeMenu,
|
||||
TreeNode,
|
||||
Icons
|
||||
Icons,
|
||||
toastr
|
||||
} from "asc-web-components";
|
||||
import { selectFolder } from '../../../store/files/actions';
|
||||
import {
|
||||
selectFolder,
|
||||
fetchMyFolder,
|
||||
//fetchShareFolder,
|
||||
fetchCommonFolder,
|
||||
fetchProjectsFolder,
|
||||
fetchTrashFolder
|
||||
} from "../../../store/files/actions";
|
||||
import { getRootFolders } from "../../../store/files/selectors";
|
||||
import store from "../../../store/store";
|
||||
|
||||
const getItems = data => {
|
||||
return data.map(item => {
|
||||
@ -49,13 +58,15 @@ const getItems = data => {
|
||||
};
|
||||
|
||||
class ArticleBodyContent extends React.Component {
|
||||
|
||||
shouldComponentUpdate(nextProps) {
|
||||
if (!utils.array.isArrayEqual(nextProps.selectedKeys, this.props.selectedKeys)) {
|
||||
const { selectedKeys, data } = this.props;
|
||||
if (
|
||||
!utils.array.isArrayEqual(nextProps.selectedKeys, selectedKeys)
|
||||
) {
|
||||
return true;
|
||||
}
|
||||
|
||||
if (!utils.array.isArrayEqual(nextProps.data, this.props.data)) {
|
||||
if (!utils.array.isArrayEqual(nextProps.data, data)) {
|
||||
return true;
|
||||
}
|
||||
|
||||
@ -64,8 +75,47 @@ class ArticleBodyContent extends React.Component {
|
||||
|
||||
onSelect = data => {
|
||||
console.log("onSelect document", data);
|
||||
if(this.props.currentModule !== data) {
|
||||
//UpdatePage
|
||||
|
||||
const currentModuleId = Number(data[0]);
|
||||
const { currentModule, rootFolders } = this.props;
|
||||
if (currentModule !== currentModuleId) {
|
||||
const { my, share, common, project, trash } = rootFolders;
|
||||
|
||||
|
||||
switch (currentModuleId) {
|
||||
case my.id:
|
||||
fetchMyFolder(store.dispatch)
|
||||
.then(() => console.log("fetchMyFolder then"))
|
||||
.catch(() => toastr.error("Error fetchMyFolder") )
|
||||
.finally(() => console.log("fetchMyFolder finally"));
|
||||
break;
|
||||
/*case share.id:
|
||||
fetchSharedFolder(store.dispatch)
|
||||
.then(() => console.log("then"))
|
||||
.catch(() => toastr.error("Error fetchSharedFolder"))
|
||||
.finally(() => console.log("finally"));
|
||||
break;*/
|
||||
case common.id:
|
||||
fetchCommonFolder(store.dispatch)
|
||||
.then(() => console.log("fetchCommonFolder then"))
|
||||
.catch(() => toastr.error("Error fetchCommonFolder"))
|
||||
.finally(() => console.log("fetchCommonFolder finally"));
|
||||
break;
|
||||
case project.id:
|
||||
fetchProjectsFolder(store.dispatch)
|
||||
.then(() => console.log("fetchProjectsFolder then"))
|
||||
.catch(() => toastr.error("Error fetchProjectsFolder"))
|
||||
.finally(() => console.log("fetchProjectsFolder finally"));
|
||||
break;
|
||||
case trash.id:
|
||||
fetchTrashFolder(store.dispatch)
|
||||
.then(() => console.log("fetchTrashFolder then"))
|
||||
.catch(() => toastr.error("Error fetchTrashFolder"))
|
||||
.finally(() => console.log("fetchTrashFolder finally"));
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
//this.props.selectFolder(data && data.length === 1 && data[0] !== "root" ? data[0] : null);
|
||||
};
|
||||
@ -75,13 +125,9 @@ class ArticleBodyContent extends React.Component {
|
||||
return null;
|
||||
}
|
||||
if (obj.expanded) {
|
||||
return (
|
||||
<Icons.ExpanderDownIcon size="scale" isfill color="dimgray" />
|
||||
);
|
||||
return <Icons.ExpanderDownIcon size="scale" isfill color="dimgray" />;
|
||||
} else {
|
||||
return (
|
||||
<Icons.ExpanderRightIcon size="scale" isfill color="dimgray" />
|
||||
);
|
||||
return <Icons.ExpanderRightIcon size="scale" isfill color="dimgray" />;
|
||||
}
|
||||
};
|
||||
|
||||
@ -90,8 +136,7 @@ class ArticleBodyContent extends React.Component {
|
||||
|
||||
//console.log("FilesTreeMenu", this.props);
|
||||
|
||||
return (
|
||||
data.map((item, index) =>
|
||||
return data.map((item, index) => (
|
||||
<TreeMenu
|
||||
key={`TreeMenu_${index}`}
|
||||
className="files-tree-menu"
|
||||
@ -109,23 +154,31 @@ class ArticleBodyContent extends React.Component {
|
||||
>
|
||||
{getItems(item)}
|
||||
</TreeMenu>
|
||||
)
|
||||
);
|
||||
};
|
||||
));
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
|
||||
function mapStateToProps(state) {
|
||||
const currentFolderId = state.files.selectedFolder.id.toString();
|
||||
const { rootFolders, selectedFolder } = state.files;
|
||||
const currentFolderId = selectedFolder.id.toString();
|
||||
const fakeNewDocuments = 8;
|
||||
|
||||
return {
|
||||
data: getRootFolders(state.files),
|
||||
selectedKeys: state.files.selectedFolder ? [currentFolderId] : [""],
|
||||
fakeNewDocuments,
|
||||
currentModule: currentFolderId
|
||||
currentModule: currentFolderId,
|
||||
rootFolders
|
||||
};
|
||||
}
|
||||
|
||||
export default connect(mapStateToProps, { selectFolder })(ArticleBodyContent);
|
||||
export default connect(mapStateToProps, {
|
||||
selectFolder,
|
||||
fetchMyFolder,
|
||||
//fetchShareFolder,
|
||||
fetchCommonFolder,
|
||||
fetchProjectsFolder,
|
||||
fetchTrashFolder
|
||||
})(ArticleBodyContent);
|
@ -35,10 +35,10 @@ export const getRootFolders = files => {
|
||||
"Документы проектов",
|
||||
"Корзина"
|
||||
];
|
||||
const { folders, selectedFolder, rootFolders } = files;
|
||||
const { folders, rootFolders } = files;
|
||||
const { my, share, common, project, trash } = rootFolders;
|
||||
|
||||
const myDocumentsFolder = getTreeGroups(folders, selectedFolder.title, my.id);
|
||||
const myDocumentsFolder = getTreeGroups(folders, my.title, my.id);
|
||||
const sharedWithMeFolder = getTreeGroups(
|
||||
getFakeFolders(4),
|
||||
defaultFolders[1],
|
||||
|
Loading…
Reference in New Issue
Block a user