Web: Files: added fetchSharedFolder to onSelect function for tree share folder

This commit is contained in:
Nikita Gopienko 2020-03-02 12:33:12 +03:00
parent 7fc33a282b
commit 53d2d6af89
3 changed files with 44 additions and 66 deletions

View File

@ -1,16 +1,10 @@
import React from 'react'; import React from "react";
import { connect } from 'react-redux'; import { connect } from "react-redux";
import { import { utils, TreeMenu, TreeNode, Icons, toastr } from "asc-web-components";
utils,
TreeMenu,
TreeNode,
Icons,
toastr
} from "asc-web-components";
import { import {
selectFolder, selectFolder,
fetchMyFolder, fetchMyFolder,
//fetchShareFolder, fetchSharedFolder,
fetchCommonFolder, fetchCommonFolder,
fetchProjectsFolder, fetchProjectsFolder,
fetchTrashFolder fetchTrashFolder
@ -27,14 +21,10 @@ const getItems = data => {
key={item.key} key={item.key}
icon={ icon={
item.root ? ( item.root ? (
<Icons.CatalogFolderIcon <Icons.CatalogFolderIcon size="scale" isfill color="#657077" />
size="scale"
isfill
color="#657077"
/>
) : ( ) : (
"" ""
) )
} }
> >
{getItems(item.children)} {getItems(item.children)}
@ -45,13 +35,7 @@ const getItems = data => {
<TreeNode <TreeNode
key={item.key} key={item.key}
title={item.title} title={item.title}
icon={ icon={<Icons.CatalogFolderIcon size="scale" isfill color="#657077" />}
<Icons.CatalogFolderIcon
size="scale"
isfill
color="#657077"
/>
}
/> />
); );
}); });
@ -60,9 +44,7 @@ const getItems = data => {
class ArticleBodyContent extends React.Component { class ArticleBodyContent extends React.Component {
shouldComponentUpdate(nextProps) { shouldComponentUpdate(nextProps) {
const { selectedKeys, data } = this.props; const { selectedKeys, data } = this.props;
if ( if (!utils.array.isArrayEqual(nextProps.selectedKeys, selectedKeys)) {
!utils.array.isArrayEqual(nextProps.selectedKeys, selectedKeys)
) {
return true; return true;
} }
@ -81,37 +63,32 @@ class ArticleBodyContent extends React.Component {
if (currentModule !== currentModuleId) { if (currentModule !== currentModuleId) {
const { my, share, common, project, trash } = rootFolders; const { my, share, common, project, trash } = rootFolders;
switch (currentModuleId) { switch (currentModuleId) {
case my.id: case my.id:
fetchMyFolder(store.dispatch) fetchMyFolder(store.dispatch).catch(() =>
.then(() => console.log("fetchMyFolder then")) toastr.error("Error fetchMyFolder")
.catch(() => toastr.error("Error fetchMyFolder") ) );
.finally(() => console.log("fetchMyFolder finally")); break;
case share.id:
fetchSharedFolder(store.dispatch).catch(() =>
toastr.error("Error fetchSharedFolder")
);
break; break;
/*case share.id:
fetchSharedFolder(store.dispatch)
.then(() => console.log("then"))
.catch(() => toastr.error("Error fetchSharedFolder"))
.finally(() => console.log("finally"));
break;*/
case common.id: case common.id:
fetchCommonFolder(store.dispatch) fetchCommonFolder(store.dispatch).catch(() =>
.then(() => console.log("fetchCommonFolder then")) toastr.error("Error fetchCommonFolder")
.catch(() => toastr.error("Error fetchCommonFolder")) );
.finally(() => console.log("fetchCommonFolder finally"));
break; break;
case project.id: case project.id:
fetchProjectsFolder(store.dispatch) fetchProjectsFolder(store.dispatch).catch(() =>
.then(() => console.log("fetchProjectsFolder then")) toastr.error("Error fetchProjectsFolder")
.catch(() => toastr.error("Error fetchProjectsFolder")) );
.finally(() => console.log("fetchProjectsFolder finally"));
break; break;
case trash.id: case trash.id:
fetchTrashFolder(store.dispatch) fetchTrashFolder(store.dispatch).catch(() =>
.then(() => console.log("fetchTrashFolder then")) toastr.error("Error fetchTrashFolder")
.catch(() => toastr.error("Error fetchTrashFolder")) );
.finally(() => console.log("fetchTrashFolder finally"));
break; break;
default: default:
break; break;
@ -156,9 +133,7 @@ class ArticleBodyContent extends React.Component {
</TreeMenu> </TreeMenu>
)); ));
} }
}; }
function mapStateToProps(state) { function mapStateToProps(state) {
const { rootFolders, selectedFolder } = state.files; const { rootFolders, selectedFolder } = state.files;
@ -177,7 +152,7 @@ function mapStateToProps(state) {
export default connect(mapStateToProps, { export default connect(mapStateToProps, {
selectFolder, selectFolder,
fetchMyFolder, fetchMyFolder,
//fetchShareFolder, fetchSharedFolder,
fetchCommonFolder, fetchCommonFolder,
fetchProjectsFolder, fetchProjectsFolder,
fetchTrashFolder fetchTrashFolder

View File

@ -94,6 +94,14 @@ export function fetchProjectsFolder(dispatch) {
}); });
} }
export function fetchSharedFolder(dispatch) {
return files.getSharedFolderList().then(data => {
dispatch(setFolders(data.folders));
dispatch(setFiles(data.files));
return dispatch(setSelectedFolder(data.current));
});
}
export function fetchRootFolders(dispatch) { export function fetchRootFolders(dispatch) {
//TODO: Make some more Useful //TODO: Make some more Useful
@ -114,6 +122,8 @@ export function fetchRootFolders(dispatch) {
.then(data => root.project = data.current)) .then(data => root.project = data.current))
.then(() => files.getTrashFolderList() .then(() => files.getTrashFolderList()
.then(data => root.trash = data.current)) .then(data => root.trash = data.current))
.then(() => files.getSharedFolderList()
.then(data => root.share = data.current))
.then(() => dispatch(setRootFolders(root))); .then(() => dispatch(setRootFolders(root)));
} }

View File

@ -28,22 +28,15 @@ const getFakeFolders = count =>
}); });
export const getRootFolders = files => { export const getRootFolders = files => {
const defaultFolders = [
"Мои документы",
"Доступно для меня",
"Общие документы",
"Документы проектов",
"Корзина"
];
const { folders, rootFolders } = files; const { folders, rootFolders } = files;
const { my, share, common, project, trash } = rootFolders; const { my, share, common, project, trash } = rootFolders;
const myDocumentsFolder = getTreeGroups(folders, my.title, my.id); const myDocumentsFolder = getTreeGroups(folders, my.title, my.id);
const sharedWithMeFolder = getTreeGroups( const sharedWithMeFolder = getTreeGroups(
getFakeFolders(4), getFakeFolders(share.foldersCount),
defaultFolders[1], share.title,
"2" share.id
); //getTreeGroups(getFakeFolders(share.foldersCount), share.title, share.id); );
const commonDocumentsFolder = getTreeGroups( const commonDocumentsFolder = getTreeGroups(
getFakeFolders(common.foldersCount), getFakeFolders(common.foldersCount),
common.title, common.title,