diff --git a/src/views/trade-tokenized/components/order-book.vue b/src/views/trade-tokenized/components/order-book.vue index 492e087..bdf2dd1 100644 --- a/src/views/trade-tokenized/components/order-book.vue +++ b/src/views/trade-tokenized/components/order-book.vue @@ -73,15 +73,21 @@ function unsubscribe() { tradeWebSocket.subscribe((message) => { if ("bids" in message.data) { if (!data.value?.bids.length) { - data.value!.bids = []; + data.value.bids = []; } - data.value!.bids.splice(0, data.value!.bids.length, ...message.data.bids); + const bids = message.data.bids.sort((a, b) => Number(b.price) - Number(a.price)); + + data.value.bids.unshift(...bids); + data.value.bids = data.value.bids.slice(0, 5); } if ("asks" in message.data) { if (!data.value?.asks.length) { - data.value!.asks = []; + data.value.asks = []; } - data.value!.asks.splice(0, data.value!.asks.length, ...message.data.asks); + const asks = message.data.asks.sort((a, b) => Number(b.price) - Number(a.price)); + + data.value.asks.unshift(...asks); + data.value.asks = data.value.asks.slice(0, 5); } }); diff --git a/src/views/trade/components/order-book.vue b/src/views/trade/components/order-book.vue index 47c2a8d..0c867a8 100644 --- a/src/views/trade/components/order-book.vue +++ b/src/views/trade/components/order-book.vue @@ -59,15 +59,21 @@ function unsubscribe() { tradeWebSocket.subscribe((message) => { if ("bids" in message.data) { if (!data.value?.bids.length) { - data.value!.bids = []; + data.value.bids = []; } - data.value!.bids.splice(0, data.value!.bids.length, ...message.data.bids); + const bids = message.data.bids.sort((a, b) => Number(b.price) - Number(a.price)); + + data.value.bids.unshift(...bids); + data.value.bids = data.value.bids.slice(0, 5); } if ("asks" in message.data) { if (!data.value?.asks.length) { - data.value!.asks = []; + data.value.asks = []; } - data.value!.asks.splice(0, data.value!.asks.length, ...message.data.asks); + const asks = message.data.asks.sort((a, b) => Number(b.price) - Number(a.price)); + + data.value.asks.unshift(...asks); + data.value.asks = data.value.asks.slice(0, 5); } }); @@ -144,6 +150,7 @@ onUnmounted(() => { font-size: 12px; user-select: none; padding-left: 8px; + width: 100%; } .asks-section, @@ -178,7 +185,7 @@ onUnmounted(() => { position: relative; width: 100%; display: grid; - grid-template-columns: 1fr 1fr 1fr; + grid-template-columns: 1fr 1fr; padding: 0 12px; z-index: 1; }