diff --git a/packages/pl-api/lib/entities/account.ts b/packages/pl-api/lib/entities/account.ts index 76627a613..9022910cd 100644 --- a/packages/pl-api/lib/entities/account.ts +++ b/packages/pl-api/lib/entities/account.ts @@ -29,7 +29,7 @@ const guessFqn = (account: Pick): string => { const filterBadges = (tags?: string[]) => tags?.filter(tag => tag.startsWith('badge:')).map(tag => v.parse(roleSchema, { id: tag, name: tag.replace(/^badge:/, '') })); -const MKLJCZK_ACCOUNTS = ['https://pl.fediverse.pl/users/mkljczk', 'https://gts.mkljczk.pl/users/mkljczk']; +const MKLJCZK_ACCOUNTS = ['https://pl.fediverse.pl/users/mkljczk', 'https://gts.mkljczk.pl/users/mkljczk', 'https://gts.mkljczk.pl/@mkljczk']; const preprocessAccount = v.transform((account: any) => { if (!account?.acct) return null; diff --git a/packages/pl-fe/src/components/account.tsx b/packages/pl-fe/src/components/account.tsx index 9adb4ff82..94b85bd4b 100644 --- a/packages/pl-fe/src/components/account.tsx +++ b/packages/pl-fe/src/components/account.tsx @@ -349,7 +349,7 @@ const Account = ({ size='sm' className='line-clamp-2 inline text-ellipsis [&_br]:hidden [&_p:first-child]:inline [&_p:first-child]:truncate [&_p]:hidden' > - + )} diff --git a/packages/pl-fe/src/components/parsed-content.tsx b/packages/pl-fe/src/components/parsed-content.tsx index 708d69a1b..1a2a0ebdc 100644 --- a/packages/pl-fe/src/components/parsed-content.tsx +++ b/packages/pl-fe/src/components/parsed-content.tsx @@ -30,6 +30,9 @@ interface IParsedContent { hasQuote?: boolean; /** Related custom emojis. */ emojis?: Array; + cleanUrls?: boolean; + greentext?: boolean; + speakAsCat?: boolean; } // Adapted from Mastodon https://github.com/mastodon/mastodon/blob/main/app/javascript/mastodon/components/hashtag_bar.tsx @@ -64,8 +67,8 @@ const uniqueHashtagsWithCaseHandling = (hashtags: string[]) => { }); }; -function parseContent(props: IParsedContent, extractHashtags?: false, cleanUrls?: boolean, greentext?: boolean, speakAsCat?: boolean): ReturnType; -function parseContent(props: IParsedContent, extractHashtags: true, cleanUrls: boolean, greentext: boolean, speakAsCat: boolean): { +function parseContent(props: IParsedContent, extractHashtags?: false): ReturnType; +function parseContent(props: IParsedContent, extractHashtags: true): { hashtags: Array; content: ReturnType; }; @@ -75,7 +78,10 @@ function parseContent({ mentions, hasQuote, emojis, -}: IParsedContent, extractHashtags = false, cleanUrls = false, greentext = false, speakAsCat = false) { + cleanUrls = false, + greentext = false, + speakAsCat = false, +}: IParsedContent, extractHashtags = false) { if (html.length === 0) { return extractHashtags ? { content: null, hashtags: [] } : null; } @@ -208,7 +214,11 @@ function parseContent({ const ParsedContent: React.FC = React.memo((props) => { const settings = useSettings(); - return parseContent(props, false, settings.urlPrivacy.clearLinksInContent, false, false); + if (props.cleanUrls === undefined) { + props = { ...props, cleanUrls: settings.urlPrivacy.clearLinksInContent }; + } + + return parseContent(props, false); }, (prevProps, nextProps) => prevProps.html === nextProps.html); export { ParsedContent, parseContent }; diff --git a/packages/pl-fe/src/components/status-content.tsx b/packages/pl-fe/src/components/status-content.tsx index 51e114275..5ad32d5a4 100644 --- a/packages/pl-fe/src/components/status-content.tsx +++ b/packages/pl-fe/src/components/status-content.tsx @@ -146,7 +146,10 @@ const StatusContent: React.FC = React.memo(({ mentions: status.mentions, hasQuote: !!status.quote_id, emojis: status.emojis, - }, true, urlPrivacy.clearLinksInContent, greentext, status.account.speak_as_cat), [content]); + cleanUrls: urlPrivacy.clearLinksInContent, + greentext, + speakAsCat: status.account.speak_as_cat, + }, true), [content]); useEffect(() => { setLineClamp(!spoilerNode.current || spoilerNode.current.clientHeight >= 96); diff --git a/packages/pl-fe/src/features/admin/announcements.tsx b/packages/pl-fe/src/features/admin/announcements.tsx index 91fa614d2..3e59a5185 100644 --- a/packages/pl-fe/src/features/admin/announcements.tsx +++ b/packages/pl-fe/src/features/admin/announcements.tsx @@ -48,7 +48,7 @@ const Announcement: React.FC = ({ announcement }) => { return (
- + n diff --git a/packages/pl-fe/src/features/directory/components/account-card.tsx b/packages/pl-fe/src/features/directory/components/account-card.tsx index 2676a9a8b..f06868295 100644 --- a/packages/pl-fe/src/features/directory/components/account-card.tsx +++ b/packages/pl-fe/src/features/directory/components/account-card.tsx @@ -76,7 +76,7 @@ const AccountCard: React.FC = ({ id }) => { align='left' className='line-clamp-2 inline text-ellipsis [&_br]:hidden [&_p:first-child]:inline [&_p:first-child]:truncate [&_p]:hidden' > - + )} diff --git a/packages/pl-fe/src/features/ui/components/modals/compare-history-modal.tsx b/packages/pl-fe/src/features/ui/components/modals/compare-history-modal.tsx index 557e35a9f..9861afe70 100644 --- a/packages/pl-fe/src/features/ui/components/modals/compare-history-modal.tsx +++ b/packages/pl-fe/src/features/ui/components/modals/compare-history-modal.tsx @@ -35,7 +35,7 @@ const CompareHistoryModal: React.FC = body = (
{versions?.map((version) => { - const content = ; + const content = ; const poll = typeof version.poll !== 'string' && version.poll; @@ -66,7 +66,7 @@ const CompareHistoryModal: React.FC = /> - + ))} diff --git a/packages/pl-fe/src/features/ui/components/panels/profile-info-panel.tsx b/packages/pl-fe/src/features/ui/components/panels/profile-info-panel.tsx index 9d00858e6..7bfa1ce82 100644 --- a/packages/pl-fe/src/features/ui/components/panels/profile-info-panel.tsx +++ b/packages/pl-fe/src/features/ui/components/panels/profile-info-panel.tsx @@ -168,7 +168,7 @@ const ProfileInfoPanel: React.FC = ({ account, username }) => {!!account.note && ( - + )}