ConversationDetails: Prevent block/leave of group if only admin

This commit is contained in:
Scott Nonnenberg 2021-09-10 11:18:37 -07:00 committed by GitHub
parent 84ac7dd2df
commit 5fb78e1986
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -33,6 +33,7 @@ export const ConversationDetailsActions: React.ComponentType<Props> = ({
const [confirmingBlock, setConfirmingBlock] = React.useState<boolean>(false); const [confirmingBlock, setConfirmingBlock] = React.useState<boolean>(false);
let leaveGroupNode: ReactNode; let leaveGroupNode: ReactNode;
let blockGroupNode: ReactNode;
if (!left) { if (!left) {
leaveGroupNode = ( leaveGroupNode = (
<PanelRow <PanelRow
@ -72,11 +73,9 @@ export const ConversationDetailsActions: React.ComponentType<Props> = ({
} }
} }
return ( blockGroupNode = (
<>
<PanelSection>
{leaveGroupNode}
<PanelRow <PanelRow
disabled={cannotLeaveBecauseYouAreLastAdmin}
onClick={() => setConfirmingBlock(true)} onClick={() => setConfirmingBlock(true)}
icon={ icon={
<ConversationDetailsIcon <ConversationDetailsIcon
@ -90,6 +89,25 @@ export const ConversationDetailsActions: React.ComponentType<Props> = ({
</div> </div>
} }
/> />
);
if (cannotLeaveBecauseYouAreLastAdmin) {
blockGroupNode = (
<Tooltip
content={i18n(
'ConversationDetailsActions--leave-group-must-choose-new-admin'
)}
direction={TooltipPlacement.Top}
>
{blockGroupNode}
</Tooltip>
);
}
return (
<>
<PanelSection>
{leaveGroupNode}
{blockGroupNode}
</PanelSection> </PanelSection>
{confirmingLeave && ( {confirmingLeave && (