/** * 订单价值 */ import React, { useMemo, forwardRef, ForwardRefRenderFunction, useImperativeHandle } from "react"; import { getOrderValue } from "@utils/contractRules"; import { useOrderValuePrice } from "./useOrderValuePrice"; import { OrderTypeEnum, OrderSideEnum } from "@shared/types"; interface Props { unit?: string; scale: number; buyQuantity: any; sellQuantity: any; inputPrice: any; triggerPrice: any; buyOne?: string | undefined; sellOne?: string | undefined; orderType: OrderTypeEnum; } export interface OrderValueProps { getOrderValue: (side: OrderSideEnum) => string; } const OrderValueComp: ForwardRefRenderFunction = (props, ref) => { const { scale, buyQuantity, sellQuantity } = props; const { buy, sell } = useOrderValuePrice( props.inputPrice, props.triggerPrice, props.buyOne, props.sellOne, props.orderType ); const orderValue = useMemo(() => { const buyValue = getOrderValue({ price: buy, quantity: buyQuantity, scale: scale }); const sellValue = getOrderValue({ price: sell, quantity: sellQuantity, scale: scale }); return { buyValue, sellValue }; }, [scale, sell, buy, buyQuantity, sellQuantity]); useImperativeHandle(ref, () => ({ getOrderValue: (side: OrderSideEnum) => { // 下单点击确认时候,获取单方向的orderValue return side === OrderSideEnum.Sell ? orderValue.sellValue : orderValue.buyValue; } })); // console.log(buyQuantity, sellQuantity); return (
订单价值
{orderValue.buyValue} {props.unit}
订单价值
{orderValue.sellValue} {props.unit}
); }; export const OrderValue = forwardRef(OrderValueComp);