diff --git a/src/lib/components/AnalystEstimate.svelte b/src/lib/components/AnalystEstimate.svelte index accf3a5b..378cada2 100644 --- a/src/lib/components/AnalystEstimate.svelte +++ b/src/lib/components/AnalystEstimate.svelte @@ -1,21 +1,10 @@ + +
+

{title} Forecast

+
+
+ {#if options !== null} + + {/if} +
+
+ + + {#each tableDataList as date, index} + + {/each} + + + {#each highDataList as item, index} + + {/each} + + {#each avgDataList as item, index} + + {/each} + + {#each lowDataList as item, index} + + {/each} + +
{title} + {#if index !== 0}{date}{/if}
High + {#if index !== 0} + {#if userTier !== "Pro" && index >= highDataList?.length - 2} + Pro + {:else} + {abbreviateNumber(item?.val)} + {/if} + {/if} +
Avg + {#if index !== 0} + {#if userTier !== "Pro" && index >= avgDataList?.length - 2} + Pro + {:else} + {abbreviateNumber(item?.val)} + {/if} + {/if} +
Low + {#if index !== 0} + {#if userTier !== "Pro" && index >= lowDataList?.length - 2} + Pro + {:else} + {abbreviateNumber(item?.val)} + {/if} + {/if} +
+
+
+
+ + diff --git a/src/routes/etf/[tickerID]/+layout.svelte b/src/routes/etf/[tickerID]/+layout.svelte index 50fda981..06e8b60f 100644 --- a/src/routes/etf/[tickerID]/+layout.svelte +++ b/src/routes/etf/[tickerID]/+layout.svelte @@ -135,30 +135,29 @@ function sendMessage(message) { if (socket && socket.readyState === WebSocket.OPEN) { - socket.send(message); + socket.send(JSON?.stringify(message)); } else { console.error("WebSocket is not open. Unable to send message."); } } async function websocketRealtimeData() { - previousTicker = $etfTicker; try { - socket = new WebSocket(data?.wsURL + "/realtime-data"); + socket = new WebSocket(data?.wsURL + "/price-data"); socket.addEventListener("open", () => { - //console.log('WebSocket connection opened'); - - // Send the initial value of etfTicker - sendMessage($etfTicker?.toLowerCase()); + console.log("WebSocket connection opened"); + // Send only current watchlist symbols + const tickerList = [$etfTicker] || []; + sendMessage(tickerList); }); socket.addEventListener("message", (event) => { const data = event.data; - //console.log('Received message:', data); + console.log("Received message:", data); try { const parsedData = JSON.parse(data); - const { type, lp, time, bp, ap } = parsedData || {}; + const { type, lp, time, bp, ap, avgPrice } = parsedData?.at(0) || {}; if (type === "T") { $realtimePrice = typeof lp !== "undefined" ? lp : null; @@ -170,7 +169,8 @@ } else if (type === "Q") { $wsBidPrice = typeof bp !== "undefined" ? bp : null; $wsAskPrice = typeof ap !== "undefined" ? ap : null; - $realtimePrice = $wsAskPrice; + $realtimePrice = + typeof avgPrice !== "undefined" ? avgPrice?.toFixed(2) : null; } // Update price increase state @@ -187,11 +187,9 @@ socket.addEventListener("close", (event) => { console.log("WebSocket connection closed:", event.reason); - // Handle disconnection, you might want to attempt to reconnect here }); } catch (error) { console.error("WebSocket connection error:", error); - // Handle connection errors here } } diff --git a/src/routes/stocks/[tickerID]/+layout.svelte b/src/routes/stocks/[tickerID]/+layout.svelte index 0f74b9fe..5d9a794e 100644 --- a/src/routes/stocks/[tickerID]/+layout.svelte +++ b/src/routes/stocks/[tickerID]/+layout.svelte @@ -144,30 +144,29 @@ function sendMessage(message) { if (socket && socket.readyState === WebSocket.OPEN) { - socket.send(message); + socket.send(JSON?.stringify(message)); } else { console.error("WebSocket is not open. Unable to send message."); } } async function websocketRealtimeData() { - previousTicker = $stockTicker; try { - socket = new WebSocket(data?.wsURL + "/realtime-data"); + socket = new WebSocket(data?.wsURL + "/price-data"); socket.addEventListener("open", () => { - //console.log('WebSocket connection opened'); - - // Send the initial value of stockTicker - sendMessage($stockTicker?.toLowerCase()); + console.log("WebSocket connection opened"); + // Send only current watchlist symbols + const tickerList = [$stockTicker] || []; + sendMessage(tickerList); }); socket.addEventListener("message", (event) => { const data = event.data; - //console.log('Received message:', data); + console.log("Received message:", data); try { const parsedData = JSON.parse(data); - const { type, lp, time, bp, ap, avgPrice } = parsedData || {}; + const { type, lp, time, bp, ap, avgPrice } = parsedData?.at(0) || {}; if (type === "T") { $realtimePrice = typeof lp !== "undefined" ? lp : null; @@ -179,7 +178,8 @@ } else if (type === "Q") { $wsBidPrice = typeof bp !== "undefined" ? bp : null; $wsAskPrice = typeof ap !== "undefined" ? ap : null; - $realtimePrice = typeof avgPrice !== "undefined" ? avgPrice : null; + $realtimePrice = + typeof avgPrice !== "undefined" ? avgPrice?.toFixed(2) : null; } // Update price increase state @@ -196,11 +196,9 @@ socket.addEventListener("close", (event) => { console.log("WebSocket connection closed:", event.reason); - // Handle disconnection, you might want to attempt to reconnect here }); } catch (error) { console.error("WebSocket connection error:", error); - // Handle connection errors here } } diff --git a/src/routes/watchlist/stocks/+page.svelte b/src/routes/watchlist/stocks/+page.svelte index 4521c7d4..61266ec4 100644 --- a/src/routes/watchlist/stocks/+page.svelte +++ b/src/routes/watchlist/stocks/+page.svelte @@ -183,7 +183,7 @@ async function websocketRealtimeData() { try { - socket = new WebSocket(data?.wsURL + "/multiple-realtime-data"); + socket = new WebSocket(data?.wsURL + "/price-data"); socket.addEventListener("open", () => { console.log("WebSocket connection opened");