From 6ffa32716bc3b5efbe1aca21d5367e3e32abe82c Mon Sep 17 00:00:00 2001 From: MuslemRahimi Date: Thu, 10 Oct 2024 22:11:14 +0200 Subject: [PATCH] ui changes for watchlist --- src/lib/components/WatchListCard.svelte | 4 +- src/routes/api/update-watchlist/+server.ts | 1 + src/routes/etf/[tickerID]/+layout.server.ts | 4 +- src/routes/stock-screener/+page.server.ts | 1 - .../stocks/[tickerID]/+layout.server.ts | 2 - src/routes/watchlist/stocks/+page.svelte | 185 ++++++++++++++++-- 6 files changed, 177 insertions(+), 20 deletions(-) diff --git a/src/lib/components/WatchListCard.svelte b/src/lib/components/WatchListCard.svelte index 9a32e298..05e42062 100644 --- a/src/lib/components/WatchListCard.svelte +++ b/src/lib/components/WatchListCard.svelte @@ -6,8 +6,6 @@ export let watchListId; export let indicatorList; - $: sortedList = indicatorList; - let isLoaded = false; @@ -92,7 +90,7 @@ $: { Symbol Company - {#each sortedList as item} + {#each indicatorList as item} {item} {/each} diff --git a/src/routes/api/update-watchlist/+server.ts b/src/routes/api/update-watchlist/+server.ts index 24f125c8..d55b1246 100644 --- a/src/routes/api/update-watchlist/+server.ts +++ b/src/routes/api/update-watchlist/+server.ts @@ -31,6 +31,7 @@ export const POST = (async ({ request, locals }) => { serialize({ user: user?.id, ticker: JSON.stringify([ticker]), + ruleOfList: JSON.stringify([]), title: "Favorites", }) ); diff --git a/src/routes/etf/[tickerID]/+layout.server.ts b/src/routes/etf/[tickerID]/+layout.server.ts index 54f38d2c..156cdfcd 100644 --- a/src/routes/etf/[tickerID]/+layout.server.ts +++ b/src/routes/etf/[tickerID]/+layout.server.ts @@ -64,7 +64,7 @@ export const load = async ({ params, locals, setHeaders }) => { const promises = [ ...endpoints.map((endpoint) => - fetchData(apiURL, apiKey, endpoint, tickerID), + fetchData(apiURL, apiKey, endpoint, tickerID) ), fetchWatchlist(pb, user?.id), //fetchFromFastify(fastifyURL, '/get-portfolio-data', user?.id) @@ -82,8 +82,6 @@ export const load = async ({ params, locals, setHeaders }) => { getUserWatchlist, ] = await Promise.all(promises); - setHeaders({ "cache-control": "public, max-age=300" }); - return { getETFProfile, getSimilarETFs, diff --git a/src/routes/stock-screener/+page.server.ts b/src/routes/stock-screener/+page.server.ts index 99c18f21..7019edb3 100644 --- a/src/routes/stock-screener/+page.server.ts +++ b/src/routes/stock-screener/+page.server.ts @@ -52,7 +52,6 @@ export const load = async ({ locals }) => { const strategy = strategyList?.at(0); let getRuleOfList = strategy?.rules?.map((item) => item?.name) || []; - // Ensure all required EMA parameters are included ensureAllEmaParameters(getRuleOfList); diff --git a/src/routes/stocks/[tickerID]/+layout.server.ts b/src/routes/stocks/[tickerID]/+layout.server.ts index b384db63..61518968 100644 --- a/src/routes/stocks/[tickerID]/+layout.server.ts +++ b/src/routes/stocks/[tickerID]/+layout.server.ts @@ -103,8 +103,6 @@ export const load = async ({ params, locals, cookies, setHeaders }) => { getCommunitySentiment, ] = await Promise.all(promises); - setHeaders({ "cache-control": "public, max-age=300" }); - return { getSimilarStock, getStockDeck, diff --git a/src/routes/watchlist/stocks/+page.svelte b/src/routes/watchlist/stocks/+page.svelte index 30857366..9ad86ea6 100644 --- a/src/routes/watchlist/stocks/+page.svelte +++ b/src/routes/watchlist/stocks/+page.svelte @@ -1,12 +1,11 @@ @@ -313,7 +349,7 @@ async function handleChangeValue(value) {
Delete
- + @@ -379,10 +416,136 @@ async function handleChangeValue(value) { {:else} - + + {#if watchList?.length !== 0} + + + +
+ +
+ + + + + + + {#each indicatorList as item} + {#if isChecked(item)} + + {/if} + {/each} + + + + {#each watchList as item} + + + + + + + + + + + + + + + + + + + + + + + + + + + {/each} + +
SymbolCompany{item}
+ + {item?.symbol} + + + {item?.name?.length > charNumber ? item?.name?.slice(0,charNumber) + "..." : item?.name} + + {item?.eps !== null ? item?.eps?.toFixed(2) : '-'} + + {item?.pe !== null ? item?.pe?.toFixed(2) : '-'} + + {abbreviateNumber(item?.volume)} + + {abbreviateNumber(item?.marketCap)} + + {item.price?.toFixed(2)} + + {#if item?.changesPercentage >=0} + +{item?.changesPercentage?.toFixed(2)}% + {:else} + {item?.changesPercentage?.toFixed(2)}% + {/if} +
+
+ + + +
+ +

Latest News

+ + + + + +
+ + {:else} +
+ + Empty Watchlist + + + + + + Fill it up with your favorite stocks and get realtime data and the latest news in one place! + +
+ {/if} + {/if} @@ -446,7 +609,7 @@ async function handleChangeValue(value) { - +