(function () {
'use strict';
const e = React.createElement;
function timeAge(time) {
const now = new Date().getTime() / 1000;
const minutes = (now - time) / 60;
if (minutes < 60) {
return Math.round(minutes) + ' minutes ago';
}return Math.round(minutes / 60) + ' hours ago';
}function getHostUrl(url) {
return (url + '')
.replace('https://', '')
.replace('http://', '')
.split('/')[0];
}function HeaderBar() {
return e(
'tr',
{style: {backgroundColor: '#222',
},},e(
'table',
{style: {padding: 4,
},width: '100%',
cellSpacing: 0,
cellPadding: 0,
},e(
'tbody',
null,
e(
'tr',
null,
e(
'td',
{style: {width: 18,
paddingRight: 4,
},},e(
'a',
{href: '#',
},e('img', {
src: 'logo.png',
width: 16,
height: 16,
style: {border: '1px solid #00d8ff',
},}))),e(
'td',
{style: {lineHeight: '12pt',
},height: 10,
},e(
'span',
{className: 'pagetop',
},e('b', {className: 'hnname'}, 'React HN Benchmark'),
e('a', {href: '#'}, 'new'),
' | ',
e('a', {href: '#'}, 'comments'),
' | ',
e('a', {href: '#'}, 'show'),
' | ',
e('a', {href: '#'}, 'ask'),
' | ',
e('a', {href: '#'}, 'jobs'),
' | ',
e('a', {href: '#'}, 'submit')
))))));}function Story({story, rank}) {
return [
e(
'tr',
{className: 'athing',
},e(
'td',
{style: {verticalAlign: 'top',
textAlign: 'right',
},className: 'title',
},e(
'span',
{className: 'rank',
},`${rank}.`
)),e(
'td',
{className: 'votelinks',
style: {verticalAlign: 'top',
},},e(
'center',
null,
e(
'a',
{href: '#',
},e('div', {
className: 'votearrow',
title: 'upvote',
})))),e(
'td',
{className: 'title',
},e(
'a',
{href: '#',
className: 'storylink',
},story.title
),story.url
? e(
'span',
{className: 'sitebit comhead',
},' (',
e(
'a',
{href: '#',
},getHostUrl(story.url)
),')'
): null
)),e(
'tr',
null,
e('td', {
colSpan: 2,
}),e(
'td',
{className: 'subtext',
},e(
'span',
{className: 'score',
},`${story.score} points`
),' by ',
e(
'a',
{href: '#',
className: 'hnuser',
},story.by
),' ',e(
'span',
{className: 'age',
},e(
'a',
{href: '#',
},timeAge(story.time)
)),' | ',
e(
'a',
{href: '#',
},'hide'
),' | ',
e(
'a',
{href: '#',
},`${story.descendants || 0} comments`
))),e('tr', {
style: {height: 5,
},className: 'spacer',
}),];}function StoryList({stories}) {
return e(
'tr',
null,
e(
'td',
null,
e(
'table',
{cellPadding: 0,
cellSpacing: 0,
classList: 'itemlist',
},e(
'tbody',
null,
stories.map((story, i) =>
e(Story, {story, rank: ++i, key: story.id})
)))));}function App({stories}) {
return e(
'center',
null,
e(
'table',
{id: 'hnmain',
border: 0,
cellPadding: 0,
cellSpacing: 0,
width: '85%',
style: {'background-color': '#f6f6ef',
},},e(
'tbody',
null,
e(HeaderBar, null),
e('tr', {height: 10}),
e(StoryList, {
stories,
}))));}const app = document.getElementById('app');
window.render = function render() {
ReactDOM.render(
React.createElement(App, {
stories: window.stories,}),app
);};})();