Client:EmptyView Added a empty room public screen

This commit is contained in:
Akmal Isomadinov 2024-08-01 18:05:07 +05:00
parent 443c23936d
commit 9572d260f6
4 changed files with 55 additions and 12 deletions

View File

@ -12,8 +12,11 @@
"FormRoomEmptyTitle": "Welcome to the Form filling room", "FormRoomEmptyTitle": "Welcome to the Form filling room",
"InviteUsersOptionDescription": "Add portal members for joint editing in the room", "InviteUsersOptionDescription": "Add portal members for joint editing in the room",
"InviteUsersOptionTitle": "Inviting Attendees", "InviteUsersOptionTitle": "Inviting Attendees",
"PublicRoomEmptyTitle": "Welcome to the Public room",
"ShareOptionDescription": "Copy a public access link or invite other users to the room to start the form filling process.", "ShareOptionDescription": "Copy a public access link or invite other users to the room to start the form filling process.",
"ShareOptionTitle": "Share a room", "ShareOptionTitle": "Share a room",
"SharePublicRoomOptionDescription": "Enable external link access to other users.",
"SharePublicRoomOptionTitle": "Share the room with all users",
"UploadDeviceOptionDescription": "Upload any type files from your personal device", "UploadDeviceOptionDescription": "Upload any type files from your personal device",
"UploadDeviceOptionTitle": "Upload from your Device", "UploadDeviceOptionTitle": "Upload from your Device",
"UploadDevicePDFFormOptionDescription": "Upload a ready PDF form to the room from your device.", "UploadDevicePDFFormOptionDescription": "Upload a ready PDF form to the room from your device.",

View File

@ -79,10 +79,7 @@ const EmptyFolderContainer = ({
[t, canCreateFiles, type], [t, canCreateFiles, type],
); );
if ( if (roomType || parentRoomType === FolderType.FormRoom) {
roomType === RoomsType.FormRoom ||
parentRoomType === FolderType.FormRoom
) {
return ( return (
<EmptyViewContainer <EmptyViewContainer
type={roomType} type={roomType}

View File

@ -15,6 +15,12 @@ import EmptyFormRoomLightIcon from "PUBLIC_DIR/images/emptyview/empty.form.room.
import EmptyCustomRoomDarkIcon from "PUBLIC_DIR/images/emptyview/empty.custom.room.dark.svg"; import EmptyCustomRoomDarkIcon from "PUBLIC_DIR/images/emptyview/empty.custom.room.dark.svg";
import EmptyCustomRoomLightIcon from "PUBLIC_DIR/images/emptyview/empty.custom.room.light.svg"; import EmptyCustomRoomLightIcon from "PUBLIC_DIR/images/emptyview/empty.custom.room.light.svg";
import EmptyPublicRoomDarkIcon from "PUBLIC_DIR/images/emptyview/empty.public.room.dark.svg";
import EmptyPublicRoomLightIcon from "PUBLIC_DIR/images/emptyview/empty.public.room.light.svg";
import EmptyPublicRoomCollaboratorDarkIcon from "PUBLIC_DIR/images/emptyview/empty.public.room.collaborator.dark.svg";
import EmptyPublicRoomCollaboratorLightIcon from "PUBLIC_DIR/images/emptyview/empty.public.room.collaborator.light.svg";
import EmptyFormRoomCollaboratorDarkIcon from "PUBLIC_DIR/images/emptyview/empty.form.room.collaborator.dark.svg"; import EmptyFormRoomCollaboratorDarkIcon from "PUBLIC_DIR/images/emptyview/empty.form.room.collaborator.dark.svg";
import EmptyFormRoomCollaboratorLightIcon from "PUBLIC_DIR/images/emptyview/empty.form.room.collaborator.light.svg"; import EmptyFormRoomCollaboratorLightIcon from "PUBLIC_DIR/images/emptyview/empty.form.room.collaborator.light.svg";
@ -167,7 +173,7 @@ export const getTitle = (
case RoomsType.EditingRoom: case RoomsType.EditingRoom:
return ""; return "";
case RoomsType.PublicRoom: case RoomsType.PublicRoom:
return ""; return t("EmptyView:PublicRoomEmptyTitle");
case RoomsType.CustomRoom: case RoomsType.CustomRoom:
return t("EmptyView:CustomRoomEmptyTitle"); return t("EmptyView:CustomRoomEmptyTitle");
default: default:
@ -214,7 +220,25 @@ export const getRoomIcon = (
) )
.with([RoomsType.EditingRoom, P._], () => <div />) .with([RoomsType.EditingRoom, P._], () => <div />)
.with([RoomsType.PublicRoom, P._], () => <div />) .with(
[
RoomsType.PublicRoom,
P.union(ShareAccessRights.None, ShareAccessRights.RoomManager), // owner, docspace admin, room admin
],
() =>
isBaseTheme ? (
<EmptyPublicRoomLightIcon />
) : (
<EmptyPublicRoomDarkIcon />
),
)
.with([RoomsType.PublicRoom, ShareAccessRights.Collaborator], () =>
isBaseTheme ? (
<EmptyPublicRoomCollaboratorLightIcon />
) : (
<EmptyPublicRoomCollaboratorDarkIcon />
),
)
.with( .with(
[ [
RoomsType.CustomRoom, RoomsType.CustomRoom,
@ -381,7 +405,7 @@ export const getOptions = (
t("EmptyView:InviteUsersOptionDescription"), t("EmptyView:InviteUsersOptionDescription"),
); );
const shareRoom = { const shareFillingRoom = {
title: t("EmptyView:ShareOptionTitle"), title: t("EmptyView:ShareOptionTitle"),
description: t("EmptyView:ShareOptionDescription"), description: t("EmptyView:ShareOptionDescription"),
icon: <SharedIcon />, icon: <SharedIcon />,
@ -390,6 +414,15 @@ export const getOptions = (
disabled: false, disabled: false,
}; };
const sharePublicRoom = {
title: t("EmptyView:SharePublicRoomOptionTitle"),
description: t("EmptyView:SharePublicRoomOptionDescription"),
icon: <SharedIcon />,
key: "share-public-room",
onClick: actions.createAndCopySharedLink,
disabled: false,
};
const createFile: EmptyViewItemType = { const createFile: EmptyViewItemType = {
title: t("EmptyView:CreateNewFileTitle"), title: t("EmptyView:CreateNewFileTitle"),
description: t("EmptyView:CreateNewFileDescription"), description: t("EmptyView:CreateNewFileDescription"),
@ -461,13 +494,23 @@ export const getOptions = (
if (isFormFiller) return []; if (isFormFiller) return [];
if (isCollaborator) if (isCollaborator)
return [uploadPDFFromDocSpace, uploadFromDevicePDF, shareRoom]; return [uploadPDFFromDocSpace, uploadFromDevicePDF, shareFillingRoom];
return [uploadPDFFromDocSpace, uploadFromDevicePDF, shareRoom]; return [uploadPDFFromDocSpace, uploadFromDevicePDF, shareFillingRoom];
case RoomsType.EditingRoom: case RoomsType.EditingRoom:
return []; return [];
case RoomsType.PublicRoom: case RoomsType.PublicRoom:
return []; if (isNotAdmin) return [];
if (isCollaborator)
return [createFile, uploadAllFromDocSpace, uploadFromDeviceAnyFile];
return [
createFile,
sharePublicRoom,
uploadAllFromDocSpace,
uploadFromDeviceAnyFile,
];
case RoomsType.CustomRoom: case RoomsType.CustomRoom:
if (isNotAdmin) return []; if (isNotAdmin) return [];

View File

@ -184,7 +184,7 @@ const EmptyViewContainer = observer(
}, },
); );
const injectedEmptyViewContainer = inject<TStore>( const InjectedEmptyViewContainer = inject<TStore>(
({ contextOptionsStore, selectedFolderStore, dialogsStore }) => { ({ contextOptionsStore, selectedFolderStore, dialogsStore }) => {
const { onClickInviteUsers, onCreateAndCopySharedLink } = const { onClickInviteUsers, onCreateAndCopySharedLink } =
contextOptionsStore; contextOptionsStore;
@ -206,4 +206,4 @@ const injectedEmptyViewContainer = inject<TStore>(
}, },
)(EmptyViewContainer); )(EmptyViewContainer);
export default injectedEmptyViewContainer; export default InjectedEmptyViewContainer;