@financial-times/cp-content-pipeline-ui 6.11.3-beta.0 → 6.11.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -13,7 +13,7 @@ exports[`Clip Snapshot component rendered on server full-grid default render 1`]
13
13
  data-cp-clip-no-caption=\\"false\\"
14
14
  data-cp-clip-closed-caption=\\"false\\"
15
15
  data-cp-clip-loop=\\"false\\"
16
- class=\\"cp-clip\\"
16
+ class=\\"cp-clip cp-clip--loading\\"
17
17
  data-trackable=\\"next-article-cp-clip\\"
18
18
  data-o-component=\\"cp-clip\\"
19
19
  data-cp-clip-id=\\"localhost:8080/fakevideo.mpg\\"
@@ -26,7 +26,10 @@ exports[`Clip Snapshot component rendered on server full-grid default render 1`]
26
26
  data-o-expander-collapsed-toggle-text=\\"<span class='o-expander__visually-hidden'>Show video info</span>\\"
27
27
  data-o-expander-expanded-toggle-text=\\"<span class='o-expander__visually-hidden'>Hide video info</span>\\"
28
28
  >
29
- <button data-trackable=\\"toggle-open-close\\" class=\\"o-expander__toggle\\">
29
+ <button
30
+ data-trackable=\\"toggle-open-close\\"
31
+ class=\\"o-expander__toggle o-expander__toggle-empty\\"
32
+ >
30
33
  <span class=\\"o-expander__visually-hidden\\">Show video info</span>
31
34
  </button>
32
35
  <div class=\\"o-expander__content video-info\\"></div>
@@ -74,7 +77,7 @@ exports[`Clip Snapshot component rendered on server full-grid render with attrib
74
77
  data-cp-clip-no-caption=\\"false\\"
75
78
  data-cp-clip-closed-caption=\\"false\\"
76
79
  data-cp-clip-loop=\\"true\\"
77
- class=\\"cp-clip\\"
80
+ class=\\"cp-clip cp-clip--loading\\"
78
81
  data-trackable=\\"next-article-cp-clip\\"
79
82
  data-o-component=\\"cp-clip\\"
80
83
  data-cp-clip-id=\\"localhost:8080/fakevideo.mpg\\"
@@ -87,7 +90,10 @@ exports[`Clip Snapshot component rendered on server full-grid render with attrib
87
90
  data-o-expander-collapsed-toggle-text=\\"&lt;span class=&#x27;o-expander__visually-hidden&#x27;&gt;Show video info&lt;/span&gt;\\"
88
91
  data-o-expander-expanded-toggle-text=\\"&lt;span class=&#x27;o-expander__visually-hidden&#x27;&gt;Hide video info&lt;/span&gt;\\"
89
92
  >
90
- <button data-trackable=\\"toggle-open-close\\" class=\\"o-expander__toggle\\">
93
+ <button
94
+ data-trackable=\\"toggle-open-close\\"
95
+ class=\\"o-expander__toggle o-expander__toggle-empty\\"
96
+ >
91
97
  <span class=\\"o-expander__visually-hidden\\">Show video info</span>
92
98
  </button>
93
99
  <div class=\\"o-expander__content video-info\\"></div>
@@ -160,7 +166,7 @@ exports[`Clip Snapshot component rendered on server in-line render 1`] = `
160
166
  data-cp-clip-no-caption=\\"false\\"
161
167
  data-cp-clip-closed-caption=\\"false\\"
162
168
  data-cp-clip-loop=\\"false\\"
163
- class=\\"cp-clip\\"
169
+ class=\\"cp-clip cp-clip--loading\\"
164
170
  data-trackable=\\"next-article-cp-clip\\"
165
171
  data-o-component=\\"cp-clip\\"
166
172
  data-cp-clip-id=\\"localhost:8080/fakevideo.mpg\\"
@@ -173,7 +179,10 @@ exports[`Clip Snapshot component rendered on server in-line render 1`] = `
173
179
  data-o-expander-collapsed-toggle-text=\\"&lt;span class=&#x27;o-expander__visually-hidden&#x27;&gt;Show video info&lt;/span&gt;\\"
174
180
  data-o-expander-expanded-toggle-text=\\"&lt;span class=&#x27;o-expander__visually-hidden&#x27;&gt;Hide video info&lt;/span&gt;\\"
175
181
  >
176
- <button data-trackable=\\"toggle-open-close\\" class=\\"o-expander__toggle\\">
182
+ <button
183
+ data-trackable=\\"toggle-open-close\\"
184
+ class=\\"o-expander__toggle o-expander__toggle-empty\\"
185
+ >
177
186
  <span class=\\"o-expander__visually-hidden\\">Show video info</span>
178
187
  </button>
179
188
  <div class=\\"o-expander__content video-info\\"></div>
@@ -219,7 +228,7 @@ exports[`Clip Snapshot component rendered on server in-line render with attribut
219
228
  data-cp-clip-no-caption=\\"false\\"
220
229
  data-cp-clip-closed-caption=\\"false\\"
221
230
  data-cp-clip-loop=\\"true\\"
222
- class=\\"cp-clip\\"
231
+ class=\\"cp-clip cp-clip--loading\\"
223
232
  data-trackable=\\"next-article-cp-clip\\"
224
233
  data-o-component=\\"cp-clip\\"
225
234
  data-cp-clip-id=\\"localhost:8080/fakevideo.mpg\\"
@@ -232,7 +241,10 @@ exports[`Clip Snapshot component rendered on server in-line render with attribut
232
241
  data-o-expander-collapsed-toggle-text=\\"&lt;span class=&#x27;o-expander__visually-hidden&#x27;&gt;Show video info&lt;/span&gt;\\"
233
242
  data-o-expander-expanded-toggle-text=\\"&lt;span class=&#x27;o-expander__visually-hidden&#x27;&gt;Hide video info&lt;/span&gt;\\"
234
243
  >
235
- <button data-trackable=\\"toggle-open-close\\" class=\\"o-expander__toggle\\">
244
+ <button
245
+ data-trackable=\\"toggle-open-close\\"
246
+ class=\\"o-expander__toggle o-expander__toggle-empty\\"
247
+ >
236
248
  <span class=\\"o-expander__visually-hidden\\">Show video info</span>
237
249
  </button>
238
250
  <div class=\\"o-expander__content video-info\\"></div>
@@ -309,7 +321,7 @@ exports[`Clip Snapshot component rendered on server mid-grid default render 1`]
309
321
  data-cp-clip-no-caption=\\"false\\"
310
322
  data-cp-clip-closed-caption=\\"false\\"
311
323
  data-cp-clip-loop=\\"false\\"
312
- class=\\"cp-clip\\"
324
+ class=\\"cp-clip cp-clip--loading\\"
313
325
  data-trackable=\\"next-article-cp-clip\\"
314
326
  data-o-component=\\"cp-clip\\"
315
327
  data-cp-clip-id=\\"localhost:8080/fakevideo.mpg\\"
@@ -322,7 +334,10 @@ exports[`Clip Snapshot component rendered on server mid-grid default render 1`]
322
334
  data-o-expander-collapsed-toggle-text=\\"&lt;span class=&#x27;o-expander__visually-hidden&#x27;&gt;Show video info&lt;/span&gt;\\"
323
335
  data-o-expander-expanded-toggle-text=\\"&lt;span class=&#x27;o-expander__visually-hidden&#x27;&gt;Hide video info&lt;/span&gt;\\"
324
336
  >
325
- <button data-trackable=\\"toggle-open-close\\" class=\\"o-expander__toggle\\">
337
+ <button
338
+ data-trackable=\\"toggle-open-close\\"
339
+ class=\\"o-expander__toggle o-expander__toggle-empty\\"
340
+ >
326
341
  <span class=\\"o-expander__visually-hidden\\">Show video info</span>
327
342
  </button>
328
343
  <div class=\\"o-expander__content video-info\\"></div>
@@ -375,7 +390,7 @@ exports[`Clip Snapshot component rendered on server mid-grid render with attribu
375
390
  data-cp-clip-no-caption=\\"false\\"
376
391
  data-cp-clip-closed-caption=\\"false\\"
377
392
  data-cp-clip-loop=\\"true\\"
378
- class=\\"cp-clip\\"
393
+ class=\\"cp-clip cp-clip--loading\\"
379
394
  data-trackable=\\"next-article-cp-clip\\"
380
395
  data-o-component=\\"cp-clip\\"
381
396
  data-cp-clip-id=\\"localhost:8080/fakevideo.mpg\\"
@@ -388,7 +403,10 @@ exports[`Clip Snapshot component rendered on server mid-grid render with attribu
388
403
  data-o-expander-collapsed-toggle-text=\\"&lt;span class=&#x27;o-expander__visually-hidden&#x27;&gt;Show video info&lt;/span&gt;\\"
389
404
  data-o-expander-expanded-toggle-text=\\"&lt;span class=&#x27;o-expander__visually-hidden&#x27;&gt;Hide video info&lt;/span&gt;\\"
390
405
  >
391
- <button data-trackable=\\"toggle-open-close\\" class=\\"o-expander__toggle\\">
406
+ <button
407
+ data-trackable=\\"toggle-open-close\\"
408
+ class=\\"o-expander__toggle o-expander__toggle-empty\\"
409
+ >
392
410
  <span class=\\"o-expander__visually-hidden\\">Show video info</span>
393
411
  </button>
394
412
  <div class=\\"o-expander__content video-info\\"></div>
@@ -468,7 +486,7 @@ exports[`Clip Snapshot component rendered on server renders multiple video sourc
468
486
  data-cp-clip-no-caption=\\"false\\"
469
487
  data-cp-clip-closed-caption=\\"false\\"
470
488
  data-cp-clip-loop=\\"false\\"
471
- class=\\"cp-clip\\"
489
+ class=\\"cp-clip cp-clip--loading\\"
472
490
  data-trackable=\\"next-article-cp-clip\\"
473
491
  data-o-component=\\"cp-clip\\"
474
492
  data-cp-clip-id=\\"84d7e1b0-e8b2-4ffc-a798-306f29dc9d52\\"
@@ -481,7 +499,10 @@ exports[`Clip Snapshot component rendered on server renders multiple video sourc
481
499
  data-o-expander-collapsed-toggle-text=\\"&lt;span class=&#x27;o-expander__visually-hidden&#x27;&gt;Show video info&lt;/span&gt;\\"
482
500
  data-o-expander-expanded-toggle-text=\\"&lt;span class=&#x27;o-expander__visually-hidden&#x27;&gt;Hide video info&lt;/span&gt;\\"
483
501
  >
484
- <button data-trackable=\\"toggle-open-close\\" class=\\"o-expander__toggle\\">
502
+ <button
503
+ data-trackable=\\"toggle-open-close\\"
504
+ class=\\"o-expander__toggle o-expander__toggle-empty\\"
505
+ >
485
506
  <span class=\\"o-expander__visually-hidden\\">Show video info</span>
486
507
  </button>
487
508
  <div class=\\"o-expander__content video-info\\"></div>
@@ -565,7 +586,7 @@ exports[`Clip Snapshot component rendered on server supports new Origami images,
565
586
  data-cp-clip-no-caption=\\"false\\"
566
587
  data-cp-clip-closed-caption=\\"false\\"
567
588
  data-cp-clip-loop=\\"true\\"
568
- class=\\"cp-clip\\"
589
+ class=\\"cp-clip cp-clip--loading\\"
569
590
  data-trackable=\\"next-article-cp-clip\\"
570
591
  data-o-component=\\"cp-clip\\"
571
592
  data-cp-clip-id=\\"localhost:8080/fakevideo.mpg\\"
@@ -578,7 +599,10 @@ exports[`Clip Snapshot component rendered on server supports new Origami images,
578
599
  data-o-expander-collapsed-toggle-text=\\"&lt;span class=&#x27;o-expander__visually-hidden&#x27;&gt;Show video info&lt;/span&gt;\\"
579
600
  data-o-expander-expanded-toggle-text=\\"&lt;span class=&#x27;o-expander__visually-hidden&#x27;&gt;Hide video info&lt;/span&gt;\\"
580
601
  >
581
- <button data-trackable=\\"toggle-open-close\\" class=\\"o-expander__toggle\\">
602
+ <button
603
+ data-trackable=\\"toggle-open-close\\"
604
+ class=\\"o-expander__toggle o-expander__toggle-empty\\"
605
+ >
582
606
  <span class=\\"o-expander__visually-hidden\\">Show video info</span>
583
607
  </button>
584
608
  <div class=\\"o-expander__content video-info\\"></div>
@@ -7,7 +7,6 @@ import classnames from 'classnames'
7
7
  import Headshot from '../Headshot'
8
8
  import Byline from '../Byline'
9
9
  import { StructuredTreeFragment } from '@financial-times/cp-content-pipeline-client'
10
- import parse from 'html-react-parser'
11
10
 
12
11
  /* eslint-disable @typescript-eslint/no-explicit-any */
13
12
  //TODO: CI-1975 remove "any" types
@@ -37,6 +36,23 @@ const TruncatedPost = ({ id, children }: { id: string; children: any }) => {
37
36
  )
38
37
  }
39
38
 
39
+ const truncatedSelector = () => {
40
+ const prefix = '.x-live-blog-post__body >'
41
+ const selectors = [
42
+ 'p',
43
+ 'blockquote',
44
+ 'ul',
45
+ '.o-table-container',
46
+ '.n-content-recommended--single-story',
47
+ "[data-layout-name='card']",
48
+ '.n-content-big-number',
49
+ 'hr',
50
+ '.n-content-tweet',
51
+ "[data-layout-name='timeline']",
52
+ ]
53
+ return selectors.map((item) => `${prefix} ${item}`).join(',')
54
+ }
55
+
40
56
  export type LiveBlogPostProps = {
41
57
  id: string
42
58
  postId: string // Remove once wordpress is no longer in use
@@ -92,10 +108,31 @@ const LiveBlogPost = ({
92
108
  </TruncatedPost>
93
109
  )
94
110
  } else {
95
- const elements = bodyHTML || content ? parse(bodyHTML || content) : []
96
-
97
111
  // Content comes from next-es or wordpress
98
- postBody = <TruncatedPost id={id}>{elements}</TruncatedPost>
112
+ postBody = (
113
+ <div
114
+ className="x-live-blog-post__body n-content-body article--body"
115
+ dangerouslySetInnerHTML={{ __html: bodyHTML || content }}
116
+ />
117
+ )
118
+ // add pinned post old version when comming from next-es or wordpress
119
+ postBody = isPinned ? (
120
+ <div
121
+ data-o-component="o-expander"
122
+ className="o-expander"
123
+ data-o-expander-shrink-to="1"
124
+ data-o-expander-item-selector={truncatedSelector()}
125
+ data-o-expander-collapsed-toggle-text={'Expand post'}
126
+ data-o-expander-expanded-toggle-text={'Collapse post'}
127
+ >
128
+ <div className="o-expander__content">{postBody}</div>
129
+ <a className="o-expander__toggle o-expander__text--custom">
130
+ <span className="o-expander__visually-hidden">&nbsp;</span>
131
+ </a>
132
+ </div>
133
+ ) : (
134
+ postBody
135
+ )
99
136
  }
100
137
 
101
138
  const author = authors?.[0] ?? null