nexshop-web-contents
Version:
Nexshop Web Contents Project
312 lines (311 loc) • 10.8 kB
HTML
<html lang="en">
<head>
<title>Code coverage report for nexshop-web-contents/src/component/preview/playlist/playlist-preview-list-view.js</title>
<meta charset="utf-8" />
<link rel="stylesheet" href="../../../../../prettify.css" />
<link rel="stylesheet" href="../../../../../base.css" />
<meta name="viewport" content="width=device-width, initial-scale=1">
<style type='text/css'>
.coverage-summary .sorter {
background-image: url(../../../../../sort-arrow-sprite.png);
}
</style>
</head>
<body>
<div class='wrapper'>
<div class='pad1'>
<h1>
<a href="../../../../../index.html">All files</a> / <a href="index.html">nexshop-web-contents/src/component/preview/playlist</a> playlist-preview-list-view.js
</h1>
<div class='clearfix'>
<div class='fl pad1y space-right2'>
<span class="strong">100% </span>
<span class="quiet">Statements</span>
<span class='fraction'>27/27</span>
</div>
<div class='fl pad1y space-right2'>
<span class="strong">71.43% </span>
<span class="quiet">Branches</span>
<span class='fraction'>10/14</span>
</div>
<div class='fl pad1y space-right2'>
<span class="strong">100% </span>
<span class="quiet">Functions</span>
<span class='fraction'>6/6</span>
</div>
<div class='fl pad1y space-right2'>
<span class="strong">100% </span>
<span class="quiet">Lines</span>
<span class='fraction'>27/27</span>
</div>
</div>
</div>
<div class='status-line high'></div>
<pre><table class="coverage">
<tr><td class="line-count quiet">1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83</td><td class="line-coverage quiet"><span class="cline-any cline-yes">1x</span>
<span class="cline-any cline-yes">1x</span>
<span class="cline-any cline-yes">1x</span>
<span class="cline-any cline-yes">1x</span>
<span class="cline-any cline-yes">1x</span>
<span class="cline-any cline-yes">1x</span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-yes">1x</span>
<span class="cline-any cline-yes">16x</span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-yes">16x</span>
<span class="cline-any cline-yes">3x</span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-yes">3x</span>
<span class="cline-any cline-yes">1x</span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-yes">3x</span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-yes">3x</span>
<span class="cline-any cline-yes">3x</span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-yes">16x</span>
<span class="cline-any cline-yes">3x</span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-yes">3x</span>
<span class="cline-any cline-yes">2x</span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-yes">3x</span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-yes">3x</span>
<span class="cline-any cline-yes">3x</span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-yes">16x</span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-yes">20x</span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-yes">32x</span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-yes">1x</span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-yes">1x</span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">import React from 'react';
import PropTypes from 'prop-types';
import {EFFECT_TYPES} from "../../../constants/effect-types";
import {isElementInParent} from "../../../helpers/dom-helper";
import {formatSeconds} from "../../../helpers/time-helper";
import {getTextByValue} from "../../../helpers/string-helper";
const PlaylistPreviewListView = (props) => {
const {contentItems, onSelectPreviewItem, selectedPreviewItemIndex} = props;
let previewListRef;
const onClickPrevious = () => {
let index = selectedPreviewItemIndex - 1;
if (index < 0) {
index = contentItems.length -1;
}
onSelectPreviewItem(index);
<span class="missing-if-branch" title="else path not taken" >E</span>if (!isElementInParent(previewListRef.childNodes[index], previewListRef)) {
previewListRef.childNodes[index].scrollIntoView();
}
};
const onClickNext = () => {
let index = selectedPreviewItemIndex + 1;
if (index > contentItems.length -1) {
index = 0;
}
onSelectPreviewItem(index);
<span class="missing-if-branch" title="else path not taken" >E</span>if (!isElementInParent(previewListRef.childNodes[index], previewListRef)) {
previewListRef.childNodes[index].scrollIntoView(false);
}
};
return (
<div className="preview-list">
<div className="preview-list-body" ref={div => previewListRef = div}>
{
contentItems.map(({contents, durationSeconds, transitionEffect}, index) => (
<div key={index}
className="preview-item"
onClick={() => {onSelectPreviewItem(index)}}
>
<div className="preview-item__thumbnail" style={{backgroundImage: `url(${contents.thumbnailUrls.thumbnail ? contents.thumbnailUrls.thumbnail : <span class="branch-1 cbranch-no" title="branch not covered" >''})</span>`}}/>
<div className={`preview-item-text${selectedPreviewItemIndex === index ? '--selected': ''}`}>
<div style={{display: 'flex'}}>
<div className="preview-item-name__prefix">{contents.name.substring(0,contents.name.length-8)}</div>
<div className="preview-item-name__suffix">{contents.name.substring(contents.name.length-8 ,contents.name.length)}</div>
</div>
<div style={{display: 'flex', marginTop: '3px'}}>
<div className="preview-item__duration">{formatSeconds(durationSeconds, durationSeconds >= 3600 ? <span class="branch-0 cbranch-no" title="branch not covered" >'hh:mm:ss' : 'mm:ss')}</div></span>
<div className="preview-item__effect">{getTextByValue(transitionEffect,EFFECT_TYPES)}</div>
</div>
</div>
</div>
))
}
</div>
<div className="preview-list-bottom">
<div className="preview-list-bottom__button" onClick={onClickPrevious}>
<div className="preview-list-bottom__previous" />
</div>
<div className="preview-list-bottom__button" onClick={onClickNext}>
<div className="preview-list-bottom__next"/>
</div>
</div>
</div>
);
};
PlaylistPreviewListView.prototype = {
contentItems: PropTypes.array.isRequired,
selectedPreviewItemIndex: PropTypes.number.isRequired,
onSelectPreviewItem: PropTypes.func.isRequired,
};
export default PlaylistPreviewListView;</pre></td></tr>
</table></pre>
<div class='push'></div><!-- for sticky footer -->
</div><!-- /wrapper -->
<div class='footer quiet pad2 space-top1 center small'>
Code coverage
generated by <a href="https://istanbul.js.org/" target="_blank">istanbul</a> at Mon Dec 18 2017 16:41:44 GMT+0900 (KST)
</div>
</div>
<script src="../../../../../prettify.js"></script>
<script>
window.onload = function () {
if (typeof prettyPrint === 'function') {
prettyPrint();
}
};
</script>
<script src="../../../../../sorter.js"></script>
</body>
</html>