/** * React Component for the text on a stock ticker's header. This text displays * general information on the stock such as the name, symbol, price, and * 4S Market Data */ import * as React from "react"; import { Stock } from "../Stock"; import { TickerHeaderFormatData } from "../data/TickerHeaderFormatData"; import { IPlayer } from "../../PersonObjects/IPlayer"; import { numeralWrapper } from "../../ui/numeralFormat"; type IProps = { p: IPlayer; stock: Stock; } export function StockTickerHeaderText(props: IProps): React.ReactElement { const stock = props.stock; const stockPriceFormat = numeralWrapper.formatMoney(stock.price); let hdrText = `${stock.name}${" ".repeat(1 + TickerHeaderFormatData.longestName - stock.name.length + (TickerHeaderFormatData.longestSymbol - stock.symbol.length))}${stock.symbol} -${" ".repeat(10 - stockPriceFormat.length)}${stockPriceFormat}`; if (props.p.has4SData) { hdrText += ` - Volatility: ${numeralWrapper.format(stock.mv, '0,0.00')}% - Price Forecast: `; let plusOrMinus = stock.b; // True for "+", false for "-" if (stock.otlkMag < 0) { plusOrMinus = !plusOrMinus } hdrText += (plusOrMinus ? "+" : "-").repeat(Math.floor(Math.abs(stock.otlkMag) / 10) + 1); // Debugging: // hdrText += ` - ${stock.getAbsoluteForecast()} / ${stock.otlkMagForecast}`; } let styleMarkup = { color: "#66ff33" }; if (stock.lastPrice === stock.price) { styleMarkup.color = "white"; } else if (stock.lastPrice > stock.price) { styleMarkup.color = "red"; } return
{hdrText}
; }