Web: Files: added onSelect function for tree root folders
This commit is contained in:
parent
948d43a05d
commit
887f3a72ba
@ -4,10 +4,19 @@ import {
|
|||||||
utils,
|
utils,
|
||||||
TreeMenu,
|
TreeMenu,
|
||||||
TreeNode,
|
TreeNode,
|
||||||
Icons
|
Icons,
|
||||||
|
toastr
|
||||||
} from "asc-web-components";
|
} 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 { getRootFolders } from "../../../store/files/selectors";
|
||||||
|
import store from "../../../store/store";
|
||||||
|
|
||||||
const getItems = data => {
|
const getItems = data => {
|
||||||
return data.map(item => {
|
return data.map(item => {
|
||||||
@ -49,13 +58,15 @@ const getItems = data => {
|
|||||||
};
|
};
|
||||||
|
|
||||||
class ArticleBodyContent extends React.Component {
|
class ArticleBodyContent extends React.Component {
|
||||||
|
|
||||||
shouldComponentUpdate(nextProps) {
|
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;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!utils.array.isArrayEqual(nextProps.data, this.props.data)) {
|
if (!utils.array.isArrayEqual(nextProps.data, data)) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -64,8 +75,47 @@ class ArticleBodyContent extends React.Component {
|
|||||||
|
|
||||||
onSelect = data => {
|
onSelect = data => {
|
||||||
console.log("onSelect document", 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);
|
//this.props.selectFolder(data && data.length === 1 && data[0] !== "root" ? data[0] : null);
|
||||||
};
|
};
|
||||||
@ -75,13 +125,9 @@ class ArticleBodyContent extends React.Component {
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
if (obj.expanded) {
|
if (obj.expanded) {
|
||||||
return (
|
return <Icons.ExpanderDownIcon size="scale" isfill color="dimgray" />;
|
||||||
<Icons.ExpanderDownIcon size="scale" isfill color="dimgray" />
|
|
||||||
);
|
|
||||||
} else {
|
} else {
|
||||||
return (
|
return <Icons.ExpanderRightIcon size="scale" isfill color="dimgray" />;
|
||||||
<Icons.ExpanderRightIcon size="scale" isfill color="dimgray" />
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -90,8 +136,7 @@ class ArticleBodyContent extends React.Component {
|
|||||||
|
|
||||||
//console.log("FilesTreeMenu", this.props);
|
//console.log("FilesTreeMenu", this.props);
|
||||||
|
|
||||||
return (
|
return data.map((item, index) => (
|
||||||
data.map((item, index) =>
|
|
||||||
<TreeMenu
|
<TreeMenu
|
||||||
key={`TreeMenu_${index}`}
|
key={`TreeMenu_${index}`}
|
||||||
className="files-tree-menu"
|
className="files-tree-menu"
|
||||||
@ -109,23 +154,31 @@ class ArticleBodyContent extends React.Component {
|
|||||||
>
|
>
|
||||||
{getItems(item)}
|
{getItems(item)}
|
||||||
</TreeMenu>
|
</TreeMenu>
|
||||||
)
|
));
|
||||||
);
|
}
|
||||||
};
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
function mapStateToProps(state) {
|
function mapStateToProps(state) {
|
||||||
const currentFolderId = state.files.selectedFolder.id.toString();
|
const { rootFolders, selectedFolder } = state.files;
|
||||||
|
const currentFolderId = selectedFolder.id.toString();
|
||||||
const fakeNewDocuments = 8;
|
const fakeNewDocuments = 8;
|
||||||
|
|
||||||
return {
|
return {
|
||||||
data: getRootFolders(state.files),
|
data: getRootFolders(state.files),
|
||||||
selectedKeys: state.files.selectedFolder ? [currentFolderId] : [""],
|
selectedKeys: state.files.selectedFolder ? [currentFolderId] : [""],
|
||||||
fakeNewDocuments,
|
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 { 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(
|
const sharedWithMeFolder = getTreeGroups(
|
||||||
getFakeFolders(4),
|
getFakeFolders(4),
|
||||||
defaultFolders[1],
|
defaultFolders[1],
|
||||||
|
Loading…
Reference in New Issue
Block a user