This commit is contained in:
MuslemRahimi 2024-11-25 18:07:22 +01:00
parent 73669983e3
commit 0d5c900966
2 changed files with 137 additions and 293 deletions

View File

@ -4,14 +4,11 @@
import InfiniteLoading from "$lib/components/InfiniteLoading.svelte";
import { onMount } from "svelte";
import UpgradeToPro from "$lib/components/UpgradeToPro.svelte";
import ArrowLogo from "lucide-svelte/icons/move-up-right";
export let data;
let cloudFrontUrl = import.meta.env.VITE_IMAGE_URL;
let isLoaded = false;
let rawData = [];
let displayList = [];
let rawData = data?.getFDACalendar ?? [];
let displayList = rawData?.slice(0, 50) || [];
async function infiniteHandler({ detail: { loaded, complete } }) {
if (displayList?.length === rawData?.length) {
@ -24,12 +21,6 @@
}
}
onMount(() => {
rawData = data?.getFDACalendar ?? [];
displayList = rawData?.slice(0, 20) ?? [];
isLoaded = true;
});
$: charNumber = $screenWidth < 640 ? 15 : 20;
</script>
@ -56,7 +47,7 @@
<!-- Twitter specific meta tags -->
<meta name="twitter:card" content="summary_large_image" />
<meta name="twitter:title" content={`FDA Calendar · stocknear`} />
<meta name="twitter:title" content={`FDA Tracker · stocknear`} />
<meta
name="twitter:description"
content={`FDA Approval to track success rates of Biotech companies in the stock market.`}
@ -65,12 +56,12 @@
</svelte:head>
<section
class="w-full max-w-3xl sm:max-w-screen-2xl overflow-hidden min-h-screen pt-5 pb-40"
class="w-full max-w-3xl sm:max-w-screen-2xl overflow-hidden min-h-screen pb-20 pt-5 px-4 lg:px-3"
>
<div class="text-sm sm:text-[1rem] breadcrumbs ml-4">
<div class="text-sm sm:text-[1rem] breadcrumbs">
<ul>
<li><a href="/" class="text-gray-300">Home</a></li>
<li class="text-gray-300">FDA Calendar</li>
<li class="text-gray-300">FDA Tracker</li>
</ul>
</div>
@ -79,71 +70,13 @@
<div
class="relative flex justify-center items-start overflow-hidden w-full"
>
<main class="w-full lg:w-3/4 lg:pr-5">
<div
class="w-full m-auto sm:bg-[#27272A] sm:rounded-xl h-auto pl-10 pr-10 pt-5 sm:pb-10 sm:pt-10 mt-3 mb-8"
>
<div class="grid grid-cols-1 sm:grid-cols-2 gap-10">
<!-- Start Column -->
<div>
<div class="flex flex-row justify-center items-center">
<h1
class="text-3xl sm:text-4xl text-white text-center font-bold mb-5"
>
FDA Calendar
<main class="w-full">
<div class="mb-6 border-b-[2px]">
<h1 class="mb-1 text-white text-2xl sm:text-3xl font-bold">
FDA Tracker
</h1>
</div>
<span
class="text-white text-md font-medium text-center flex justify-center items-center"
>
Our FDA Calendar is designed to provide you with future
catalysts across biotech & pharma companies, updated on a
daily basis for all companies we cover.
</span>
</div>
<!-- End Column -->
<!-- Start Column -->
<div
class="hidden sm:block relative m-auto mb-5 mt-5 sm:mb-0 sm:mt-0"
>
<svg
class="w-40 -my-5"
viewBox="0 0 200 200"
xmlns="http://www.w3.org/2000/svg"
>
<defs>
<filter id="glow">
<feGaussianBlur stdDeviation="5" result="glow" />
<feMerge>
<feMergeNode in="glow" />
<feMergeNode in="SourceGraphic" />
</feMerge>
</filter>
</defs>
<path
fill="#1E40AF"
d="M57.6,-58.7C72.7,-42.6,81.5,-21.3,82,0.5C82.5,22.3,74.7,44.6,59.7,60.1C44.6,75.6,22.3,84.3,0,84.3C-22.3,84.2,-44.6,75.5,-61.1,60.1C-77.6,44.6,-88.3,22.3,-87.6,0.7C-86.9,-20.8,-74.7,-41.6,-58.2,-57.7C-41.6,-73.8,-20.8,-85.2,0.2,-85.4C21.3,-85.6,42.6,-74.7,57.6,-58.7Z"
transform="translate(100 100)"
filter="url(#glow)"
/>
</svg>
<div class="z-1 absolute top-0">
<img
class="w-[90px] ml-10"
src={cloudFrontUrl + "/assets/fda_logo.png"}
alt="logo"
loading="lazy"
/>
</div>
</div>
<!-- End Column -->
</div>
</div>
{#if isLoaded}
<div
class="w-full text-center sm:text-start sm:flex sm:flex-row sm:items-center m-auto text-gray-100 border border-gray-800 sm:rounded-md h-auto p-5"
>
@ -156,14 +89,14 @@
d="M128 24a104 104 0 1 0 104 104A104.11 104.11 0 0 0 128 24m-4 48a12 12 0 1 1-12 12a12 12 0 0 1 12-12m12 112a16 16 0 0 1-16-16v-40a8 8 0 0 1 0-16a16 16 0 0 1 16 16v40a8 8 0 0 1 0 16"
/></svg
>
Biotech companies can be among the most lucrative stocks if you invest
wisely. Their stock prices can soar by +100% in a single day or plummet
by the same amount, depending on the outcomes of clinical trials.
We update our data in realtime to provide you with the latest FDA Approvals
and Trials for new Drugs and Studies from US Stock Companies.
</div>
<div class="w-screen sm:w-full m-auto mt-20 sm:mt-10">
<div class="w-full m-auto mt-20 sm:mt-10">
<!--
<div
class="w-screen sm:w-full m-auto rounded-none sm:rounded-md mb-4 overflow-x-scroll sm:overflow-hidden"
class="w-full m-auto rounded-none sm:rounded-md mb-4 overflow-x-scroll sm:overflow-hidden"
>
<table
class="table table-sm table-compact rounded-none sm:rounded-md w-full bg-[#09090B] border-bg-[#09090B] m-auto"
@ -175,15 +108,7 @@
>
Symbol
</th>
<!--
<th class="text-start bg-[#09090B] text-white text-sm sm:text-[1rem] whitespace-nowrap font-semibold">
Name
</th>
<th class="text-start bg-[#09090B] text-white text-sm sm:text-[1rem] whitespace-nowrap font-semibold">
Source
</th>
-->
<th
class="text-start bg-[#09090B] text-white text-sm sm:text-[1rem] whitespace-nowrap font-semibold"
>
@ -234,15 +159,7 @@
</span>
</div>
</td>
<!--
<td class="hidden sm:table-cell text-white text-sm text-white text-start">
{item?.name?.length > charNumber ? item?.name?.slice(0,charNumber) + "..." : item?.name}
</td>
<td class="text-start text-sm font-medium text-white">
{item?.sourceType?.length !== 0 ? item?.sourceType : 'n/a'}
</td>
-->
<td
class="text-start text-sm sm:text-[1rem] whitespace-nowrap font-medium text-white"
@ -290,82 +207,9 @@
</tbody>
</table>
</div>
<InfiniteLoading on:infinite={infiniteHandler} />
<UpgradeToPro
{data}
title="Get the latest FDA Approval to never miss out the next big surge of Biotech companies"
/>
-->
</div>
{:else}
<div class="flex justify-center items-center h-80">
<div class="relative">
<label
class="bg-[#09090B] rounded-xl 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}
</main>
<aside class="hidden lg:block relative fixed w-1/4 ml-4">
{#if data?.user?.tier !== "Pro" || data?.user?.freeTrial}
<div
on:click={() => goto("/pricing")}
class="w-full text-white border border-gray-600 rounded-md h-fit pb-4 mt-4 cursor-pointer"
>
<div
class="w-auto lg:w-full p-1 flex flex-col m-auto px-2 sm:px-0"
>
<div class="w-full flex justify-between items-center p-3 mt-3">
<h2 class="text-start text-xl font-semibold text-white ml-3">
Pro Subscription
</h2>
<ArrowLogo class="w-8 h-8 mr-3 flex-shrink-0" />
</div>
<span class="text-white p-3 ml-3 mr-3">
Upgrade now for unlimited access to all data and tools.
</span>
</div>
</div>
{/if}
<div
on:click={() => goto("/analysts")}
class="w-full text-white border border-gray-600 rounded-md h-fit pb-4 mt-4 cursor-pointer"
>
<div class="w-auto lg:w-full p-1 flex flex-col m-auto px-2 sm:px-0">
<div class="w-full flex justify-between items-center p-3 mt-3">
<h2 class="text-start text-xl font-semibold text-white ml-3">
Wallstreet Analyst
</h2>
<ArrowLogo class="w-8 h-8 mr-3 flex-shrink-0" />
</div>
<span class="text-white p-3 ml-3 mr-3">
Get the latest top Wall Street analyst ratings.
</span>
</div>
</div>
<div
on:click={() => goto("/politicians")}
class="w-full text-white border border-gray-600 rounded-md h-fit pb-4 mt-4 cursor-pointer"
>
<div class="w-auto lg:w-full p-1 flex flex-col m-auto px-2 sm:px-0">
<div class="w-full flex justify-between items-center p-3 mt-3">
<h2 class="text-start text-xl font-semibold text-white ml-3">
Congress Trading
</h2>
<ArrowLogo class="w-8 h-8 mr-3 flex-shrink-0" />
</div>
<span class="text-white p-3 ml-3 mr-3">
Get the latest top Congress trading insights.
</span>
</div>
</div>
</aside>
</div>
</div>
</div>

View File

@ -63,7 +63,7 @@
</svelte:head>
<section
class="w-full max-w-3xl sm:max-w-screen-2xl overflow-hidden pb-20 pt-5 px-4 lg:px-3"
class="w-full max-w-3xl sm:max-w-screen-2xl overflow-hidden min-h-screen pb-20 pt-5 px-4 lg:px-3"
>
<div class="text-sm sm:text-[1rem] breadcrumbs">
<ul>