|
|
|
@ -22,20 +22,17 @@ export default function Mentions({ |
|
|
|
}) { |
|
|
|
}) { |
|
|
|
const { t } = useTranslation() |
|
|
|
const { t } = useTranslation() |
|
|
|
const { pubkey } = useNostr() |
|
|
|
const { pubkey } = useNostr() |
|
|
|
const [pubkeys, setPubkeys] = useState<string[]>([]) |
|
|
|
|
|
|
|
const [relatedPubkeys, setRelatedPubkeys] = useState<string[]>([]) |
|
|
|
|
|
|
|
const [potentialMentions, setPotentialMentions] = useState<string[]>([]) |
|
|
|
const [potentialMentions, setPotentialMentions] = useState<string[]>([]) |
|
|
|
const [parentEventPubkey, setParentEventPubkey] = useState<string | undefined>() |
|
|
|
const [parentEventPubkey, setParentEventPubkey] = useState<string | undefined>() |
|
|
|
const [removedPubkeys, setRemovedPubkeys] = useState<string[]>([]) |
|
|
|
const [removedPubkeys, setRemovedPubkeys] = useState<string[]>([]) |
|
|
|
|
|
|
|
|
|
|
|
useEffect(() => { |
|
|
|
useEffect(() => { |
|
|
|
extractMentions(content, parentEvent).then(({ pubkeys, relatedPubkeys, parentEventPubkey }) => { |
|
|
|
extractMentions(content, parentEvent).then(({ pubkeys, relatedPubkeys, parentEventPubkey }) => { |
|
|
|
setPubkeys(pubkeys.filter((p) => p !== pubkey)) |
|
|
|
const _parentEventPubkey = parentEventPubkey !== pubkey ? parentEventPubkey : undefined |
|
|
|
setRelatedPubkeys(relatedPubkeys.filter((p) => p !== pubkey)) |
|
|
|
setParentEventPubkey(_parentEventPubkey) |
|
|
|
setParentEventPubkey(parentEventPubkey !== pubkey ? parentEventPubkey : undefined) |
|
|
|
const potentialMentions = [...pubkeys, ...relatedPubkeys].filter((p) => p !== pubkey) |
|
|
|
const potentialMentions = [...pubkeys, ...relatedPubkeys] |
|
|
|
if (_parentEventPubkey) { |
|
|
|
if (parentEventPubkey) { |
|
|
|
potentialMentions.push(_parentEventPubkey) |
|
|
|
potentialMentions.push(parentEventPubkey) |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
setPotentialMentions(potentialMentions) |
|
|
|
setPotentialMentions(potentialMentions) |
|
|
|
setRemovedPubkeys((pubkeys) => { |
|
|
|
setRemovedPubkeys((pubkeys) => { |
|
|
|
@ -55,7 +52,7 @@ export default function Mentions({ |
|
|
|
<Button |
|
|
|
<Button |
|
|
|
className="px-3" |
|
|
|
className="px-3" |
|
|
|
variant="ghost" |
|
|
|
variant="ghost" |
|
|
|
disabled={pubkeys.length === 0 && relatedPubkeys.length === 0 && !parentEventPubkey} |
|
|
|
disabled={potentialMentions.length === 0} |
|
|
|
onClick={(e) => e.stopPropagation()} |
|
|
|
onClick={(e) => e.stopPropagation()} |
|
|
|
> |
|
|
|
> |
|
|
|
{t('Mentions')}{' '} |
|
|
|
{t('Mentions')}{' '} |
|
|
|
|