Merge pull request #424 from ONLYOFFICE/feature/copy-folder-link

Feature/copy folder link
This commit is contained in:
Alexey Safronov 2024-05-24 18:59:01 +04:00 committed by GitHub
commit ad888d4032
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 39 additions and 12 deletions

View File

@ -465,7 +465,6 @@ const SectionHeaderContent = (props) => {
security,
haveLinksRight,
isPublicRoomType,
isPublicRoom,
isFrame,
} = props;
@ -828,7 +827,7 @@ const SectionHeaderContent = (props) => {
};
const onNavigationButtonClick = () => {
onCreateAndCopySharedLink(selectedFolder, t);
onCreateAndCopySharedLink(props.roomItem, t);
};
const headerMenu = isAccountsPage
@ -1148,6 +1147,7 @@ export default inject(
rootFolderType,
parentRoomType,
isFolder,
shared,
} = selectedFolderStore;
const selectedFolder = selectedFolderStore.getSelectedFolder();
@ -1164,6 +1164,7 @@ export default inject(
const isRoom = !!roomType;
const isPublicRoomType = roomType === RoomsType.PublicRoom;
const isCustomRoomType = roomType === RoomsType.CustomRoom;
const isFormRoomType =
roomType === RoomsType.FormRoom ||
(parentRoomType === FolderType.FormRoom && isFolder);
@ -1224,13 +1225,21 @@ export default inject(
const isArchive = rootFolderType === FolderType.Archive;
const sharedItem = navigationPath.find((r) => r.shared);
const showNavigationButton = isLoading
? false
: !isPublicRoom &&
!isArchive &&
canCopyPublicLink &&
(isPublicRoomType || isCustomRoomType) &&
primaryLink;
: (!isPublicRoom &&
!isArchive &&
canCopyPublicLink &&
(isPublicRoomType || isCustomRoomType) &&
shared) ||
(sharedItem && sharedItem.canCopyPublicLink);
const roomItem =
navigationPath.length > 1
? navigationPath[navigationPath.length - 2]
: selectedFolder;
return {
isGracePeriod,
@ -1357,6 +1366,8 @@ export default inject(
onClickReconnectStorage,
getFolderModel,
onCreateRoom,
roomItem,
};
},
)(

View File

@ -106,7 +106,7 @@ import {
FilesSelectorFilterTypes,
} from "@docspace/shared/enums";
import FilesFilter from "@docspace/shared/api/files/filter";
import { getFileLink } from "@docspace/shared/api/files";
import { getFileLink, getFolderLink } from "@docspace/shared/api/files";
import { resendInvitesAgain } from "@docspace/shared/api/people";
import { checkDialogsOpen } from "@docspace/shared/utils/checkDialogsOpen";
@ -394,10 +394,17 @@ class ContextOptionsStore {
(sharedItem && sharedItem.canCopyPublicLink) ||
(shared && canCopyPublicLink);
if (isShared && !item.isFolder && !isArchive) {
const fileLinkData = await getFileLink(item.id);
copyShareLink(fileLinkData.sharedTo.shareLink);
return toastr.success(t("Translations:LinkCopySuccess"));
if (isShared && !isArchive) {
try {
const itemLink = item.isFolder
? await getFolderLink(item.id)
: await getFileLink(item.id);
copyShareLink(itemLink.sharedTo.shareLink);
toastr.success(t("Translations:LinkCopySuccess"));
} catch (error) {
toastr.error(error);
}
return;
}
if (

View File

@ -1306,6 +1306,15 @@ export async function getFileLink(fileId: number) {
return res;
}
export async function getFolderLink(fileId: number) {
const res = (await request({
method: "get",
url: `/files/folder/${fileId}/link`,
})) as TFileLink;
return res;
}
export async function getExternalLinks(
fileId: number | string,
startIndex = 0,