From 1c0d823f6f875ba01473b262adfb993befc130d2 Mon Sep 17 00:00:00 2001 From: Sagiv Ofek Date: Fri, 16 Mar 2018 09:46:40 -0700 Subject: [PATCH] add news to main page --- package.json | 2 +- public/electron-starter.js | 2 +- src/Main.js | 43 ++++++++++++++++++++++++++++++++++ src/helpers/rh/core/Account.js | 4 ++++ src/styles/app.css | 23 ++++++++++++++++++ src/styles/app.css.map | 2 +- src/styles/stylus/app.styl | 17 ++++++++++++++ 7 files changed, 90 insertions(+), 3 deletions(-) diff --git a/package.json b/package.json index 3e81742..7c7d7d4 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "StockStalk", - "version": "1.0.4", + "version": "1.0.5", "author": "FOO BAR", "private": true, "description": "Your stocks on your desktop", diff --git a/public/electron-starter.js b/public/electron-starter.js index 6c0d2bb..21901a8 100644 --- a/public/electron-starter.js +++ b/public/electron-starter.js @@ -21,7 +21,7 @@ let mainWindow; function createWindow () { // Create the browser window. mainWindow = new BrowserWindow({ - minWidth: 610, + minWidth: 650, height: 413, nodeIntegration: false, contextIsolation: true, diff --git a/src/Main.js b/src/Main.js index 10e95be..c8cefc8 100644 --- a/src/Main.js +++ b/src/Main.js @@ -2,15 +2,58 @@ import React, { Component } from 'react'; import { observer, inject } from 'mobx-react'; import Table from './Table'; import Watchilist from './Watchilist'; +import RH from './helpers/rh/index'; +import { link } from './helpers/general'; @inject('store') @observer export default class Main extends Component { + constructor(props) { + super(props); + + this.state = { news: [], newsIndex: 0 }; + + this.loadData = this.loadData.bind(this); + this.renderNews = this.renderNews.bind(this); + + setTimeout(this.loadData, 1000) + } + + async loadData() { + const rh = new RH(); + const account = new rh.Account(); + const news = await account.news; + if (news.results) { + console.log(news.results); + this.setState({ ...this.state, allNews: news.results }); + } + } + + renderNews() { + const { allNews, newsIndex } = this.state; + if (!allNews || !allNews.length) return null; + const n = allNews[newsIndex]; + const url = n.action.includes('web?url=') ? decodeURIComponent(n.action.split('web?url=')[1]) : null; + + return ( +
+ {url &&

link(url)}>{n.title}

} + {!url &&

{n.title}

} + {(newsIndex > 0) && this.setState({...this.state, newsIndex: this.state.newsIndex - 1})}>{'<'}} + {(newsIndex < allNews.length - 1) && this.setState({...this.state, newsIndex: this.state.newsIndex + 1})}>{'>'}} +
+ {n.message} +
+
+ ) + } + render() { const { userStore } = this.props.store; if (!userStore.positions || !userStore.portfolio.todayChange) return
Loading...
; return (
+ {this.renderNews()} {userStore.positions.length && } {userStore.watchlist.length &&

Watchlist

diff --git a/src/helpers/rh/core/Account.js b/src/helpers/rh/core/Account.js index c5b40f8..a6ba808 100644 --- a/src/helpers/rh/core/Account.js +++ b/src/helpers/rh/core/Account.js @@ -14,6 +14,10 @@ export default class Account { return Request.getPersonal('positions'); } + get news() { + return Request.getPersonal('midlands/notifications/stack'); + } + get accounts() { return Request.getPersonal('accounts'); } diff --git a/src/styles/app.css b/src/styles/app.css index f7fe587..b69da7b 100644 --- a/src/styles/app.css +++ b/src/styles/app.css @@ -4,6 +4,7 @@ html { } html body { font-family: Montserrat, sans-serif; + min-width: 650px; } html body input[type=submit], html body button { @@ -90,6 +91,28 @@ html body h1 { padding: 0; height: 0; } +#main-container #news { + text-align: center; + font-size: 12px; + padding: 10px; + background-color: #21ce99; + color: #fff; +} +#main-container #news #news-text { + margin: 0 20px; +} +#main-container #news a { + color: #fff; +} +#main-container #news .link { + position: relative; +} +#main-container #news #prevNews { + float: left; +} +#main-container #news #nextNews { + float: right; +} #properties-table { margin: 0; color: #040d14; diff --git a/src/styles/app.css.map b/src/styles/app.css.map index 1e80031..6234d08 100644 --- a/src/styles/app.css.map +++ b/src/styles/app.css.map @@ -1 +1 @@ -{"version":3,"sources":["stylus/app.styl"],"names":[],"mappings":"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","file":"app.css"} \ No newline at end of file +{"version":3,"sources":["stylus/app.styl"],"names":[],"mappings":"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","file":"app.css"} \ No newline at end of file diff --git a/src/styles/stylus/app.styl b/src/styles/stylus/app.styl index 8c14341..4af04e3 100644 --- a/src/styles/stylus/app.styl +++ b/src/styles/stylus/app.styl @@ -8,6 +8,7 @@ html font-size 14px body font-family Montserrat,sans-serif + min-width 650px input[type=submit],button cursor pointer background-color c2 @@ -77,6 +78,22 @@ html margin 0 padding 0 height 0 + #news + text-align center + font-size 12px + padding 10px + background-color c2 + color c0 + #news-text + margin 0 20px + a + color c0 + .link + position relative + #prevNews + float left + #nextNews + float right #properties-table margin 0