Web: Client: InvitePanel: Fixed disabling external links and generating new ones when external links enabled

This commit is contained in:
Ilya Oleshko 2023-02-01 23:00:32 +03:00
parent f7823f4269
commit 1501d0f537

View File

@ -1,6 +1,6 @@
import MediaDownloadReactSvgUrl from "PUBLIC_DIR/images/media.download.react.svg?url";
import CopyReactSvgUrl from "PUBLIC_DIR/images/copy.react.svg?url";
import React, { useState, useEffect, useRef, memo, useCallback } from "react";
import React, { useState, useEffect, useRef, useCallback } from "react";
import { inject, observer } from "mobx-react";
import copy from "copy-to-clipboard";
@ -30,6 +30,7 @@ const ExternalLinks = ({
shareLinks,
setInvitationLinks,
isOwner,
getInfo,
}) => {
const [linksVisible, setLinksVisible] = useState(false);
const [actionLinksVisible, setActionLinksVisible] = useState(false);
@ -37,18 +38,22 @@ const ExternalLinks = ({
const inputsRef = useRef();
useEffect(() => {
if (shareLinks[0]?.expirationDate) toggleLinks();
}, [shareLinks]);
const toggleLinks = (e) => {
let link = null;
if (!shareLinks.length) return;
if (roomId === -1) {
link = shareLinks.find((l) => l.access === +defaultAccess);
setActiveLink(link);
} else {
setInvitationLinks(roomId, shareLinks[0].id, "Invite", +defaultAccess);
link = shareLinks[0];
setActiveLink(shareLinks[0]);
!linksVisible ? editLink() : disableLink();
}
setLinksVisible(!linksVisible);
@ -56,6 +61,23 @@ const ExternalLinks = ({
if (!linksVisible) copyLink(link?.shareLink);
};
const disableLink = () => {
setInvitationLinks(roomId, shareLinks[0].id, "Invite", 0);
setTimeout(() => getInfo(), 100);
};
const editLink = () => {
if (!shareLinks[0].expirationDate) {
setInvitationLinks(
roomId,
shareLinks[0].id,
"Invite",
shareLinks[0].access
);
}
setActiveLink(shareLinks[0]);
};
const onSelectAccess = (access) => {
let link = null;
if (roomId === -1) {
@ -84,6 +106,8 @@ const ExternalLinks = ({
}
};
const onCopyLink = () => copyLink(activeLink.shareLink);
const toggleActionLinks = () => {
setActionLinksVisible(!actionLinksVisible);
};
@ -151,11 +175,11 @@ const ExternalLinks = ({
>
<DropDownItem
label={`${t("SharingPanel:ShareVia")} e-mail`}
onClick={() => shareEmail(links[0])}
onClick={() => shareEmail(activeLink[0])}
/>
<DropDownItem
label={`${t("SharingPanel:ShareVia")} Twitter`}
onClick={() => shareTwitter(links[0])}
onClick={() => shareTwitter(activeLink[0])}
/>
</DropDown>
</div>
@ -171,7 +195,7 @@ const ExternalLinks = ({
value={activeLink.shareLink}
isReadOnly
iconName={CopyReactSvgUrl}
onIconClick={() => copyLink(activeLink.shareLink)}
onIconClick={onCopyLink}
hoverColor="#333333"
iconColor="#A3A9AE"
/>