Web: Files: SelecFileDialog: Added selection of the selected folder.

This commit is contained in:
Tatiana Lopaeva 2021-06-23 18:16:21 +03:00
parent 8f33a74e85
commit d89657ff5f
2 changed files with 25 additions and 10 deletions

View File

@ -12,6 +12,7 @@ import SelectFolderDialog from "../SelectFolderDialog";
import FolderTreeBody from "../SelectFolderDialog/folderTreeBody"; import FolderTreeBody from "../SelectFolderDialog/folderTreeBody";
import FileListBody from "./fileListBody"; import FileListBody from "./fileListBody";
import Button from "@appserver/components/button"; import Button from "@appserver/components/button";
import { isArrayEqual } from "@appserver/components/utils/array";
class SelectFileDialogModalViewBody extends React.Component { class SelectFileDialogModalViewBody extends React.Component {
constructor(props) { constructor(props) {
super(props); super(props);
@ -25,6 +26,7 @@ class SelectFileDialogModalViewBody extends React.Component {
componentDidMount() { componentDidMount() {
const { foldersType, onSetLoadingData, onSelectFolder } = this.props; const { foldersType, onSetLoadingData, onSelectFolder } = this.props;
switch (foldersType) { switch (foldersType) {
case "common": case "common":
SelectFolderDialog.getCommonFolders() SelectFolderDialog.getCommonFolders()
@ -63,6 +65,13 @@ class SelectFileDialogModalViewBody extends React.Component {
}; };
onSelect = (folder) => { onSelect = (folder) => {
const { onSelectFolder } = this.props; const { onSelectFolder } = this.props;
const { selectedKeys } = this.state;
if (isArrayEqual(folder, selectedKeys)) {
return;
}
this.setState({ selectedKeys: folder });
onSelectFolder && onSelectFolder(folder[0]); onSelectFolder && onSelectFolder(folder[0]);
}; };
render() { render() {
@ -82,7 +91,7 @@ class SelectFileDialogModalViewBody extends React.Component {
loadNextPage, loadNextPage,
selectedFolder, selectedFolder,
} = this.props; } = this.props;
const { isAvailableFolders, isLoading } = this.state; const { isAvailableFolders, isLoading, selectedKeys } = this.state;
console.log("filesList", filesList); console.log("filesList", filesList);
return ( return (
<StyledAsidePanel visible={isPanelVisible}> <StyledAsidePanel visible={isPanelVisible}>
@ -107,9 +116,11 @@ class SelectFileDialogModalViewBody extends React.Component {
certainFolders certainFolders
isAvailableFolders isAvailableFolders
filter={filter} filter={filter}
selectedKeys={selectedKeys}
/> />
</div> </div>
<div className="modal-dialog_files-body"> <div className="modal-dialog_files-body">
{selectedFolder && (
<FileListBody <FileListBody
isLoadingData={isLoadingData} isLoadingData={isLoadingData}
filesList={filesList} filesList={filesList}
@ -118,7 +129,9 @@ class SelectFileDialogModalViewBody extends React.Component {
isNextPageLoading={isNextPageLoading} isNextPageLoading={isNextPageLoading}
loadNextPage={loadNextPage} loadNextPage={loadNextPage}
selectedFolder={selectedFolder} selectedFolder={selectedFolder}
isCommonWithoutProvider={isCommonWithoutProvider}
/> />
)}
</div> </div>
</div> </div>
</StyledSelectFilePanel> </StyledSelectFilePanel>

View File

@ -13,6 +13,7 @@ const FolderTreeBody = ({
certainFolders, certainFolders,
isAvailableFolders, isAvailableFolders,
filter, filter,
selectedKeys,
}) => { }) => {
const { t } = useTranslation(["SelectFile", "Common"]); const { t } = useTranslation(["SelectFile", "Common"]);
return ( return (
@ -26,6 +27,7 @@ const FolderTreeBody = ({
onSelect={onSelect} onSelect={onSelect}
withoutProvider={isCommonWithoutProvider} withoutProvider={isCommonWithoutProvider}
certainFolders={certainFolders} certainFolders={certainFolders}
selectedKeys={selectedKeys}
/> />
) : ( ) : (
<Text as="span">{t("NotAvailableFolder")}</Text> <Text as="span">{t("NotAvailableFolder")}</Text>