Components:Selectors:Files: add create room with define room type
This commit is contained in:
parent
6fd4975e19
commit
13504dd59a
@ -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;
|
||||
};
|
||||
|
@ -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,
|
||||
],
|
||||
|
@ -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,
|
||||
});
|
||||
|
Loading…
Reference in New Issue
Block a user