/** * 计算价格 * 1. 限价单:买 = 输入;卖 = 隐晦买一/输入价格 最大值 * 2. 市价单:买价格:buyPrice = 卖一价格 ; sellPrice = 买一价格 * 3. 条件单市场:买价格:buyPrice = 触发价格; sellPrice = 触发价格; * 4. 条件单现价:输入的委托价格 */ import { OrderTypeEnum } from "@shared/types"; import { toDefaultNumber } from "@utils/FormatNumber"; import { useMemo } from "react"; type numType = string | number; /** * 获取计算价格 * @param inputPrice 输入价格 * @param triggerPrice 触发价格 * @param buyOne 买一价格 * @param sellOne 卖一价格 * @param orderType 订单类型 * @param side 方向 */ export const useOrderValuePrice = ( inputPrice: numType, triggerPrice: numType, buyOne: string | undefined, sellOne: string | undefined, orderType: OrderTypeEnum ) => { return useMemo(() => { const p = toDefaultNumber(inputPrice); const buyOnePrice = toDefaultNumber(buyOne); const sellOnePrice = toDefaultNumber(sellOne); triggerPrice = toDefaultNumber(triggerPrice); let buy = p, sell = p; if (orderType === OrderTypeEnum.TriggerMarket) { buy = triggerPrice; sell = triggerPrice; } else if (orderType === OrderTypeEnum.Market) { buy = sellOnePrice; sell = buyOnePrice; } return { buy, sell }; }, [inputPrice, triggerPrice, sellOne, buyOne, orderType]); };