Fix serve summary when order partially finished. Trade summary as accordion

This commit is contained in:
Reckless_Satoshi 2022-07-17 11:11:10 -07:00
parent fe62a30a5c
commit 638d3b1d6c
No known key found for this signature in database
GPG Key ID: 9C4585B561315571
3 changed files with 159 additions and 138 deletions

View File

@ -1574,7 +1574,7 @@ class Logics:
Summarizes a finished order. Returns a dict with Summarizes a finished order. Returns a dict with
amounts, fees, costs, etc, for buyer and seller. amounts, fees, costs, etc, for buyer and seller.
''' '''
if order.status != Order.Status.SUC: if not order.status in [Order.Status.EXP, Order.Status.SUC, Order.Status.PAY, Order.Status.FAI]:
return False, {'bad_summary':'Order has not finished yet'} return False, {'bad_summary':'Order has not finished yet'}
context = {} context = {}

View File

@ -24,6 +24,8 @@ import BoltIcon from '@mui/icons-material/Bolt';
import LinkIcon from '@mui/icons-material/Link'; import LinkIcon from '@mui/icons-material/Link';
import AccountBalanceWalletIcon from '@mui/icons-material/AccountBalanceWallet'; import AccountBalanceWalletIcon from '@mui/icons-material/AccountBalanceWallet';
import FavoriteIcon from '@mui/icons-material/Favorite'; import FavoriteIcon from '@mui/icons-material/Favorite';
import RocketLaunchIcon from '@mui/icons-material/RocketLaunch';
import RefreshIcon from '@mui/icons-material/Refresh';
import { NewTabIcon } from "./Icons"; import { NewTabIcon } from "./Icons";
import { getCookie } from "../utils/cookies"; import { getCookie } from "../utils/cookies";
@ -1275,9 +1277,9 @@ handleRatingRobosatsChange=(e)=>{
</Grid> </Grid>
: null} : null}
<Grid container> <Grid item container spacing={3}>
<Grid item xs={show_renew? 6: 12} align="center"> <Grid item xs={show_renew? 6: 12} align="center">
<Button color='primary' onClick={() => {this.props.push('/')}}>{t("Start Again")}</Button> <Button color='primary' variant="outlined" onClick={() => {this.props.push('/')}}><RocketLaunchIcon/>{t("Start Again")}</Button>
</Grid> </Grid>
{show_renew ? {show_renew ?
@ -1285,7 +1287,7 @@ handleRatingRobosatsChange=(e)=>{
{this.state.renewLoading ? {this.state.renewLoading ?
<CircularProgress/> <CircularProgress/>
: :
<Button color='primary' onClick={this.handleRenewOrderButtonPressed}>{t("Renew Order")}</Button> <Button color='primary' variant="outlined" onClick={this.handleRenewOrderButtonPressed}><RefreshIcon/>{t("Renew Order")}</Button>
} }
</Grid> </Grid>
: null} : null}
@ -1299,6 +1301,7 @@ handleRatingRobosatsChange=(e)=>{
makerSummary={this.props.data.maker_summary} makerSummary={this.props.data.maker_summary}
takerSummary={this.props.data.taker_summary} takerSummary={this.props.data.taker_summary}
platformSummary={this.props.data.platform_summary} platformSummary={this.props.data.platform_summary}
orderId={this.props.data.orderId}
/> />
</Grid> </Grid>

View File

@ -6,19 +6,24 @@ import {
ToggleButton, ToggleButton,
ToggleButtonGroup, ToggleButtonGroup,
List, List,
Chip,
ListItem, ListItem,
ListItemText, ListItemText,
ListItemIcon, ListItemIcon,
Grid, Grid,
Divider, Tooltip,
IconButton,
Accordion,
AccordionSummary,
AccordionDetails,
Typography, Typography,
} from "@mui/material" } from "@mui/material"
import { pn } from "../utils/prettyNumbers"; import { pn } from "../utils/prettyNumbers";
import { saveAsJson } from "../utils/saveFile";
// Icons // Icons
import FlagWithProps from "./FlagWithProps"; import FlagWithProps from "./FlagWithProps";
import PercentIcon from '@mui/icons-material/Percent'; import ExpandMoreIcon from '@mui/icons-material/ExpandMore';
import DownloadIcon from '@mui/icons-material/Download';
import AccountBalanceIcon from '@mui/icons-material/AccountBalance'; import AccountBalanceIcon from '@mui/icons-material/AccountBalance';
import RouteIcon from '@mui/icons-material/Route'; import RouteIcon from '@mui/icons-material/Route';
import AccountBoxIcon from '@mui/icons-material/AccountBox'; import AccountBoxIcon from '@mui/icons-material/AccountBox';
@ -39,7 +44,7 @@ type Props = {
makerSummary: Record<string, Item>; makerSummary: Record<string, Item>;
takerSummary: Record<string, Item>; takerSummary: Record<string, Item>;
platformSummary: Record<string, Item>; platformSummary: Record<string, Item>;
bondPercent: number; orderId: number;
} }
const TradeSummary = ({ const TradeSummary = ({
@ -50,7 +55,7 @@ const TradeSummary = ({
makerSummary, makerSummary,
takerSummary, takerSummary,
platformSummary, platformSummary,
bondPercent, orderId,
}: Props): JSX.Element => { }: Props): JSX.Element => {
const { t } = useTranslation(); const { t } = useTranslation();
const [buttonValue, setButtonValue] = useState<number>(isMaker ? 0 : 2); const [buttonValue, setButtonValue] = useState<number>(isMaker ? 0 : 2);
@ -58,11 +63,12 @@ const TradeSummary = ({
return ( return (
<Grid item xs={12} align="center"> <Grid item xs={12} align="center">
<List> <Accordion defaultExpanded={true} elevation={0} sx={{width:322, position:'relative', right:8}}>
<Divider> <AccordionSummary expandIcon={<ExpandMoreIcon sx={{width:28}} color="primary"/>}>
<Chip label={t("Trade Summary")}/> <Typography sx={{flexGrow:1}} color="text.secondary">{t("Trade Summary")}</Typography>
</Divider> </AccordionSummary>
</List> <AccordionDetails>
<div style={{position:'relative',left:14, display:'flex',alignItems:'center', justifyContent:'center', flexWrap:'wrap'}}>
<ToggleButtonGroup <ToggleButtonGroup
size="small" size="small"
value={buttonValue} value={buttonValue}
@ -85,13 +91,23 @@ const TradeSummary = ({
&nbsp; &nbsp;
<Avatar <Avatar
className="smallAvatar" className="smallAvatar"
sx={{height:24,width:24}} sx={{height:28,width:28}}
alt={takerNick} alt={takerNick}
src={window.location.origin +'/static/assets/avatars/' + takerNick + '.png'} src={window.location.origin +'/static/assets/avatars/' + takerNick + '.png'}
/> />
</ToggleButton> </ToggleButton>
</ToggleButtonGroup> </ToggleButtonGroup>
<Tooltip enterTouchDelay={250} title={t("Save trade summary as file")}>
<span>
<IconButton
color="primary"
onClick={()=> saveAsJson(`order${orderId}-summary.json`, {'order_id':orderId,'currency':currencyCode,'maker':makerSummary,'taker':takerSummary,'platform':platformSummary})}
>
<DownloadIcon sx={{width:26, height:26}}/>
</IconButton>
</span>
</Tooltip>
</div>
{/* Maker/Taker Summary */} {/* Maker/Taker Summary */}
<div style={{display: [0,2].includes(buttonValue) ? '':'none'}}> <div style={{display: [0,2].includes(buttonValue) ? '':'none'}}>
<List dense={true}> <List dense={true}>
@ -189,6 +205,8 @@ const TradeSummary = ({
</ListItem> </ListItem>
</List> </List>
</div> </div>
</AccordionDetails>
</Accordion>
</Grid> </Grid>
); );
}; };