(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 ); }; })();