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