StatusContent: prevent bubbling of mentions, links, hashtags, and "Read more" button
This commit is contained in:
parent
6a8d7e4ed3
commit
4c57968914
1 changed files with 11 additions and 4 deletions
|
@ -12,6 +12,7 @@ import { isRtl } from '../rtl';
|
|||
|
||||
import Poll from './polls/poll';
|
||||
import './status-content.css';
|
||||
import StopPropagation from './stop-propagation';
|
||||
|
||||
import type { Status, Mention } from 'soapbox/types/entities';
|
||||
|
||||
|
@ -29,10 +30,12 @@ interface IReadMoreButton {
|
|||
|
||||
/** Button to expand a truncated status (due to too much content) */
|
||||
const ReadMoreButton: React.FC<IReadMoreButton> = ({ onClick }) => (
|
||||
<button className='flex items-center text-gray-900 dark:text-gray-300 border-0 bg-transparent p-0 pt-2 hover:underline active:underline' onClick={onClick}>
|
||||
<FormattedMessage id='status.read_more' defaultMessage='Read more' />
|
||||
<Icon className='inline-block h-5 w-5' src={require('@tabler/icons/chevron-right.svg')} fixedWidth />
|
||||
</button>
|
||||
<StopPropagation>
|
||||
<button className='flex items-center text-gray-900 dark:text-gray-300 border-0 bg-transparent p-0 pt-2 hover:underline active:underline' onClick={onClick}>
|
||||
<FormattedMessage id='status.read_more' defaultMessage='Read more' />
|
||||
<Icon className='inline-block h-5 w-5' src={require('@tabler/icons/chevron-right.svg')} fixedWidth />
|
||||
</button>
|
||||
</StopPropagation>
|
||||
);
|
||||
|
||||
interface IStatusContent {
|
||||
|
@ -103,6 +106,10 @@ const StatusContent: React.FC<IStatusContent> = ({ status, onClick, collapsable
|
|||
link.setAttribute('title', link.href);
|
||||
link.addEventListener('click', onLinkClick.bind(link), false);
|
||||
}
|
||||
|
||||
// Prevent bubbling
|
||||
link.addEventListener('mouseup', e => e.stopPropagation());
|
||||
link.addEventListener('mousedown', e => e.stopPropagation());
|
||||
});
|
||||
};
|
||||
|
||||
|
|
Loading…
Reference in a new issue