diff --git a/src/routes/+layout.svelte b/src/routes/+layout.svelte index e176097e..24140fc2 100644 --- a/src/routes/+layout.svelte +++ b/src/routes/+layout.svelte @@ -334,6 +334,11 @@ $: { + @@ -711,7 +716,7 @@ $: {
- + @@ -724,6 +729,7 @@ $: { Top Analyst Top Analyst Stocks Top Shorted Stocks + Stock Screener Market Mover Heatmaps diff --git a/src/routes/crypto/[tickerID]/+layout.svelte b/src/routes/crypto/[tickerID]/+layout.svelte index e50e7fd4..ade0bc19 100644 --- a/src/routes/crypto/[tickerID]/+layout.svelte +++ b/src/routes/crypto/[tickerID]/+layout.svelte @@ -318,45 +318,47 @@ onMount(async () => { }); -afterUpdate( async () => { - - if(previousTicker !== $cryptoTicker && typeof socket !== 'undefined') - { - previousTicker = $cryptoTicker; - //socket.send('close') - socket?.close(); - await new Promise((resolve, reject) => { - socket?.addEventListener('close', resolve); - }); - - if(socket?.readyState === WebSocket?.CLOSED) - { - await websocketRealtimeData() - console.log('connecting again') - } - } + afterUpdate(async () => { + if (previousTicker !== $cryptoTicker && typeof socket !== "undefined") { + previousTicker = $cryptoTicker; + //socket.send('close') + if (socket?.readyState === WebSocket?.OPEN) { + socket?.close(); + } + + await new Promise((resolve, reject) => { + socket?.addEventListener("close", resolve); + }); -}); + if (socket?.readyState === WebSocket?.CLOSED) { + await websocketRealtimeData(); + console.log("connecting again"); + } + } + }); -onDestroy(() => { - try { - //socket?.send('close') - socket?.close() - } - catch(e) { - console.log(e) - } - - //$displayCompanyName = ''; - $currentPortfolioPrice = null; - $currentPrice = null; - $priceIncrease = null; - $traded = false - -}); + onDestroy(() => { + try { + //socket?.send('close') + if (socket && typeof socket !== "undefined") { + if (socket.readyState === WebSocket.OPEN) { + socket?.close(); // Close the WebSocket connection + } + socket = null; // Ensure socket is set to null + } + } + catch(e) { + console.log(e) + } + //$displayCompanyName = ''; + $currentPortfolioPrice = null; + $currentPrice = null; + $priceIncrease = null; + //$traded = false + }); diff --git a/src/routes/etf/[tickerID]/+layout.svelte b/src/routes/etf/[tickerID]/+layout.svelte index cdcd0972..ff46e1be 100644 --- a/src/routes/etf/[tickerID]/+layout.svelte +++ b/src/routes/etf/[tickerID]/+layout.svelte @@ -336,7 +336,9 @@ async function fetchPortfolio() { previousTicker = $etfTicker; //socket.send('close') - socket?.close(); + if (socket.readyState === WebSocket.OPEN) { + socket?.close(); // Close the WebSocket connection + } await new Promise((resolve, reject) => { socket.addEventListener('close', resolve); }); @@ -355,7 +357,12 @@ async function fetchPortfolio() onDestroy(() => { try { //socket?.send('close') - socket?.close() + if (socket && typeof socket !== "undefined") { + if (socket.readyState === WebSocket.OPEN) { + socket?.close(); // Close the WebSocket connection + } + socket = null; // Ensure socket is set to null + } } catch(e) { console.log(e) diff --git a/src/routes/industry/+layout.svelte b/src/routes/industry/+layout.svelte index 38b09b01..e7b475c2 100644 --- a/src/routes/industry/+layout.svelte +++ b/src/routes/industry/+layout.svelte @@ -1,175 +1,29 @@ @@ -200,40 +54,46 @@ const combinedNavigation = navigation?.concat(updatedNavigation); - - -
-
- {#each navigation as item} - {#if item?.link === $page.url.pathname} - - {item?.title} - - {/if} - {/each} +
+ Stock Sectors & Industries
+ +
+
+ {#each tabs as item, i} + + {/each} +
+
diff --git a/src/routes/industry/+page.svelte b/src/routes/industry/+page.svelte index b8add3f2..c4aabbd5 100644 --- a/src/routes/industry/+page.svelte +++ b/src/routes/industry/+page.svelte @@ -1,13 +1,72 @@