@ -1,9 +1,8 @@
import {
import {
Box ,
Button ,
Button ,
Container ,
Container ,
Flex ,
Divider ,
Grid ,
GridItem ,
HStack ,
HStack ,
Tab ,
Tab ,
TabList ,
TabList ,
@ -74,67 +73,70 @@ export default function App() {
! runningStates . includes ( value . state ) && ! closedStates . includes ( value . state ) && ! openStates . includes ( value . state )
! runningStates . includes ( value . state ) && ! closedStates . includes ( value . state ) && ! openStates . includes ( value . state )
) ;
) ;
const labelWidth = 110 ;
return (
return (
< Container maxWidth = "120ch" marginTop = "1rem" >
< Container maxWidth = "120ch" marginTop = "1rem" >
< Grid templateColumns = "repeat(6, 1fr)" gap = { 4 } >
< HStack spacing = { 5 } >
< GridItem colStart = { 1 } colSpan = { 2 } >
< VStack >
< Wallet walletInfo = { walletInfo } / >
< Wallet walletInfo = { walletInfo } / >
< VStack spacing = { 5 } shadow = { "md" } padding = { 5 } align = { "stretch" } >
< VStack spacing = { 5 } shadow = { "md" } padding = { 5 } width = "100%" align = { "stretch" } >
< HStack >
< HStack >
< Text align = { "left" } > Current Price : < / Text >
< Text width = { labelWidth } align = { "left" } > Current Price : < / Text >
< Text > { 49000 } < / Text >
< Text > { 49000 } < / Text >
< / HStack >
< / HStack >
< HStack >
< HStack >
< Text > Min Quantity : < / Text >
< Text width = { labelWidth } > Min Quantity : < / Text >
< CurrencyInputField
< CurrencyInputField
onChange = { ( valueString : string ) = > setMinQuantity ( parse ( valueString ) ) }
onChange = { ( valueString : string ) = > setMinQuantity ( parse ( valueString ) ) }
value = { format ( minQuantity ) }
value = { format ( minQuantity ) }
/ >
/ >
< / HStack >
< / HStack >
< HStack >
< HStack >
< Text > Min Quantity : < / Text >
< Text width = { labelWidth } > Min Quantity : < / Text >
< CurrencyInputField
< CurrencyInputField
onChange = { ( valueString : string ) = > setMaxQuantity ( parse ( valueString ) ) }
onChange = { ( valueString : string ) = > setMaxQuantity ( parse ( valueString ) ) }
value = { format ( maxQuantity ) }
value = { format ( maxQuantity ) }
/ >
/ >
< / HStack >
< / HStack >
< HStack >
< HStack >
< Text > Order Price : < / Text >
< Text width = { labelWidth } > Order Price : < / Text >
< CurrencyInputField
onChange = { ( valueString : string ) = > setOrderPrice ( parse ( valueString ) ) }
value = { format ( orderPrice ) }
/ >
< / HStack >
< HStack >
< Text width = { labelWidth } > Leverage : < / Text >
< HStack spacing = { 5 } >
< Button disabled = { true } > x1 < / Button >
< Button disabled = { true } > x2 < / Button >
< Button colorScheme = "blue" variant = "solid" > x { 5 } < / Button >
< / HStack >
< / HStack >
< / HStack >
< CurrencyInputField
< Divider / >
onChange = { ( valueString : string ) = > setOrderPrice ( parse ( valueString ) ) }
< Button
value = { format ( orderPrice ) }
disabled = { isCreatingNewCfdOrder }
/ >
variant = { "solid" }
< Text > Leverage : < / Text >
colorScheme = { "blue" }
< Flex justifyContent = { "space-between" } >
onClick = { ( ) = > {
< Button disabled = { true } > x1 < / Button >
let payload : CfdSellOrderPayload = {
< Button disabled = { true } > x2 < / Button >
price : Number.parseFloat ( orderPrice ) ,
< Button colorScheme = "blue" variant = "solid" > x { 5 } < / Button >
min_quantity : Number.parseFloat ( minQuantity ) ,
< / Flex >
max_quantity : Number.parseFloat ( maxQuantity ) ,
< VStack >
} ;
< Button
makeNewCfdSellOrder ( payload ) ;
disabled = { isCreatingNewCfdOrder }
} }
variant = { "solid" }
>
colorScheme = { "blue" }
{ order ? "Update Sell Order" : "Create Sell Order" }
onClick = { ( ) = > {
< / Button >
let payload : CfdSellOrderPayload = {
price : Number.parseFloat ( orderPrice ) ,
min_quantity : Number.parseFloat ( minQuantity ) ,
max_quantity : Number.parseFloat ( maxQuantity ) ,
} ;
makeNewCfdSellOrder ( payload ) ;
} }
>
{ order ? "Update Sell Order" : "Create Sell Order" }
< / Button >
< / VStack >
< / VStack >
< / VStack >
< / GridItem >
< / VStack >
< GridItem colStart = { 3 } colSpan = { 2 } >
{ order && < OrderTile order = { order } / > }
{ order && < OrderTile order = { order } / > }
< Box width = "40%" / >
< / GridItem >
< / HStack >
< / Grid >
< Tabs >
< Tabs marginTop = { 5 } >
< TabList >
< TabList >
< Tab > Running [ { running . length } ] < / Tab >
< Tab > Running [ { running . length } ] < / Tab >
< Tab > Open [ { open . length } ] < / Tab >
< Tab > Open [ { open . length } ] < / Tab >