Skip to content

Commit

Permalink
#29 Reorganize market open orders code:
Browse files Browse the repository at this point in the history
 - add "empty" checks
 - clean CSS
  • Loading branch information
priecint committed Jul 25, 2016
1 parent bca0443 commit 3305439
Show file tree
Hide file tree
Showing 8 changed files with 110 additions and 89 deletions.
14 changes: 7 additions & 7 deletions build/components.jsx

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion build/styles.css

Large diffs are not rendered by default.

34 changes: 34 additions & 0 deletions src/modules/market/components/market-open-orders.jsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
import React from 'react';

import OpenOrdersSummary from '../../open-orders/components/open-orders-summary';
import OpenOrdersGroup from '../../open-orders/components/open-orders-group';

const OpenOrders = (p) => (
<div className="market-open-orders">
<OpenOrdersSummary
userOpenOrdersSummary={p.userOpenOrdersSummary}
/>

<div className="open-orders-list">
{
p.outcomes.map(outcome => (
<OpenOrdersGroup
key={outcome.id}
id={outcome.id}
name={outcome.name}
userOpenOrders={outcome.userOpenOrders}
cancelOrder={p.cancelOrder}
/>
))
}
</div>
</div>
);

OpenOrders.propTypes = {
userOpenOrdersSummary: React.PropTypes.object,
outcomes: React.PropTypes.array,
cancelOrder: React.PropTypes.func.isRequired
};

export default OpenOrders;
24 changes: 12 additions & 12 deletions src/modules/market/components/market-page.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ import Basics from '../../market/components/basics';
import TradePanel from '../../../modules/trade/components/trade-panel';
import ReportPanel from '../../reports/components/report-panel';
import MarketPositions from '../../market/components/market-positions';
import OpenOrders from '../../market/components/open-orders';
import MarketOpenOrders from '../../market/components/market-open-orders';
import Chart from '../../market/components/chart';

export default class MarketPage extends Component {
Expand All @@ -17,9 +17,7 @@ export default class MarketPage extends Component {
market: PropTypes.object,
priceTimeSeries: PropTypes.array,
numPendingReports: PropTypes.number,
updateSelectedUserOpenOrdersGroup: PropTypes.func.isRequired,
cancelOrder: PropTypes.func.isRequired,
selectedUserOpenOrdersGroupID: PropTypes.string
cancelOrder: PropTypes.func.isRequired
};
constructor(props) {
super(props);
Expand Down Expand Up @@ -79,14 +77,16 @@ export default class MarketPage extends Component {
);
}

nodes.push(
<OpenOrders
key="open-orders"
outcomes={p.market.outcomes}
userOpenOrdersSummary={p.market.userOpenOrdersSummary}
cancelOrder={p.cancelOrder}
/>
);
if (p.market.userOpenOrdersSummary != null && p.market.userOpenOrdersSummary.openOrdersCount > 0) {
nodes.push(
<MarketOpenOrders
key="market-open-orders"
userOpenOrdersSummary={p.market.userOpenOrdersSummary}
outcomes={p.market.outcomes}
cancelOrder={p.cancelOrder}
/>
);
}

// chart
nodes.push(
Expand Down
40 changes: 0 additions & 40 deletions src/modules/market/components/open-orders.jsx

This file was deleted.

55 changes: 30 additions & 25 deletions src/modules/open-orders/components/open-orders-group.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -6,32 +6,37 @@ import React from 'react';

import OpenOrder from '../../open-orders/components/open-order';

const OpenOrdersGroup = (p) => (
<div>
<table>
<tbody>
<tr>
<th>Outcome</th>
<th>Type</th>
<th>Shares</th>
<th>Price</th>
<th>&nbsp;</th>
</tr>
{
p.userOpenOrders.map(openOrder => (
<OpenOrder
key={openOrder.id}
outcomeName={p.name}
{...openOrder}
cancelOrder={p.cancelOrder}
/>
const OpenOrdersGroup = (p) => {
if (p.userOpenOrders == null || p.userOpenOrders.length === 0) {
return null;
}
return (
<div>
<table>
<tbody>
<tr>
<th>Outcome</th>
<th>Type</th>
<th>Shares</th>
<th>Price</th>
<th>&nbsp;</th>
</tr>
{
p.userOpenOrders.map(openOrder => (
<OpenOrder
key={openOrder.id}
outcomeName={p.name}
{...openOrder}
cancelOrder={p.cancelOrder}
/>
)
)
)
}
</tbody>
</table>
</div>
);
}
</tbody>
</table>
</div>
);
};

OpenOrdersGroup.propTypes = {
userOpenOrders: React.PropTypes.arrayOf(React.PropTypes.object).isRequired,
Expand Down
22 changes: 22 additions & 0 deletions src/modules/open-orders/components/open-orders-summary.jsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
/*
* Author: priecint
*/

import React from 'react';

const OpenOrdersSummary = (p) => {
const hasOpenOrders = p.userOpenOrdersSummary != null && p.userOpenOrdersSummary.openOrdersCount > 0;
return (
<div className="market-section-header">
{
hasOpenOrders ? `${p.userOpenOrdersSummary.openOrdersCount} Open Orders` : 'No Open Orders'
}
</div>
);
};

OpenOrdersSummary.propTypes = {
userOpenOrdersSummary: React.PropTypes.object
};

export default OpenOrdersSummary;
8 changes: 4 additions & 4 deletions src/modules/open-orders/less/open-order.less
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
.market {
.open-orders {
padding: 4vmin 6vmin;
}
.open-orders-list {
padding: 4vmin 6vmin;
}

.market-open-orders {
.open-order {
height: 27px; // same height as when action is visible
}
Expand Down

0 comments on commit 3305439

Please sign in to comment.