frontend/src/routes/stocks/[tickerID]/dark-pool/+page.svelte
MuslemRahimi b0e9d23cf3 ui fix
2024-12-29 23:40:54 +01:00

125 lines
4.8 KiB
Svelte

<script lang="ts">
import {
numberOfUnreadNotification,
displayCompanyName,
stockTicker,
} from "$lib/store";
import HistoricalVolume from "$lib/components/DarkPool/HistoricalVolume.svelte";
import PriceLevel from "$lib/components/DarkPool/PriceLevel.svelte";
import InfoModal from "$lib/components/InfoModal.svelte";
import Infobox from "$lib/components/Infobox.svelte";
import HottestTrades from "$lib/components/DarkPool/HottestTrades.svelte";
import UpgradeToPro from "$lib/components/UpgradeToPro.svelte";
import { onMount } from "svelte";
export let data;
let historicalDarkPool = data?.getHistoricalDarkPool || [];
let priceLevel = data?.getPriceLevel?.priceLevel || [];
let hottestTrades = data?.getPriceLevel?.hottestTrades || [];
let isLoaded = false;
onMount(() => {
isLoaded = true;
});
</script>
<svelte:head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width" />
<title>
{$numberOfUnreadNotification > 0 ? `(${$numberOfUnreadNotification})` : ""}
{$displayCompanyName} ({$stockTicker}) Dark Pool Trades · Stocknear
</title>
<meta
name="description"
content={`Get the latest dark pool trade insights for ${$displayCompanyName} (${$stockTicker}), including stock price quote, financials, news, statistics, and charts.`}
/>
<!-- Other meta tags -->
<meta
property="og:title"
content={`${$displayCompanyName} (${$stockTicker}) Dark Pool Trades · Stocknear`}
/>
<meta
property="og:description"
content={`Get the latest dark pool trade information for ${$displayCompanyName} (${$stockTicker})`}
/>
<meta property="og:type" content="website" />
<!-- Twitter specific meta tags -->
<meta name="twitter:card" content="summary_large_image" />
<meta
name="twitter:title"
content={`${$displayCompanyName} (${$stockTicker}) Dark Pool Trades · Stocknear`}
/>
<meta
name="twitter:description"
content={`Get the latest dark pool trade insights for ${$displayCompanyName} (${$stockTicker}), including stock price quote, financials, statistics, and more.`}
/>
</svelte:head>
<section class="w-full bg-default overflow-hidden text-white h-full">
<div class="w-full flex h-full overflow-hidden">
<div
class="w-full relative flex justify-center items-center overflow-hidden"
>
<div class="sm:p-7 w-full m-auto mt-2 sm:mt-0">
<div class="w-full mb-2">
<div class="flex flex-row items-center mb-4 sm:mb-0">
<label
for="darkPoolInfo"
class="mr-1 cursor-pointer flex flex-row items-center text-white text-xl sm:text-2xl font-bold"
>
Dark Pool Data
</label>
<InfoModal
title={"Dark Pool Data"}
content={"Dark pool data refers to information on trading activities that occur in private, non-public financial exchanges known as dark pools. These venues are used by hedge funds and major institutional traders to buy and sell large blocks of securities without exposing their orders to the public, minimizing market impact and price fluctuations. Currently, nearly 50% of all trades are executed in these dark pools, highlighting their significant role in the trading landscape."}
id={"darkPoolInfo"}
/>
</div>
{#if priceLevel?.length === 0 && hottestTrades?.length === 0 && historicalDarkPool?.length === 0}
<Infobox
text={`No Dark Pool activity are detected for ${$displayCompanyName}`}
/>
{:else}
<Infobox
text="Track the Dark Pool Trades of major whales to monitor hidden trading activity and trends."
/>
{/if}
</div>
{#if isLoaded}
{#if priceLevel?.length > 0}
<PriceLevel
rawData={priceLevel}
metrics={data?.getPriceLevel?.metrics}
/>
{/if}
{#if data?.user?.tier === "Pro"}
{#if hottestTrades?.length > 0}
<HottestTrades rawData={hottestTrades} />
{/if}
{#if historicalDarkPool?.length > 0}
<HistoricalVolume rawData={historicalDarkPool} />
{/if}
{:else}
<UpgradeToPro {data} />
{/if}
{:else}
<div class="flex justify-center items-center h-80">
<div class="relative">
<label
class="bg-secondary rounded-md h-14 w-14 flex justify-center items-center absolute top-1/2 left-1/2 transform -translate-x-1/2 -translate-y-1/2"
>
<span class="loading loading-spinner loading-md text-gray-400"
></span>
</label>
</div>
</div>
{/if}
</div>
</div>
</div>
</section>