[Glitch] Fix verified badge in account lists potentially including rel="me" links

Port 55e7c08a83 to glitch-soc

Signed-off-by: Claire <claire.github-309c@sitedethib.com>
pull/2492/head
Claire 2023-06-24 17:24:31 +02:00
parent e7ec2641a0
commit 32ec0d2472
1 changed files with 17 additions and 1 deletions

View File

@ -1,11 +1,27 @@
import { Icon } from './icon'; import { Icon } from './icon';
const domParser = new DOMParser();
const stripRelMe = (html: string) => {
const document = domParser.parseFromString(html, 'text/html').documentElement;
document.querySelectorAll<HTMLAnchorElement>('a[rel]').forEach((link) => {
link.rel = link.rel
.split(' ')
.filter((x: string) => x !== 'me')
.join(' ');
});
const body = document.querySelector('body');
return body ? { __html: body.innerHTML } : undefined;
};
interface Props { interface Props {
link: string; link: string;
} }
export const VerifiedBadge: React.FC<Props> = ({ link }) => ( export const VerifiedBadge: React.FC<Props> = ({ link }) => (
<span className='verified-badge'> <span className='verified-badge'>
<Icon id='check' className='verified-badge__mark' /> <Icon id='check' className='verified-badge__mark' />
<span dangerouslySetInnerHTML={{ __html: link }} /> <span dangerouslySetInnerHTML={stripRelMe(link)} />
</span> </span>
); );