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}
+
+
+
+ | {title} |
+ {#each tableDataList as date, index}
+
+ {#if index !== 0}{date}{/if} |
+ {/each}
+
+ | High |
+ {#each highDataList as item, index}
+
+ {#if index !== 0}
+ {#if userTier !== "Pro" && index >= highDataList?.length - 2}
+ Pro
+ {:else}
+ {abbreviateNumber(item?.val)}
+ {/if}
+ {/if}
+ |
+ {/each}
+
| Avg |
+ {#each avgDataList as item, index}
+
+ {#if index !== 0}
+ {#if userTier !== "Pro" && index >= avgDataList?.length - 2}
+ Pro
+ {:else}
+ {abbreviateNumber(item?.val)}
+ {/if}
+ {/if}
+ |
+ {/each}
+
| Low |
+ {#each lowDataList as item, index}
+
+ {#if index !== 0}
+ {#if userTier !== "Pro" && index >= lowDataList?.length - 2}
+ Pro
+ {:else}
+ {abbreviateNumber(item?.val)}
+ {/if}
+ {/if}
+ |
+ {/each}
+
+
+
+
+
+
+
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");