Web: Client: InvitePanel: Fixed disabling external links and generating new ones when external links enabled
This commit is contained in:
parent
f7823f4269
commit
1501d0f537
@ -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"
|
||||
/>
|
||||
|
Loading…
Reference in New Issue
Block a user