~cytrogen/masto-fe

4d59dfb1c619ebec44243acc7f21dc3edb9feb3b — Claire 2 years ago e0b54ed
Fix some remote posts getting truncated (#27307)

M app/javascript/mastodon/components/__tests__/hashtag_bar.tsx => app/javascript/mastodon/components/__tests__/hashtag_bar.tsx +15 -0
@@ 45,6 45,21 @@ describe('computeHashtagBarForStatus', () => {
    );
  });

  it('does not truncate the contents when the last child is a text node', () => {
    const status = createStatus(
      'this is a #<a class="zrl" href="https://example.com/search?tag=test">test</a>. Some more text',
      ['test'],
    );

    const { hashtagsInBar, statusContentProps } =
      computeHashtagBarForStatus(status);

    expect(hashtagsInBar).toEqual([]);
    expect(statusContentProps.statusContent).toMatchInlineSnapshot(
      `"this is a #<a class="zrl" href="https://example.com/search?tag=test">test</a>. Some more text"`,
    );
  });

  it('extract tags from the last line', () => {
    const status = createStatus(
      '<p>Simple text</p><p><a href="test">#hashtag</a></p>',

M app/javascript/mastodon/components/hashtag_bar.tsx => app/javascript/mastodon/components/hashtag_bar.tsx +1 -1
@@ 109,7 109,7 @@ export function computeHashtagBarForStatus(status: StatusLike): {

  const lastChild = template.content.lastChild;

  if (!lastChild) return defaultResult;
  if (!lastChild || lastChild.nodeType === Node.TEXT_NODE) return defaultResult;

  template.content.removeChild(lastChild);
  const contentWithoutLastLine = template;