From 3949b34ba7079f2deace56186ce43c2d8d23f0c3 Mon Sep 17 00:00:00 2001 From: Ilya Oleshko Date: Thu, 8 Sep 2022 18:10:49 +0300 Subject: [PATCH] Web: Client: InvitePanel: Added access options helper --- .../components/panels/InvitePanel/accesses.js | 101 ++++++++++++++++++ 1 file changed, 101 insertions(+) create mode 100644 packages/client/src/components/panels/InvitePanel/accesses.js diff --git a/packages/client/src/components/panels/InvitePanel/accesses.js b/packages/client/src/components/panels/InvitePanel/accesses.js new file mode 100644 index 0000000000..61d66844f3 --- /dev/null +++ b/packages/client/src/components/panels/InvitePanel/accesses.js @@ -0,0 +1,101 @@ +import { ShareAccessRights, RoomsType } from "@docspace/common/constants"; + +export const getAccessOptions = ( + t, + roomType = RoomsType.CustomRoom, + withRemove = false, + withSeparator = false +) => { + let options = []; + const accesses = { + roomManager: { + key: "roomManager", + label: "Room manager", + access: ShareAccessRights.FullAccess, + }, + editor: { + key: "editor", + label: "Editor", + access: ShareAccessRights.CustomFilter, + }, + formFiller: { + key: "formFiller", + label: "Form filler", + access: ShareAccessRights.FormFilling, + }, + reviewer: { + key: "reviewer", + label: "Reviewer", + access: ShareAccessRights.Review, + }, + commentator: { + key: "commentator", + label: "Commentator", + access: ShareAccessRights.Comment, + }, + viewer: { + key: "viewer", + label: "Viewer", + access: ShareAccessRights.ReadOnly, + }, + }; + + switch (roomType) { + case RoomsType.FillingFormsRoom: + options = [ + accesses.roomManager, + { key: "s1", isSeparator: withSeparator }, + accesses.formFiller, + accesses.viewer, + ]; + break; + case RoomsType.EditingRoom: + options = [ + accesses.roomManager, + { key: "s1", isSeparator: withSeparator }, + accesses.editor, + accesses.viewer, + ]; + break; + case RoomsType.ReviewRoom: + options = [ + accesses.roomManager, + { key: "s1", isSeparator: withSeparator }, + accesses.reviewer, + accesses.commentator, + accesses.viewer, + ]; + break; + case RoomsType.ReadOnlyRoom: + options = [ + accesses.roomManager, + { key: "s1", isSeparator: withSeparator }, + accesses.viewer, + ]; + break; + case RoomsType.CustomRoom: + options = [ + accesses.roomManager, + { key: "s1", isSeparator: withSeparator }, + accesses.editor, + accesses.formFiller, + accesses.reviewer, + accesses.commentator, + accesses.viewer, + ]; + break; + } + + const removeOption = [ + { + key: "s2", + isSeparator: true, + }, + { + key: "remove", + label: "Remove", + }, + ]; + + return withRemove ? [...options, ...removeOption] : options; +};