Merge pull request #424 from ONLYOFFICE/feature/copy-folder-link
Feature/copy folder link
This commit is contained in:
commit
ad888d4032
@ -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,
|
||||
};
|
||||
},
|
||||
)(
|
||||
|
@ -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 (
|
||||
|
@ -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,
|
||||
|
Loading…
Reference in New Issue
Block a user