Components:Selectors:Files: add create room with define room type

This commit is contained in:
Timofey Boyko 2024-06-06 12:21:41 +03:00
parent 6fd4975e19
commit 13504dd59a
3 changed files with 37 additions and 6 deletions

View File

@ -33,9 +33,14 @@ import {
TFolderSecurity,
} from "../../api/files/types";
import SocketIOHelper from "../../utils/socket";
import { DeviceType, FolderType } from "../../enums";
import { DeviceType, FolderType, RoomsType } from "../../enums";
import { TRoomSecurity } from "../../api/rooms/types";
export type TCreateDefineRoom = {
label: string;
type: RoomsType;
};
export interface UseRootHelperProps {
setBreadCrumbs: React.Dispatch<React.SetStateAction<TBreadCrumb[]>>;
setIsBreadCrumbsLoading: React.Dispatch<React.SetStateAction<boolean>>;
@ -83,6 +88,8 @@ export type UseRoomsHelperProps = {
setIsInit: (value: boolean) => void;
setIsFirstLoad: (value: boolean) => void;
withCreate: boolean;
createDefineRoomLabel?: string;
createDefineRoomType?: RoomsType;
getRootData?: () => Promise<void>;
setSelectedItemType: React.Dispatch<
React.SetStateAction<"rooms" | "files" | undefined>
@ -215,4 +222,6 @@ export type FilesSelectorProps = (
getFilesArchiveError: (name: string) => string;
withCreate: boolean;
createDefineRoomLabel?: string;
createDefineRoomType?: RoomsType;
};

View File

@ -57,6 +57,8 @@ const useRoomsHelper = ({
setIsInit,
setIsFirstLoad,
withCreate,
createDefineRoomLabel,
createDefineRoomType,
getRootData,
setSelectedItemType,
}: UseRoomsHelperProps) => {
@ -142,13 +144,17 @@ const useRoomsHelper = ({
if (firstLoadRef.current || startIndex === 0) {
if (withCreate) {
setTotal(total + 1);
itemList.unshift({
const createItem: TSelectorItem = {
isCreateNewItem: true,
label: t("NewRoom"),
label: createDefineRoomLabel ?? t("NewRoom"),
id: "create-room-item",
key: "create-room-item",
hotkey: "r",
dropDownItems: createDropDownItems,
dropDownItems: createDefineRoomType
? undefined
: createDropDownItems,
onBackClick: () => {
setIsRoot(true);
setSelectedItemType(undefined);
@ -161,7 +167,14 @@ const useRoomsHelper = ({
});
getRootData?.();
},
});
};
if (createDefineRoomType) {
createItem.onCreateClick = () =>
addInputItem("", "", createDefineRoomType, createDefineRoomLabel);
}
itemList.unshift(createItem);
} else {
setTotal(total);
}
@ -181,6 +194,7 @@ const useRoomsHelper = ({
},
[
setIsNextPageLoading,
withCreate,
searchValue,
setHasNextPage,
setIsRoot,
@ -190,11 +204,13 @@ const useRoomsHelper = ({
onSetBaseFolderPath,
setBreadCrumbs,
setIsBreadCrumbsLoading,
withCreate,
setItems,
setTotal,
createDefineRoomLabel,
t,
createDefineRoomType,
createDropDownItems,
addInputItem,
setSelectedItemType,
getRootData,
],

View File

@ -108,7 +108,10 @@ const FilesSelector = ({
withBreadCrumbs: withBreadCrumbsProp,
filesSettings,
cancelButtonLabel,
withCreate,
createDefineRoomLabel,
createDefineRoomType,
}: FilesSelectorProps) => {
const theme = useTheme();
const { t } = useTranslation(["Common"]);
@ -198,6 +201,9 @@ const FilesSelector = ({
setIsFirstLoad,
withCreate,
createDefineRoomLabel,
createDefineRoomType,
getRootData,
setSelectedItemType,
});