hoist remove prompt out of conditional
confirming the prompt optimistically drops the row, which would unmount the prompt mid-close and race the dismiss animation on native. only the button needs gating behind showRemoveButton. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -153,22 +153,15 @@ export function Member({
|
|||||||
</ProfileCard.Outer>
|
</ProfileCard.Outer>
|
||||||
</ProfileCard.Link>
|
</ProfileCard.Link>
|
||||||
{showRemoveButton ? (
|
{showRemoveButton ? (
|
||||||
<>
|
<Button
|
||||||
<Button
|
label={l`Remove ${displayName} from this group chat`}
|
||||||
label={l`Remove ${displayName} from this group chat`}
|
size="tiny"
|
||||||
size="tiny"
|
color="negative_subtle"
|
||||||
color="negative_subtle"
|
onPress={() => removeMemberPrompt.open()}>
|
||||||
onPress={() => removeMemberPrompt.open()}>
|
<ButtonText>
|
||||||
<ButtonText>
|
<Trans>Remove</Trans>
|
||||||
<Trans>Remove</Trans>
|
</ButtonText>
|
||||||
</ButtonText>
|
</Button>
|
||||||
</Button>
|
|
||||||
<RemoveMemberPrompt
|
|
||||||
control={removeMemberPrompt}
|
|
||||||
displayName={displayName}
|
|
||||||
onConfirm={() => removeMembers({members: [profile.did]})}
|
|
||||||
/>
|
|
||||||
</>
|
|
||||||
) : isSelf || isFollowing || isBlockedOrBlocking(profile) ? null : (
|
) : isSelf || isFollowing || isBlockedOrBlocking(profile) ? null : (
|
||||||
<SimpleInlineLinkText
|
<SimpleInlineLinkText
|
||||||
label={l`Follow ${displayName}`}
|
label={l`Follow ${displayName}`}
|
||||||
@@ -179,6 +172,14 @@ export function Member({
|
|||||||
)}
|
)}
|
||||||
{statusBadge}
|
{statusBadge}
|
||||||
</View>
|
</View>
|
||||||
|
{/* Mounted outside the showRemoveButton conditional: confirming the
|
||||||
|
prompt optimistically drops this row, so gating the prompt on the
|
||||||
|
button would unmount it mid-close and race the dismiss animation. */}
|
||||||
|
<RemoveMemberPrompt
|
||||||
|
control={removeMemberPrompt}
|
||||||
|
displayName={displayName}
|
||||||
|
onConfirm={() => removeMembers({members: [profile.did]})}
|
||||||
|
/>
|
||||||
</SubtleHoverWrapper>
|
</SubtleHoverWrapper>
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user