Web: Client: Components: SelectDialogs: Added rooms only filter

This commit is contained in:
Ilya Oleshko 2023-07-10 18:07:24 +03:00
parent 1df512ef73
commit d6d873e34a
6 changed files with 28 additions and 6 deletions

View File

@ -74,6 +74,7 @@ const SelectFileDialogAsideView = ({
isFolderTreeLoading={!!!resultingFolderTree}
withFileSelectDialog
maxInputWidth={maxInputWidth ? maxInputWidth : "446px"}
embedded={embedded}
/>
<Text color="#A3A9AE" className="selection-panel_aside-title">

View File

@ -308,6 +308,7 @@ SelectFileDialog.propTypes = {
filteredType: PropTypes.oneOf([
"exceptSortedByTags",
"exceptPrivacyTrashArchiveFolders",
"roomsOnly",
]),
id: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),
withoutProvider: PropTypes.bool,

View File

@ -43,6 +43,7 @@ class SelectFolderDialog extends React.Component {
storeFolderId,
withoutBasicSelection,
setResultingFoldersTree,
embedded,
} = this.props;
!displayType && window.addEventListener("resize", this.throttledResize);
@ -51,7 +52,7 @@ class SelectFolderDialog extends React.Component {
let resultingFolderTree, resultingId;
if (!withFileSelectDialog) {
if (!withFileSelectDialog || embedded) {
treeFolders = await this.props.fetchTreeFolders();
const roomsFolder = treeFolders.find(
@ -68,7 +69,7 @@ class SelectFolderDialog extends React.Component {
] = await SelectionPanel.getBasicFolderInfo(
treeFolders,
filteredType,
initialFolderId,
embedded ? null : initialFolderId,
passedFoldersTree,
hasSharedFolder
);
@ -91,7 +92,7 @@ class SelectFolderDialog extends React.Component {
const resId = withFileSelectDialog ? id : resultingId;
if (!withoutBasicSelection) {
if (!withoutBasicSelection || embedded) {
onSelectFolder && onSelectFolder(resId);
onSetBaseFolderPath && onSetBaseFolderPath(resId);
}
@ -294,6 +295,7 @@ SelectFolderDialog.propTypes = {
filteredType: PropTypes.oneOf([
"exceptSortedByTags",
"exceptPrivacyTrashArchiveFolders",
"roomsOnly",
"",
]),
displayType: PropTypes.oneOf(["aside", "modal"]),

View File

@ -185,6 +185,7 @@ SelectFolderInput.propTypes = {
filteredType: PropTypes.oneOf([
"exceptSortedByTags",
"exceptPrivacyTrashArchiveFolders",
"roomsOnly",
"",
]),
};

View File

@ -13,3 +13,12 @@ export const exceptPrivacyTrashArchiveFolders = [
FolderType.TRASH,
FolderType.Archive,
];
export const roomsOnly = [
FolderType.USER,
FolderType.Recent,
FolderType.TRASH,
FolderType.Favorites,
FolderType.Privacy,
FolderType.Archive,
];

View File

@ -14,6 +14,7 @@ import toastr from "@docspace/components/toast/toastr";
import {
exceptSortedByTagsFolders,
exceptPrivacyTrashArchiveFolders,
roomsOnly,
} from "./ExceptionFoldersConstants";
import { StyledBody, StyledModalDialog } from "./StyledSelectionPanel";
import Text from "@docspace/components/text";
@ -198,6 +199,8 @@ class SelectionPanel extends React.Component {
treeFolders,
exceptPrivacyTrashArchiveFolders
);
case "roomsOnly":
return filterFoldersTree(treeFolders, roomsOnly);
}
};
@ -206,15 +209,20 @@ class SelectionPanel extends React.Component {
const foldersTree =
passedFoldersTree.length > 0 ? passedFoldersTree : treeFolders;
const passedId = id ? id : foldersTree[0].id;
if (
filteredType === "exceptSortedByTags" ||
filteredType === "exceptPrivacyTrashArchiveFolders"
filteredType === "exceptPrivacyTrashArchiveFolders" ||
filteredType === "roomsOnly"
) {
filteredTreeFolders = getExceptionsFolders(foldersTree);
}
const passedId = id
? id
: filteredTreeFolders
? filteredTreeFolders[0].id
: foldersTree[0].id;
return [filteredTreeFolders || foldersTree, passedId];
};
render() {