diff --git a/components/teks/__tests__/komante.test.jsx b/components/teks/__tests__/komante.test.jsx index bcc2088..df48e12 100644 --- a/components/teks/__tests__/komante.test.jsx +++ b/components/teks/__tests__/komante.test.jsx @@ -34,4 +34,18 @@ describe('Komante', () => { expect(screen.getByRole('link', {name: 'Quelqu\'un'})).toHaveAttribute('href', 'https://mastodon.social/@quelqun') expect(screen.getByRole('link', {name: /voir sur mastodon/i})).toHaveAttribute('href', 'https://bokante.o-k-i.net/@quelqun/1') }) + + it('met en valeur les mentions @ dans le contenu', () => { + render() + + const mansyon = screen.getByText('@pawol_nu') + expect(mansyon).toBeInTheDocument() + expect(screen.getByText('@cybermawonaj@bokante.o-k-i.net')).toBeInTheDocument() + expect(screen.getByText(/oh oh ye ye/)).toBeInTheDocument() + }) }) diff --git a/components/teks/komante.jsx b/components/teks/komante.jsx index 2b17c38..4c45e8f 100644 --- a/components/teks/komante.jsx +++ b/components/teks/komante.jsx @@ -24,7 +24,21 @@ function formatDat(commentaire) { return null } - return format(new Date(commentaire.datePublication), 'P', {locale: fr}) + return format(new Date(commentaire.datePublication), 'Pp', {locale: fr}) +} + +const MENTION_REGEX = /(?:@[\w.-]+){1,2}/g + +function metanValèMansyon(contenu) { + const mansyon = contenu.match(MENTION_REGEX) || [] + return contenu.split(MENTION_REGEX).flatMap((moso, index) => ( + mansyon[index] ? [ + moso, + + {mansyon[index]} + + ] : [moso] + )) } export default function Komante({commentaires}) { @@ -56,7 +70,7 @@ export default function Komante({commentaires}) { > - + {estFedere && commentaire.auteurProfilUrl ? ( @@ -74,12 +88,12 @@ export default function Komante({commentaires}) { )} {dat && ( - + {dat} )} - {commentaire.contenu} + {metanValèMansyon(commentaire.contenu)} {estFedere && commentaire.remoteUrl && ( Voir sur Mastodon