increase performance

This commit is contained in:
MuslemRahimi 2025-04-07 10:35:44 +02:00
parent 652c08f556
commit 709a796285

View File

@ -1,7 +1,7 @@
<script lang="ts">
import "../app.css";
import "../app.pcss";
import { partytownSnippet } from "@builder.io/partytown/integration";
//import { partytownSnippet } from "@builder.io/partytown/integration";
import { Toaster } from "svelte-sonner";
import "@bprogress/core/css";
import { BProgress } from "@bprogress/core";
@ -55,7 +55,6 @@
export let data;
let hideHeader = false;
BProgress.configure({
showSpinner: false,
@ -129,13 +128,15 @@
onMount(async () => {
if (data?.user?.id) {
await loadWorker();
}
await checkMarketHour();
/*
if ($showCookieConsent === true) {
Cookie = (await import("$lib/components/Cookie.svelte")).default;
}
*/
/*
if (window?.innerWidth <= 768) {
await detectSWUpdate();
@ -229,8 +230,6 @@
isAfterMarketClose.set(isAfterMarketCloseValue);
};
async function handleModeChange() {
const newMode = $mode === "light" ? "dark" : "light";
setMode(newMode);
@ -239,7 +238,7 @@
await fetch("/api/theme-mode", {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({ mode: newMode })
body: JSON.stringify({ mode: newMode }),
});
} catch (error) {
console.error("Failed to update theme:", error);
@ -249,6 +248,7 @@
<svelte:window bind:innerWidth={$screenWidth} />
<!--
<svelte:head>
<script>
// Forward the necessary functions to the web worker layer
@ -273,12 +273,15 @@
</script>
</svelte:head>
-->
<ModeWatcher defaultMode={data?.themeMode} />
<div class="app text-muted dark:text-white {$page?.url?.pathname === '/' ? 'bg-[#000]' : ''}">
<div
class="app text-muted dark:text-white {$page?.url?.pathname === '/'
? 'bg-[#000]'
: ''}"
>
<div class="flex min-h-screen w-full flex-col bg-white dark:bg-default">
<div class="w-full">
<div
@ -295,7 +298,9 @@
size="icon"
class="bg-white dark:bg-default text-white sm:hover:bg-gray-200 dark:sm:hover:bg-[#18181B] border-none"
>
<Menu class="h-5.5 w-5.5 sm:w-7 sm:h-7 text-muted dark:text-white " />
<Menu
class="h-5.5 w-5.5 sm:w-7 sm:h-7 text-muted dark:text-white "
/>
<span class="sr-only">Toggle Menu</span>
</Button>
</Sheet.Trigger>
@ -338,7 +343,9 @@
>
<Home class="h-5.5 w-5.5" />
</div>
<span class="ml-3 text-muted dark:text-white text-[1rem]">Home</span>
<span class="ml-3 text-muted dark:text-white text-[1rem]"
>Home</span
>
</a>
</Button>
</Sheet.Close>
@ -347,18 +354,18 @@
<Accordion.Root class="w-full">
<Accordion.Item value="item-1">
<Accordion.Trigger class="">
<Stock class="h-5.5 w-5.5 mr-3 text-muted dark:text-white ml-1" />
<span class="text-muted dark:text-white ml-1 mr-auto">Stocks</span>
<Stock
class="h-5.5 w-5.5 mr-3 text-muted dark:text-white ml-1"
/>
<span class="text-muted dark:text-white ml-1 mr-auto"
>Stocks</span
>
</Accordion.Trigger>
<Accordion.Content
class="border-l border-gray-500 ml-2 mt-5"
>
<Sheet.Close asChild let:builder>
<div class="flex flex-col items-start">
<Button
builders={[builder]}
type="submit"
@ -428,8 +435,12 @@
<Accordion.Root class="w-full">
<Accordion.Item value="item-1">
<Accordion.Trigger class="">
<Layers class="h-5.5 w-5.5 mr-3 text-muted dark:text-white ml-1" />
<span class="text-muted dark:text-white ml-1 mr-auto">ETFs</span>
<Layers
class="h-5.5 w-5.5 mr-3 text-muted dark:text-white ml-1"
/>
<span class="text-muted dark:text-white ml-1 mr-auto"
>ETFs</span
>
</Accordion.Trigger>
<Accordion.Content
class="border-l border-gray-500 ml-2 mt-5"
@ -469,8 +480,12 @@
<Accordion.Root class="w-full">
<Accordion.Item value="item-1">
<Accordion.Trigger class="">
<Analyst class="h-5.5 w-5.5 mr-3 text-muted dark:text-white ml-1" />
<span class="text-muted dark:text-white ml-1 mr-auto">Analyst</span>
<Analyst
class="h-5.5 w-5.5 mr-3 text-muted dark:text-white ml-1"
/>
<span class="text-muted dark:text-white ml-1 mr-auto"
>Analyst</span
>
</Accordion.Trigger>
<Accordion.Content
class="border-l border-gray-500 ml-2 mt-5"
@ -511,8 +526,6 @@
>Analyst Live Flow</a
>
</Button>
</div>
</Sheet.Close>
</Accordion.Content>
@ -524,8 +537,12 @@
<Accordion.Root class="w-full">
<Accordion.Item value="item-1">
<Accordion.Trigger class="">
<Calendar class="h-5.5 w-5.5 mr-3 text-muted dark:text-white ml-1" />
<span class="text-muted dark:text-white ml-1 mr-auto">Calendar</span>
<Calendar
class="h-5.5 w-5.5 mr-3 text-muted dark:text-white ml-1"
/>
<span class="text-muted dark:text-white ml-1 mr-auto"
>Calendar</span
>
</Accordion.Trigger>
<Accordion.Content
class="border-l border-gray-500 ml-2 mt-5"
@ -612,13 +629,16 @@
</Accordion.Root>
</div>
<div class="flex flex-row items-center w-full">
<Accordion.Root class="w-full">
<Accordion.Item value="item-1">
<Accordion.Trigger class="">
<HandShake class="h-5.5 w-5.5 mr-3 text-muted dark:text-white ml-1" />
<span class="text-muted dark:text-white ml-1 mr-auto">Congress</span>
<HandShake
class="h-5.5 w-5.5 mr-3 text-muted dark:text-white ml-1"
/>
<span class="text-muted dark:text-white ml-1 mr-auto"
>Congress</span
>
</Accordion.Trigger>
<Accordion.Content
class="border-l border-gray-500 ml-2 mt-5"
@ -654,16 +674,16 @@
</Accordion.Root>
</div>
<div class="flex flex-row items-center w-full">
<Accordion.Root class="w-full">
<Accordion.Item value="item-1">
<Accordion.Trigger class="">
<Flow class="h-5.5 w-5.5 mr-3 text-muted dark:text-white ml-1" />
<span class="text-muted dark:text-white ml-1 mr-auto">Flow Feed</span>
<Flow
class="h-5.5 w-5.5 mr-3 text-muted dark:text-white ml-1"
/>
<span class="text-muted dark:text-white ml-1 mr-auto"
>Flow Feed</span
>
</Accordion.Trigger>
<Accordion.Content
class="border-l border-gray-500 ml-2 mt-5"
@ -715,7 +735,9 @@
<Accordion.Root class="w-full">
<Accordion.Item value="item-1">
<Accordion.Trigger class="">
<Tools class="h-5.5 w-5.5 mr-3 text-muted dark:text-white ml-1" />
<Tools
class="h-5.5 w-5.5 mr-3 text-muted dark:text-white ml-1"
/>
<span class="text-muted dark:text-white ml-1 mr-auto"
>Tools</span
>
@ -723,10 +745,8 @@
<Accordion.Content
class="border-l border-gray-500 ml-2 mt-5"
>
<Sheet.Close asChild let:builder>
<div class="flex flex-col items-start">
<Button
builders={[builder]}
type="submit"
@ -738,14 +758,11 @@
>Options Calculator</a
>
</Button>
</div>
</Sheet.Close>
<Sheet.Close asChild let:builder>
<div class="flex flex-col items-start">
<Button
builders={[builder]}
type="submit"
@ -757,8 +774,6 @@
>POTUS Tracker</a
>
</Button>
</div>
</Sheet.Close>
</Accordion.Content>
@ -806,7 +821,9 @@
>
<Newspaper class="h-5.5 w-5.5" />
</div>
<span class="ml-3 text-muted dark:text-white text-[1rem]">News</span>
<span class="ml-3 text-muted dark:text-white text-[1rem]"
>News</span
>
</div>
</a>
</Button>
@ -828,7 +845,8 @@
>
<Gem class="h-5.5 w-5.5" />
</div>
<span class="ml-3 text-muted dark:text-white text-[1rem]"
<span
class="ml-3 text-muted dark:text-white text-[1rem]"
>Pricing Plan</span
>
</div>
@ -846,7 +864,9 @@
src="/pwa-192x192.png"
alt="Stocknear Logo"
/>
<span class="text-muted dark:text-white font-semibold ml-2 text-xl">Stocknear</span>
<span class="text-muted dark:text-white font-semibold ml-2 text-xl"
>Stocknear</span
>
</a>
<div
@ -903,13 +923,14 @@
</DropdownMenu.Item>
</a>
<button on:click={handleModeChange} class="cursor-pointer w-full sm:hover:bg-gray-300 dark:sm:hover:bg-[#18181B] relative flex cursor-default select-none items-center rounded px-2 py-1.5 text-sm outline-hidden data-disabled:pointer-events-none">
<span>{$mode === 'light' ? 'Dark' : 'Light'} Mode</span>
<button
on:click={handleModeChange}
class="cursor-pointer w-full sm:hover:bg-gray-300 dark:sm:hover:bg-[#18181B] relative flex cursor-default select-none items-center rounded px-2 py-1.5 text-sm outline-hidden data-disabled:pointer-events-none"
>
<span>{$mode === "light" ? "Dark" : "Light"} Mode</span>
<span class="sr-only">Toggle theme</span>
</button>
<DropdownMenu.Separator />
<form class="cursor-pointer" action="/logout" method="POST">
<button
@ -920,7 +941,20 @@
<DropdownMenu.Item
class="sm:hover:bg-gray-300 dark:sm:hover:bg-[#18181B] cursor-pointer"
>
<svg class="lucide lucide-log-out mr-2 w-3.5 h-3.5 transform scale-x-[-1]" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4"></path><polyline points="16 17 21 12 16 7"></polyline><line x1="21" x2="9" y1="12" y2="12"></line></svg>
<svg
class="lucide lucide-log-out mr-2 w-3.5 h-3.5 transform scale-x-[-1]"
xmlns="http://www.w3.org/2000/svg"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="2"
stroke-linecap="round"
stroke-linejoin="round"
><path d="M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4"
></path><polyline points="16 17 21 12 16 7"
></polyline><line x1="21" x2="9" y1="12" y2="12"
></line></svg
>
<span class="text-start">Logout</span>
</DropdownMenu.Item>
</button>
@ -934,8 +968,6 @@
>
Login
</a>
{/if}
</div>
</div>
@ -958,7 +990,9 @@
src="/pwa-192x192.png"
alt="Stocknear Logo"
/>
<span class="text-muted dark:text-white text-xl">Stocknear</span>
<span class="text-muted dark:text-white text-xl"
>Stocknear</span
>
</a>
<a href="/" class="flex flex-row items-center ml-9 w-full">
@ -974,15 +1008,17 @@
<Accordion.Root class="w-full">
<Accordion.Item value="item-1">
<Accordion.Trigger class="text-muted dark:text-white ">
<Stock class="h-5.5 w-5.5 mr-3 text-muted dark:text-white ml-1" />
<span class="text-muted dark:text-white ml-1 mr-auto">Stocks</span>
<Stock
class="h-5.5 w-5.5 mr-3 text-muted dark:text-white ml-1"
/>
<span class="text-muted dark:text-white ml-1 mr-auto"
>Stocks</span
>
</Accordion.Trigger>
<Accordion.Content
class="border-l border-gray-500 ml-2 mt-5"
>
<div class="flex flex-col items-start">
<a
href="/industry"
class="text-[1rem] text-muted dark:text-white ml-4 mt-4"
@ -1020,8 +1056,12 @@
<Accordion.Root class="w-full">
<Accordion.Item value="item-1">
<Accordion.Trigger class="">
<Layers class="h-5.5 w-5.5 mr-3 text-muted dark:text-white ml-1" />
<span class="text-muted dark:text-white ml-1 mr-auto">ETFs</span>
<Layers
class="h-5.5 w-5.5 mr-3 text-muted dark:text-white ml-1"
/>
<span class="text-muted dark:text-white ml-1 mr-auto"
>ETFs</span
>
</Accordion.Trigger>
<Accordion.Content
class="border-l border-gray-500 ml-2 mt-5"
@ -1047,8 +1087,12 @@
<Accordion.Root class="w-full">
<Accordion.Item value="item-1">
<Accordion.Trigger class="">
<Analyst class="h-5.5 w-5.5 mr-3 text-muted dark:text-white ml-1" />
<span class="text-muted dark:text-white ml-1 mr-auto">Analyst</span>
<Analyst
class="h-5.5 w-5.5 mr-3 text-muted dark:text-white ml-1"
/>
<span class="text-muted dark:text-white ml-1 mr-auto"
>Analyst</span
>
</Accordion.Trigger>
<Accordion.Content
class="border-l border-gray-500 ml-2 mt-5"
@ -1065,27 +1109,27 @@
>Top Analyst Stocks</a
>
<a
href="/analysts/analyst-flow"
class="text-[1rem] text-muted dark:text-white ml-4 mt-4"
>Analyst Live Flow</a
>
</div>
</Accordion.Content>
</Accordion.Item>
</Accordion.Root>
</div>
<div class="flex flex-row items-center ml-9 w-full mt-3">
<Accordion.Root class="w-full">
<Accordion.Item value="item-1">
<Accordion.Trigger class="">
<Calendar class="h-5.5 w-5.5 mr-3 text-muted dark:text-white ml-1" />
<span class="text-muted dark:text-white ml-1 mr-auto">Calendar</span>
<Calendar
class="h-5.5 w-5.5 mr-3 text-muted dark:text-white ml-1"
/>
<span class="text-muted dark:text-white ml-1 mr-auto"
>Calendar</span
>
</Accordion.Trigger>
<Accordion.Content
class="border-l border-gray-500 ml-2 mt-5"
@ -1119,7 +1163,6 @@
class="text-[1rem] text-muted dark:text-white ml-4 mt-4"
>Economic Calendar</a
>
</div>
</Accordion.Content>
</Accordion.Item>
@ -1130,8 +1173,12 @@
<Accordion.Root class="w-full">
<Accordion.Item value="item-1">
<Accordion.Trigger class="">
<HandShake class="h-5.5 w-5.5 mr-3 text-muted dark:text-white ml-1" />
<span class="text-muted dark:text-white ml-1 mr-auto">Congress</span>
<HandShake
class="h-5.5 w-5.5 mr-3 text-muted dark:text-white ml-1"
/>
<span class="text-muted dark:text-white ml-1 mr-auto"
>Congress</span
>
</Accordion.Trigger>
<Accordion.Content
@ -1156,15 +1203,16 @@
</Accordion.Root>
</div>
<div class="flex flex-row items-center ml-9 w-full mt-3">
<Accordion.Root class="w-full">
<Accordion.Item value="item-1">
<Accordion.Trigger class="">
<Flow class="h-5.5 w-5.5 mr-3 text-muted dark:text-white ml-1" />
<span class="text-muted dark:text-white ml-1 mr-auto">Flow Feed</span>
<Flow
class="h-5.5 w-5.5 mr-3 text-muted dark:text-white ml-1"
/>
<span class="text-muted dark:text-white ml-1 mr-auto"
>Flow Feed</span
>
</Accordion.Trigger>
<Accordion.Content
class="border-l border-gray-500 ml-2 mt-5"
@ -1196,7 +1244,9 @@
<Accordion.Root class="w-full">
<Accordion.Item value="item-1">
<Accordion.Trigger class="">
<Tools class="h-5.5 w-5.5 mr-3 text-muted dark:text-white ml-1" />
<Tools
class="h-5.5 w-5.5 mr-3 text-muted dark:text-white ml-1"
/>
<span class="text-muted dark:text-white ml-1 mr-auto"
>Tools</span
>
@ -1205,8 +1255,6 @@
class="border-l border-gray-500 ml-2 mt-5"
>
<div class="flex flex-col items-start">
<a
href="/options-calculator"
class="text-[1rem] text-muted dark:text-white ml-4 mt-4"
@ -1218,15 +1266,12 @@
class="text-[1rem] text-muted dark:text-white ml-4 mt-4"
>POTUS Tracker</a
>
</div>
</Accordion.Content>
</Accordion.Item>
</Accordion.Root>
</div>
<a
href="/hedge-funds"
class="flex flex-row items-center ml-9 w-full mt-3"
@ -1236,7 +1281,9 @@
>
<Boxes class="h-5.5 w-5.5" />
</div>
<span class="ml-3 text-muted dark:text-white">Hedge Funds</span>
<span class="ml-3 text-muted dark:text-white"
>Hedge Funds</span
>
</a>
<a
@ -1260,7 +1307,9 @@
>
<Gem class="h-5.5 w-5.5" />
</div>
<span class="ml-3 text-muted dark:text-white">Pricing Plan</span>
<span class="ml-3 text-muted dark:text-white"
>Pricing Plan</span
>
</a>
{/if}
</nav>
@ -1268,8 +1317,6 @@
</div>
<div class="w-full">
<main class="w-full overflow-y-auto sm:p-4">
<slot />
<Toaster position="top-center" />
@ -1289,7 +1336,7 @@
<style lang="scss">
:root {
--bprogress-color: #00A6F4;
--bprogress-color: #00a6f4;
--bprogress-height: 1px;
}
</style>