diff --git a/packages/client/src/store/ContextOptionsStore.js b/packages/client/src/store/ContextOptionsStore.js index fe9f8a9d12..615ceadd2b 100644 --- a/packages/client/src/store/ContextOptionsStore.js +++ b/packages/client/src/store/ContextOptionsStore.js @@ -29,6 +29,7 @@ import UnmuteReactSvgUrl from "PUBLIC_DIR/images/unmute.react.svg?url"; import MuteReactSvgUrl from "PUBLIC_DIR/images/mute.react.svg?url"; import ShareReactSvgUrl from "PUBLIC_DIR/images/share.react.svg?url"; import InvitationLinkReactSvgUrl from "PUBLIC_DIR/images/invitation.link.react.svg?url"; +import CopyToReactSvgUrl from "PUBLIC_DIR/images/copyTo.react.svg?url"; import MailReactSvgUrl from "PUBLIC_DIR/images/mail.react.svg?url"; import RoomArchiveSvgUrl from "PUBLIC_DIR/images/room.archive.svg?url"; import { makeAutoObservable } from "mobx"; @@ -934,6 +935,14 @@ class ContextOptionsStore { onClick: () => this.onCopyLink(item, t), disabled: false, }, + { + id: "option_copy-external-link", + key: "external-link", + label: t("SharingPanel:CopyExternalLink"), + icon: CopyToReactSvgUrl, + onClick: this.onClickCopyExternalLink, + disabled: false, + }, { id: "option_room-info", key: "room-info", diff --git a/packages/client/src/store/FilesStore.js b/packages/client/src/store/FilesStore.js index 0ef28e29ae..472c5118ae 100644 --- a/packages/client/src/store/FilesStore.js +++ b/packages/client/src/store/FilesStore.js @@ -1805,6 +1805,8 @@ class FilesStore { const canViewRoomInfo = item.security?.Read; const canMuteRoom = item.security?.Mute; + const isPublicRoom = item.roomType === RoomsType.PublicRoom; + let roomOptions = [ "select", "open", @@ -1813,6 +1815,7 @@ class FilesStore { "reconnect-storage", "edit-room", "invite-users-to-room", + "external-link", "room-info", "pin-room", "unpin-room", @@ -1897,6 +1900,10 @@ class FilesStore { } } + if (!isPublicRoom) { + roomOptions = this.removeOptions(roomOptions, ["external-link"]); + } + roomOptions = this.removeSeparator(roomOptions); return roomOptions;