From 6c5cf9043a90b49bd9e38d7a4f8c84f81d651028 Mon Sep 17 00:00:00 2001 From: Gabo Esquivel Date: Mon, 15 Apr 2024 00:13:10 -0600 Subject: [PATCH 01/21] chore: fix jsx structure --- apps/webapp/app/[project]/layout.tsx | 26 +- apps/webapp/app/[project]/page.tsx | 77 +++-- apps/webapp/app/how-it-works/layout.tsx | 17 +- apps/webapp/app/how-it-works/page.tsx | 271 ++++++++---------- apps/webapp/app/layout.tsx | 91 +++--- apps/webapp/app/page.tsx | 2 +- apps/webapp/app/security/layout.tsx | 17 +- apps/webapp/app/security/page.tsx | 131 ++++----- apps/webapp/app/wallet/layout.tsx | 21 +- apps/webapp/components/layout-container.tsx | 56 ---- .../components/layout/layout-container.tsx | 63 ++++ 11 files changed, 380 insertions(+), 392 deletions(-) delete mode 100644 apps/webapp/components/layout-container.tsx create mode 100644 apps/webapp/components/layout/layout-container.tsx diff --git a/apps/webapp/app/[project]/layout.tsx b/apps/webapp/app/[project]/layout.tsx index 900acf951..fa28edf1b 100644 --- a/apps/webapp/app/[project]/layout.tsx +++ b/apps/webapp/app/[project]/layout.tsx @@ -1,4 +1,4 @@ -import { LayoutContainer } from '@/components/layout-container' +import { LayoutContainer } from '@/components/layout/layout-container' import { ProjectHeader } from '@/components/pages/auction/project-header' import { projects } from '@/lib/projects' import { Metadata } from 'next' @@ -6,19 +6,29 @@ import React, { Suspense } from 'react' export const metadata: Metadata = { title: 'bitcash | bitlauncher', - description: 'Invest in the intelligent future and join the Ai/Web3 revolution now!', + description: + 'Invest in the intelligent future and join the Ai/Web3 revolution now!' } -export default function ProjectLayout({ children, params, ...props }: RootLayoutProps) { +export default function ProjectLayout({ + children, + params, + ...props +}: RootLayoutProps) { const project = projects.find(p => p.slug === params.project) return ( }> - - - ) : null + projectHeader={ + project ? ( + + } + > + + + ) : null } > {children} diff --git a/apps/webapp/app/[project]/page.tsx b/apps/webapp/app/[project]/page.tsx index 69d115abe..efa97d224 100644 --- a/apps/webapp/app/[project]/page.tsx +++ b/apps/webapp/app/[project]/page.tsx @@ -1,16 +1,15 @@ import { projects, ProjectWithAuction } from '@/lib/projects' - import { redirect } from 'next/navigation' - -const sectionWithBgClassNames = 'flex flex-col gap-11 px-3 w-full mx-auto max-w-screen-xl md:px-6 lg:px-11 w-full bg-primary/70 backdrop-xl rounded-3xl py-10 md:py-16 lg:py-24' -const sectionWithoutBgClassNames = sectionWithBgClassNames.replace('bg-primary/70 backdrop-xl rounded-3xl ', '') +import { cn } from '@/lib/utils' // Importing cn instead of tw export default async function ProjectPage({ params }: { params: { project: string } }) { - const project = await new Promise((resolve) => resolve(projects.find(p => p.slug == params.project))).then((p) => p as ProjectWithAuction) + const project = await new Promise(resolve => + resolve(projects.find(p => p.slug == params.project)) + ).then(p => p as ProjectWithAuction) if (!project) redirect('/') const projectContentObjectKeys = Object.keys(project.content) @@ -19,46 +18,62 @@ export default async function ProjectPage({ return ( <>
- {/* // ! ========= CONTENT ORDER MUST BE AS: 1. highlights, 2. product, 3. problem, 4. solution, 5. bussinessModel and 6. tokenomics ========= */} {projectContentObjectKeys.map((key, index) => { const pcKey = key as keyof typeof projectContent return ( - // ? Odds gets background, evens gets no background -
+

{projectContent[pcKey].title}

- {(projectContent[pcKey].content as string[][]).map((content, index) => { - if (content.every((c, i) => c.includes(':'))) { - return ( -
    - {content.map(item => ( -
  • - {item.split(':').map((text, index) => ( - - {text}{!index ? ': ' : ''} - - ))} -
  • - ))} -
- ) - } + {(projectContent[pcKey].content as string[][]).map( + (content, index) => { + if (content.every((c, i) => c.includes(':'))) { + return ( +
    + {content.map(item => ( +
  • + {item.split(':').map((text, index) => ( + + {text} + {index === 0 ? ': ' : ''} + + ))} +
  • + ))} +
+ ) + } - return content.map((item, index) => ( -

- {item} -

- )) - })} + return content.map((item, index) => ( +

+ {item} +

+ )) + } + )}
) })} -
+
) } diff --git a/apps/webapp/app/how-it-works/layout.tsx b/apps/webapp/app/how-it-works/layout.tsx index 6c2217285..ee9da97bf 100644 --- a/apps/webapp/app/how-it-works/layout.tsx +++ b/apps/webapp/app/how-it-works/layout.tsx @@ -1,16 +1,17 @@ -import { LayoutContainer } from '@/components/layout-container' +import { LayoutContainer } from '@/components/layout/layout-container' import { Metadata } from 'next' import React from 'react' export const metadata: Metadata = { title: 'how it works | bitlauncher', - description: 'Invest in the intelligent future and join the Ai/Web3 revolution now!', + description: + 'Invest in the intelligent future and join the Ai/Web3 revolution now!' } -export default function HowItWorksLayout({ children }: { children: React.ReactNode }) { - return ( - - {children} - - ) +export default function HowItWorksLayout({ + children +}: { + children: React.ReactNode +}) { + return {children} } diff --git a/apps/webapp/app/how-it-works/page.tsx b/apps/webapp/app/how-it-works/page.tsx index 9fafc5af9..d8b83f539 100644 --- a/apps/webapp/app/how-it-works/page.tsx +++ b/apps/webapp/app/how-it-works/page.tsx @@ -1,166 +1,121 @@ import Image from 'next/image' +import React from 'react' +import { cn } from '@/lib/utils' // Ensure this function is imported correctly -const howItWorksClassNames = { - container: 'flex flex-col gap-10 py-24 w-full mx-auto max-w-screen-lg', - h1: 'text-3xl md:text-6xl font-bold', - h2: 'text-2xl md:text-4xl font-bold', - paragraph: 'text-base md:text-lg', - article: - 'flex flex-col gap-10 py-10 p-3 md:p-24 rounded-md border bg-gray-50 dark:bg-black', - list: 'pl-6 mt-2 list-disc [&_li]:mt-2', - code: 'dark:invert' +export default function HowItWorksPage() { + return ( +
+ +
+ ) } -export default function HowItWorks() { +function Content({ data }: { data: ContentData }) { return ( -
-

How Bitlauncher Works

-

- Bitlauncher is a platform enabling fair price discovery for token - auctions. The aim of the platform is to make it easy for teams to - discover a fair price for their token. -

-

- Bitlauncher uses batch auctions, which are a popular mechanism for - ensuring fair price for both the decentralized and traditional finance - worlds. Batch auctions enable matching of limit orders of buyers and - sellers with the same clearing price for all participants. From crypto - use cases like Initial DEX Offerings (like those on the Mesa interface - for Gnosis Protocol v1) to traditional finance auctions (like Google’s - IPO and the NYSE Open Auction), batch auctions play an important role in - the democratization of the auctioned assets. This function is especially - important for decentralized teams which need to ensure fair token - distributions while operating trustlessly and efficiently. Batch - auctions are set to become a fundamental “DeFi Lego” brick for any team - or community interested in offering their users the most transparent and - fairest auction-mechanism for their token. -

- -

- Comparison of Different Auction Mechanisms -

-

- With bitlauncher’s open-source smart contract, projects can quickly and - securely create their own decentralized fair auctions. Unlike some - solutions dependent on a centralized curation process, Bitlauncher is - permissionless so that any Ethereum team can deploy & execute batch - auctions for price finding. Bitlauncher allows any Ethereum project or - community to conduct auctions that: -

- Comparison Chart -

- Fair Price Discovery with Bitlauncher -

-

- By providing an easy interface for price discovery with batch auctions, - Bitlauncher enables: -

-
    -
  • - Auctioneers to determine a minimum price they are willing to sell - their tokens for, and -
  • -
  • Bidders to set the maximum price they are willing to pay
  • -
-

- These characteristics allow the platform to create a fair pricing - dynamic in which both participants get either what they were willing to - receive or more. Additionally the batched time nature of the auctions - greatly reduces frontrunning and gas bidding wars, decreasing the amount - of extracted value from auctioneers and bidders. -

-

- The depositAndPlaceOrder function, typically found in auction or trading - platforms like Gnosis or its forks, including Bitlauncher, serves a dual - purpose within the context of smart contracts, especially when - interacting with blockchain-based auction systems. Heres a breakdown of - its functionality -

- -
- -

Smart Contract Actions

- -

Purpose

- -
    -
  • - Deposit: Allows users to deposit funds into the - smart contract, acting as a bid in an auction or payment for placing - an order. -
  • -
  • - Place Order: Enables users to place an order within - the auction, specifying details such as the amount of tokens desired - and the price. -
  • -
- -

Parameters

-

- Common parameters include: -

-
    -
  • - auctionId: Identifies the auction. -
  • -
  • - amount or _minBuyAmounts: The amount of - tokens to buy or the minimum bid amount. -
  • -
  • - token or currency: The token or currency - used for the order. -
  • -
  • - userData: Additional data related to the order. -
  • -
+ <> + {data.map((item, index) => { + switch (item.type) { + case 'h1': + case 'h2': + return ( + + {item.text} + + ) + case 'p': + return ( +

+ {item.text} +

+ ) + case 'ul': + return ( +
    + {item.items.map((li, liIndex) => ( +
  • {li}
  • + ))} +
+ ) + case 'Image': + return ( + {item.alt} + ) + default: + return null + } + })} + + ) +} -

Behavior

-
    -
  1. - Validation: Validates the input parameters against - the auctions rules. -
  2. -
  3. - Funds Handling: Manages the deposited funds, - aligning them with the users order. -
  4. -
  5. - Order Placement: Records the users order within the - auctions structure. -
  6. -
  7. - Events: Emits events to record the deposit and - order placement actions. -
  8. -
+type ContentItem = + | { type: 'h1' | 'h2' | 'p'; text: string } + | { type: 'ul'; items: string[] } + | { + type: 'Image' + src: string + alt: string + width: number + height: number + layout: 'responsive' + className: string + } -

Security Considerations

-
    -
  • - Reentrancy Guard: Ensures protection against - reentrancy attacks. -
  • -
  • - Input Validation: Validates all inputs to prevent - manipulations. -
  • -
  • - Access Controls: May restrict who can call the - function based on certain criteria. -
  • -
+type ContentData = ContentItem[] -
-
- ) -} +const content: ContentData = [ + { type: 'h1', text: 'How Bitlauncher Works' }, + { + type: 'p', + text: 'Bitlauncher is a platform enabling fair price discovery for token auctions. The aim of the platform is to make it easy for teams to discover a fair price for their token.' + }, + { + type: 'p', + text: 'Bitlauncher uses batch auctions, which are a popular mechanism for ensuring fair price for both the decentralized and traditional finance worlds. Batch auctions enable matching of limit orders of buyers and sellers with the same clearing price for all participants. From crypto use cases like Initial DEX Offerings (like those on the Mesa interface for Gnosis Protocol v1) to traditional finance auctions (like Google’s IPO and the NYSE Open Auction), batch auctions play an important role in the democratization of the auctioned assets. This function is especially important for decentralized teams which need to ensure fair token distributions while operating trustlessly and efficiently. Batch auctions are set to become a fundamental “DeFi Lego” brick for any team or community interested in offering their users the most transparent and fairest auction-mechanism for their token.' + }, + { type: 'h2', text: 'Comparison of Different Auction Mechanisms' }, + { + type: 'p', + text: 'With bitlauncher’s open-source smart contract, projects can quickly and securely create their own decentralized fair auctions. Unlike some solutions dependent on a centralized curation process, Bitlauncher is permissionless so that any Ethereum team can deploy & execute batch auctions for price finding. Bitlauncher allows any Ethereum project or community to conduct auctions that:' + }, + { + type: 'Image', + src: '/images/auction-comparison.webp', + alt: 'Comparison Chart', + width: 720, + height: 400, + layout: 'responsive', + className: 'dark:invert' + }, + { type: 'h2', text: 'Fair Price Discovery with Bitlauncher' }, + { + type: 'p', + text: 'By providing an easy interface for price discovery with batch auctions, Bitlauncher enables:' + }, + { + type: 'ul', + items: [ + 'Auctioneers to determine a minimum price they are willing to sell their tokens for, and', + 'Bidders to set the maximum price they are willing to pay' + ] + }, + { + type: 'p', + text: 'These characteristics allow the platform to create a fair pricing dynamic in which both participants get either what they were willing to receive or more. Additionally the batched time nature of the auctions greatly reduces frontrunning and gas bidding wars, decreasing the amount of extracted value from auctioneers and bidders.' + } +] diff --git a/apps/webapp/app/layout.tsx b/apps/webapp/app/layout.tsx index 98c8bb8c8..d42fcdea3 100644 --- a/apps/webapp/app/layout.tsx +++ b/apps/webapp/app/layout.tsx @@ -7,24 +7,57 @@ import { Metadata } from 'next' import { Open_Sans } from 'next/font/google' import React from 'react' +const openSans = Open_Sans({ + subsets: ['latin', 'latin-ext'], + weight: ['400', '500', '600', '700', '800'] +}) + +export default function RootLayout({ children, ...props }: RootLayoutProps) { + return ( + + + + {children} + + + + + ) +} +interface RootLayoutProps { + children: React.ReactNode + params: { project: string } +} + export const metadata: Metadata = { title: { absolute: 'bitlauncher', - template: '%s | bitlauncher', + template: '%s | bitlauncher' }, - description: 'Invest in the intelligent future and join the Ai/Web3 revolution now!', + description: + 'Invest in the intelligent future and join the Ai/Web3 revolution now!', metadataBase: new URL('https://bitlauncher.ai'), alternates: { canonical: '/', languages: { - 'en-US': '/', - }, + 'en-US': '/' + } }, openGraph: { type: 'website', url: 'https://bitlauncher.ai', title: 'bitlauncher', - description: 'Invest in the intelligent future and join the Ai/Web3 revolution now!', + description: + 'Invest in the intelligent future and join the Ai/Web3 revolution now!', images: [ { url: 'https://bitlauncher.ai/images/og-image.jpeg', @@ -44,36 +77,20 @@ export const metadata: Metadata = { ] }, robots: 'index, search', - keywords: ['bitlauncher', 'smartsale', 'ai', 'web3', 'crypto', 'investment', 'auction', 'marketplace', 'platform', 'launchpad', 'launch', 'pad', 'launching', 'launching'] -} - -const openSans = Open_Sans({ subsets: ['latin', 'latin-ext'], weight: ['400', '500', '600', '700', '800'] }) - -export default function RootLayout({ children, ...props }: RootLayoutProps) { - return ( - - - - {children} - - - - - ) -} -interface RootLayoutProps { - children: React.ReactNode - params: { project: string } + keywords: [ + 'bitlauncher', + 'smartsale', + 'ai', + 'web3', + 'crypto', + 'investment', + 'auction', + 'marketplace', + 'platform', + 'launchpad', + 'launch', + 'pad', + 'launching', + 'launching' + ] } diff --git a/apps/webapp/app/page.tsx b/apps/webapp/app/page.tsx index a936ee81c..fce3a083f 100644 --- a/apps/webapp/app/page.tsx +++ b/apps/webapp/app/page.tsx @@ -1,4 +1,4 @@ -import { LayoutContainer } from '@/components/layout-container' +import { LayoutContainer } from '@/components/layout/layout-container' import { Upcoming } from '@/components/pages/home/upcoming' // console.log(_.groupBy(TestnetEasyAuction.abi.map(o => _.omit(o, ['inputs','outputs'])), 'type')) diff --git a/apps/webapp/app/security/layout.tsx b/apps/webapp/app/security/layout.tsx index 996554f61..ed59e1564 100644 --- a/apps/webapp/app/security/layout.tsx +++ b/apps/webapp/app/security/layout.tsx @@ -1,16 +1,17 @@ -import { LayoutContainer } from '@/components/layout-container' +import { LayoutContainer } from '@/components/layout/layout-container' import { Metadata } from 'next' import React from 'react' export const metadata: Metadata = { title: 'security | bitlauncher', - description: 'Invest in the intelligent future and join the Ai/Web3 revolution now!', + description: + 'Invest in the intelligent future and join the Ai/Web3 revolution now!' } -export default function HowItWorksLayout({ children }: { children: React.ReactNode }) { - return ( - - {children} - - ) +export default function HowItWorksLayout({ + children +}: { + children: React.ReactNode +}) { + return {children} } diff --git a/apps/webapp/app/security/page.tsx b/apps/webapp/app/security/page.tsx index 773a4790f..0f61926de 100644 --- a/apps/webapp/app/security/page.tsx +++ b/apps/webapp/app/security/page.tsx @@ -1,87 +1,68 @@ -const securityTipsClassNames: Record = { - container: 'flex flex-col gap-10 py-24 w-full mx-auto max-w-screen-lg', - h1: 'text-3xl md:text-6xl font-bold', - h2: 'text-2xl md:text-4xl font-bold', - p: 'text-base md:text-lg' -} +import React from 'react' export default function SecurityTips() { return ( -
-

+
+

Security Recommendations for Bitlauncher Participants

-

+

Participating in auctions on Bitlauncher, a fork of Gnosis, requires vigilance and awareness of various security threats. Here are some crucial tips to help keep your investments safe:

- -

- 1. Beware of Phishing Attacks -

-

- Phishing is a common technique used by attackers to gain access to your - personal information. Always verify the URL of the Bitlauncher and - ensure it is the legitimate site before connecting your MetaMask wallet. - Be cautious of emails or websites impersonating Bitlauncher. -

- -

2. MetaMask Security

-

- When using MetaMask, never share your seed phrase with anyone. Be - cautious of any website or person asking for your MetaMask credentials. - Always lock your MetaMask wallet when not in use. -

- -

- 3. Impersonation on Discord and Social Media -

-

- Be wary of individuals on platforms like Discord and social media who - claim to be representatives of Bitlauncher. Official staff will never - ask for your private keys or wallet credentials. -

- -

- 4. Secure Your Digital Environment -

-

- Ensure that your computer and internet connection are secure. Use - antivirus software, enable firewalls, and update your software regularly - to prevent malware attacks. -

- -

- 5. Double-Check Transaction Details -

-

- Before confirming any transaction on MetaMask, double-check the - recipients address, the amount, and the gas fees. Scammers often try to - manipulate transaction details. -

- -

- 6. Stay Informed and Updated -

-

- Follow only the official Bitlauncher channels for updates and - information. Do not trust unverified sources. -

- -

- 7. Report Suspicious Activities -

-

- If you encounter any suspicious activity or believe you are a victim of - a scam, contact the official Bitlauncher support immediately. -

- -

- Stay vigilant and always prioritize your digital security! -

- -
+ {securityTips.map((tip, index) => ( +
+

+ {index + 1}. {tip.title} +

+

{tip.content}

+
+ ))} +
) } + +interface SecurityTip { + title: string + content: string +} + +const securityTips: SecurityTip[] = [ + { + title: 'Beware of Phishing Attacks', + content: + 'Phishing is a common technique used by attackers to gain access to your personal information. Always verify the URL of the Bitlauncher and ensure it is the legitimate site before connecting your MetaMask wallet. Be cautious of emails or websites impersonating Bitlauncher.' + }, + { + title: 'MetaMask Security', + content: + 'When using MetaMask, never share your seed phrase with anyone. Be cautious of any website or person asking for your MetaMask credentials. Always lock your MetaMask wallet when not in use.' + }, + { + title: 'Impersonation on Discord and Social Media', + content: + 'Be wary of individuals on platforms like Discord and social media who claim to be representatives of Bitlauncher. Official staff will never ask for your private keys or wallet credentials.' + }, + { + title: 'Secure Your Digital Environment', + content: + 'Ensure that your computer and internet connection are secure. Use antivirus software, enable firewalls, and update your software regularly to prevent malware attacks.' + }, + { + title: 'Double-Check Transaction Details', + content: + 'Before confirming any transaction on MetaMask, double-check the recipients address, the amount, and the gas fees. Scammers often try to manipulate transaction details.' + }, + { + title: 'Stay Informed and Updated', + content: + 'Follow only the official Bitlauncher channels for updates and information. Do not trust unverified sources.' + }, + { + title: 'Report Suspicious Activities', + content: + 'If you encounter any suspicious activity or believe you are a victim of a scam, contact the official Bitlauncher support immediately.' + } +] as const diff --git a/apps/webapp/app/wallet/layout.tsx b/apps/webapp/app/wallet/layout.tsx index d714fbca5..66b822bed 100644 --- a/apps/webapp/app/wallet/layout.tsx +++ b/apps/webapp/app/wallet/layout.tsx @@ -1,16 +1,17 @@ -import { LayoutContainer } from '@/components/layout-container' +import { LayoutContainer } from '@/components/layout/layout-container' import { Metadata } from 'next' import React from 'react' -export const metadata: Metadata = { - title: 'wallet | bitlauncher', - description: 'Invest in the intelligent future and join the Ai/Web3 revolution now!', +export default function WalletLayout({ + children +}: { + children: React.ReactNode +}) { + return {children} } -export default function WalletLayout({ children }: { children: React.ReactNode }) { - return ( - - {children} - - ) +export const metadata: Metadata = { + title: 'wallet | bitlauncher', + description: + 'Invest in the intelligent future and join the Ai/Web3 revolution now!' } diff --git a/apps/webapp/components/layout-container.tsx b/apps/webapp/components/layout-container.tsx deleted file mode 100644 index 0c73ae701..000000000 --- a/apps/webapp/components/layout-container.tsx +++ /dev/null @@ -1,56 +0,0 @@ -'use client' - -import { ErrorModal } from "@/components/dialogs/error-dialog" -import { Header } from "@/components/layout/header" -import Participate from "@/components/pages/home/participate" -import { BackgroundMovingGradient } from "@/components/ui/background-moving-gradient" -import { cn } from "@/lib/utils" -import dynamic from "next/dynamic" -import { useRef } from "react" -import { Toaster } from "react-hot-toast" - -const DynamicNewsletter = dynamic(() => import('./pages/home/newsletter') as any, { - ssr: false -}) - -export function LayoutContainer({ children, projectHeader }: { children: React.ReactNode, projectHeader?: React.ReactNode }) { - const containerRef = useRef(null) - - return ( - -
- -
- {projectHeader ? ( -
-
- {projectHeader} -
- -
- {children} -
-
- ) : ( -
- {children} -
- )} -
- - -
- - {/* */} -
- - ) -} \ No newline at end of file diff --git a/apps/webapp/components/layout/layout-container.tsx b/apps/webapp/components/layout/layout-container.tsx new file mode 100644 index 000000000..abcf94cd4 --- /dev/null +++ b/apps/webapp/components/layout/layout-container.tsx @@ -0,0 +1,63 @@ +'use client' + +import { ErrorModal } from '@/components/dialogs/error-dialog' +import { Header } from '@/components/layout/header' +import Participate from '@/components/pages/home/participate' +import { BackgroundMovingGradient } from '@/components/ui/background-moving-gradient' +import { cn } from '@/lib/utils' +import dynamic from 'next/dynamic' +import { useRef } from 'react' +import { Toaster } from 'react-hot-toast' + +const DynamicNewsletter = dynamic( + () => import('../pages/home/newsletter') as any, + { + ssr: false + } +) + +export function LayoutContainer({ + children, + projectHeader +}: { + children: React.ReactNode + projectHeader?: React.ReactNode +}) { + const containerRef = useRef(null) + + return ( + +
+ +
+ {projectHeader ? ( +
+
+ {projectHeader} +
+ +
{children}
+
+ ) : ( +
+ {children} +
+ )} +
+ + +
+ + {/* */} +
+ + ) +} From b273a6ebd81d6be8c1c27882c1ecd6cd8fb0e015 Mon Sep 17 00:00:00 2001 From: Gabo Esquivel Date: Mon, 15 Apr 2024 04:29:17 -0600 Subject: [PATCH 02/21] chore: fix layout and cls, removed motion --- apps/webapp/actions.ts | 49 +-- apps/webapp/app/[project]/auction/page.tsx | 20 +- apps/webapp/app/[project]/layout.tsx | 46 +-- apps/webapp/app/[project]/page.tsx | 19 +- .../app/{how-it-works => about}/page.tsx | 87 +---- apps/webapp/app/globals.css | 26 +- apps/webapp/app/how-it-works/layout.tsx | 17 - apps/webapp/app/layout.tsx | 14 +- apps/webapp/app/page.tsx | 15 +- apps/webapp/app/security/layout.tsx | 17 - apps/webapp/app/security/page.tsx | 49 +-- apps/webapp/app/terms/page.tsx | 20 ++ apps/webapp/app/wallet/layout.tsx | 17 - apps/webapp/app/wallet/page.tsx | 31 +- apps/webapp/components/dialogs/esr-dialog.tsx | 2 - apps/webapp/components/layout/footer.tsx | 14 + apps/webapp/components/layout/header.tsx | 327 ++---------------- .../components/layout/layout-container.tsx | 63 ---- .../{pages/home => layout}/newsletter.tsx | 70 ++-- apps/webapp/components/layout/participate.tsx | 82 +++++ .../webapp/components/layout/theme-toggle.tsx | 31 -- .../pages/auction/project-header.tsx | 270 --------------- .../components/pages/home/auction-card.tsx | 152 -------- .../components/pages/home/participate.tsx | 183 ---------- .../webapp/components/pages/home/upcoming.tsx | 97 ------ .../auction/auction-bids.tsx | 0 .../auction/auction-debug.tsx | 0 .../auction/auction-info.tsx | 0 .../auction/auction-orders.tsx | 0 .../auction/claim-tokens.tsx | 0 .../{pages => routes}/auction/countdown.tsx | 0 .../routes/auction/project-header.tsx | 258 ++++++++++++++ .../auction/register-address.tsx | 4 +- .../components/routes/home/auction-card.tsx | 154 +++++++++ .../components/routes/home/upcoming.tsx | 44 +++ .../wallet/balances-table.tsx | 0 .../{pages => routes}/wallet/deposit-card.tsx | 0 .../wallet/transactions-table.tsx | 0 .../wallet/withdraw-card.tsx | 0 apps/webapp/components/shared/content.tsx | 71 ++++ .../ui/background-moving-gradient.tsx | 161 --------- apps/webapp/components/ui/lazy-image.tsx | 66 ---- .../components/ui/typewritting-effect.tsx | 132 ------- apps/webapp/lib/projects.ts | 117 ++++--- apps/webapp/lib/validators.ts | 2 +- 45 files changed, 936 insertions(+), 1791 deletions(-) rename apps/webapp/app/{how-it-works => about}/page.tsx (57%) delete mode 100644 apps/webapp/app/how-it-works/layout.tsx delete mode 100644 apps/webapp/app/security/layout.tsx create mode 100644 apps/webapp/app/terms/page.tsx delete mode 100644 apps/webapp/app/wallet/layout.tsx create mode 100644 apps/webapp/components/layout/footer.tsx delete mode 100644 apps/webapp/components/layout/layout-container.tsx rename apps/webapp/components/{pages/home => layout}/newsletter.tsx (60%) create mode 100644 apps/webapp/components/layout/participate.tsx delete mode 100644 apps/webapp/components/layout/theme-toggle.tsx delete mode 100644 apps/webapp/components/pages/auction/project-header.tsx delete mode 100644 apps/webapp/components/pages/home/auction-card.tsx delete mode 100644 apps/webapp/components/pages/home/participate.tsx delete mode 100644 apps/webapp/components/pages/home/upcoming.tsx rename apps/webapp/components/{pages => routes}/auction/auction-bids.tsx (100%) rename apps/webapp/components/{pages => routes}/auction/auction-debug.tsx (100%) rename apps/webapp/components/{pages => routes}/auction/auction-info.tsx (100%) rename apps/webapp/components/{pages => routes}/auction/auction-orders.tsx (100%) rename apps/webapp/components/{pages => routes}/auction/claim-tokens.tsx (100%) rename apps/webapp/components/{pages => routes}/auction/countdown.tsx (100%) create mode 100644 apps/webapp/components/routes/auction/project-header.tsx rename apps/webapp/components/{pages => routes}/auction/register-address.tsx (94%) create mode 100644 apps/webapp/components/routes/home/auction-card.tsx create mode 100644 apps/webapp/components/routes/home/upcoming.tsx rename apps/webapp/components/{pages => routes}/wallet/balances-table.tsx (100%) rename apps/webapp/components/{pages => routes}/wallet/deposit-card.tsx (100%) rename apps/webapp/components/{pages => routes}/wallet/transactions-table.tsx (100%) rename apps/webapp/components/{pages => routes}/wallet/withdraw-card.tsx (100%) create mode 100644 apps/webapp/components/shared/content.tsx delete mode 100644 apps/webapp/components/ui/background-moving-gradient.tsx delete mode 100644 apps/webapp/components/ui/lazy-image.tsx delete mode 100644 apps/webapp/components/ui/typewritting-effect.tsx diff --git a/apps/webapp/actions.ts b/apps/webapp/actions.ts index 0a5b6aa49..5a86cc5ad 100644 --- a/apps/webapp/actions.ts +++ b/apps/webapp/actions.ts @@ -1,6 +1,6 @@ 'use server' -import { registerAddressSchema } from '@/lib/validators' +import { RegisterAddressSchema } from '@/lib/validators' import { cookies } from 'next/headers' import { db } from 'smartsale-db' import { fromEntries } from 'smartsale-lib' @@ -13,7 +13,7 @@ import { z } from 'zod' export async function registerAddress(formData: FormData) { try { const o = fromEntries(formData) - const data = registerAddressSchema.parse({ + const data = RegisterAddressSchema.parse({ ...o, project_id: parseInt(o.project_id) }) @@ -83,19 +83,21 @@ export async function generateShortLink(path: string) { const getShareLinkCookies = cookieStorage.get('bitlauncher-share-link') const resolved: DubShareLinkResponse = !getShareLinkCookies ? await axios - .post( - `https://api.dub.co/links?workspaceId=${process.env.DUB_WORKSPACE_ID}`, - { - domain: 'bitcash.to', - url: `https://bitlauncher.ai${path}` - }, { - headers: { - Authorization: `Bearer ${process.env.DUB_API_KEY}`, - 'Content-Type': 'application/json' - }, - }) - .then(res => res.data) - : JSON.parse(getShareLinkCookies.value) as DubShareLinkResponse + .post( + `https://api.dub.co/links?workspaceId=${process.env.DUB_WORKSPACE_ID}`, + { + domain: 'bitcash.to', + url: `https://bitlauncher.ai${path}` + }, + { + headers: { + Authorization: `Bearer ${process.env.DUB_API_KEY}`, + 'Content-Type': 'application/json' + } + } + ) + .then(res => res.data) + : (JSON.parse(getShareLinkCookies.value) as DubShareLinkResponse) if (!resolved) throw new Error('Failed to generate short link') @@ -123,14 +125,14 @@ export async function getShortLink(key: string) { const getShareLinkCookies = cookieStorage.get('bitlauncher-share-link') const resolved: DubShareLinkResponse = !getShareLinkCookies ? await axios - .get(`https://api.dub.co/links/info?key=${key}`, { - headers: { - Authorization: `Bearer ${process.env.DUB_API_KEY}`, - 'Content-Type': 'application/json' - } - }) - .then(res => res.data) - : JSON.parse(getShareLinkCookies.value) as DubShareLinkResponse + .get(`https://api.dub.co/links/info?key=${key}`, { + headers: { + Authorization: `Bearer ${process.env.DUB_API_KEY}`, + 'Content-Type': 'application/json' + } + }) + .then(res => res.data) + : (JSON.parse(getShareLinkCookies.value) as DubShareLinkResponse) if (!resolved) throw new Error('Failed to retrieve short link') @@ -158,7 +160,6 @@ export interface DubShareLinkResponse { qrCode: string } - export type ActionState = { data?: string error?: string diff --git a/apps/webapp/app/[project]/auction/page.tsx b/apps/webapp/app/[project]/auction/page.tsx index 1ef31c21f..477e19fae 100644 --- a/apps/webapp/app/[project]/auction/page.tsx +++ b/apps/webapp/app/[project]/auction/page.tsx @@ -1,18 +1,12 @@ -import { AuctionBids } from '@/components/pages/auction/auction-bids' -import { AuctionOrders } from '@/components/pages/auction/auction-orders' -import { ClaimTokens } from '@/components/pages/auction/claim-tokens' -import { RegisterAddress } from '@/components/pages/auction/register-address' +import { AuctionBids } from '@/components/routes/auction/auction-bids' +import { AuctionOrders } from '@/components/routes/auction/auction-orders' +import { ClaimTokens } from '@/components/routes/auction/claim-tokens' +import { RegisterAddress } from '@/components/routes/auction/register-address' import { Tabs } from '@/components/ui/tabs' -import { ProjectWithAuction, projects } from '@/lib/projects' -import { Metadata } from 'next' +import { ProjectWithAuction, getProjectBySlug, projects } from '@/lib/projects' import { redirect } from 'next/navigation' import React from 'react' -export const metadata: Metadata = { - title: 'bitcash auction | bitlauncher', - description: 'Invest in the intelligent future and join the Ai/Web3 revolution now!', -} - const auctionPageClassNames = { tabCard: 'border border-primary/50 bg-card w-full h-[512px] overflow-y-auto scrollbar rounded-lg p-0 md:p-10' @@ -23,7 +17,7 @@ export default async function AuctionPage({ }: { params: { project: string } }) { - const p = await new Promise((resolve) => resolve(projects.find(p => p.slug == params.project))).then((p) => p as ProjectWithAuction) + const p = await getProjectBySlug(params.project) if (!p || (!p.auctionId && !p.registrationOpen)) redirect('/') const project = p as ProjectWithAuction @@ -74,7 +68,7 @@ export default async function AuctionPage({

-
+
) } diff --git a/apps/webapp/app/[project]/layout.tsx b/apps/webapp/app/[project]/layout.tsx index fa28edf1b..f0fbcee7b 100644 --- a/apps/webapp/app/[project]/layout.tsx +++ b/apps/webapp/app/[project]/layout.tsx @@ -1,41 +1,23 @@ -import { LayoutContainer } from '@/components/layout/layout-container' -import { ProjectHeader } from '@/components/pages/auction/project-header' -import { projects } from '@/lib/projects' +import { getProjectBySlug } from '@/lib/projects' import { Metadata } from 'next' -import React, { Suspense } from 'react' -export const metadata: Metadata = { - title: 'bitcash | bitlauncher', - description: - 'Invest in the intelligent future and join the Ai/Web3 revolution now!' +export default function ProjectPagesLayout({ children }: ProjectPageProps) { + return children } -export default function ProjectLayout({ - children, - params, - ...props -}: RootLayoutProps) { - const project = projects.find(p => p.slug === params.project) +export async function generateMetadata({ + params +}: ProjectPageProps): Promise { + const project = await getProjectBySlug(params.project) - return ( - - } - > - - - ) : null - } - > - {children} - - ) + return { + title: project?.title, + openGraph: { + images: [project?.heroImage || ''] + } + } } -interface RootLayoutProps { +interface ProjectPageProps { children: React.ReactNode params: { project: string } } diff --git a/apps/webapp/app/[project]/page.tsx b/apps/webapp/app/[project]/page.tsx index efa97d224..9fa85f312 100644 --- a/apps/webapp/app/[project]/page.tsx +++ b/apps/webapp/app/[project]/page.tsx @@ -1,15 +1,9 @@ -import { projects, ProjectWithAuction } from '@/lib/projects' +import { getProjectBySlug } from '@/lib/projects' import { redirect } from 'next/navigation' -import { cn } from '@/lib/utils' // Importing cn instead of tw +import { cn } from '@/lib/utils' -export default async function ProjectPage({ - params -}: { - params: { project: string } -}) { - const project = await new Promise(resolve => - resolve(projects.find(p => p.slug == params.project)) - ).then(p => p as ProjectWithAuction) +export default async function ProjectPage({ params }: ProjectPageProps) { + const project = await getProjectBySlug(params.project) if (!project) redirect('/') const projectContentObjectKeys = Object.keys(project.content) @@ -29,6 +23,7 @@ export default async function ProjectPage({ index % 2 === 0 ? 'backdrop-xl rounded-3xl bg-primary/70' : '' )} > + {/* */}

{projectContent[pcKey].title}

@@ -77,3 +72,7 @@ export default async function ProjectPage({ ) } + +type ProjectPageProps = { + params: { project: string } +} diff --git a/apps/webapp/app/how-it-works/page.tsx b/apps/webapp/app/about/page.tsx similarity index 57% rename from apps/webapp/app/how-it-works/page.tsx rename to apps/webapp/app/about/page.tsx index d8b83f539..7266c2868 100644 --- a/apps/webapp/app/how-it-works/page.tsx +++ b/apps/webapp/app/about/page.tsx @@ -1,84 +1,15 @@ -import Image from 'next/image' -import React from 'react' -import { cn } from '@/lib/utils' // Ensure this function is imported correctly +import { PageContent, PageContentData } from '@/components/shared/content' +import { Metadata } from 'next' -export default function HowItWorksPage() { +export default function AboutPage() { return ( -
- +
+
) } -function Content({ data }: { data: ContentData }) { - return ( - <> - {data.map((item, index) => { - switch (item.type) { - case 'h1': - case 'h2': - return ( - - {item.text} - - ) - case 'p': - return ( -

- {item.text} -

- ) - case 'ul': - return ( -
    - {item.items.map((li, liIndex) => ( -
  • {li}
  • - ))} -
- ) - case 'Image': - return ( - {item.alt} - ) - default: - return null - } - })} - - ) -} - -type ContentItem = - | { type: 'h1' | 'h2' | 'p'; text: string } - | { type: 'ul'; items: string[] } - | { - type: 'Image' - src: string - alt: string - width: number - height: number - layout: 'responsive' - className: string - } - -type ContentData = ContentItem[] - -const content: ContentData = [ +const content: PageContentData = [ { type: 'h1', text: 'How Bitlauncher Works' }, { type: 'p', @@ -119,3 +50,9 @@ const content: ContentData = [ text: 'These characteristics allow the platform to create a fair pricing dynamic in which both participants get either what they were willing to receive or more. Additionally the batched time nature of the auctions greatly reduces frontrunning and gas bidding wars, decreasing the amount of extracted value from auctioneers and bidders.' } ] + +export const metadata: Metadata = { + title: 'how it works | bitlauncher', + description: + 'Invest in the intelligent future and join the Ai/Web3 revolution now!' +} diff --git a/apps/webapp/app/globals.css b/apps/webapp/app/globals.css index f206d3469..457701910 100644 --- a/apps/webapp/app/globals.css +++ b/apps/webapp/app/globals.css @@ -99,14 +99,6 @@ /* 5. #140E40 4. #1F124C 3. #2F1758 2. #401D66 1. #512275 0.#060A35 */ @layer base { - * { - @apply border-border ring-offset-ring focus-within:ring-ring focus-within:ring-offset-ring focus-visible:ring-ring focus-visible:ring-offset-ring before:focus-visible:ring-ring before:focus-visible:ring-offset-ring; - } - a:focus-visible { - outline: 3px solid hsl(var(--ring)); - outline-offset: 2px; - outline-radius: 2px; - } body { @apply bg-background text-foreground; } @@ -157,7 +149,7 @@ input[type='number'] { } .newsletter-wrapper { - @apply container mx-auto flex flex-col items-center rounded-3xl px-0 backdrop-blur-xl sm:text-center; + @apply container flex flex-col items-center px-0 mx-auto rounded-3xl backdrop-blur-xl sm:text-center; background: url('/images/newsletter-bg.png') center center no-repeat; background-size: cover; @@ -240,3 +232,19 @@ input[type='number'] { opacity: 1; z-index: 100000 !important; } + +/* TYPOGRAPHY */ +.heading { + @apply text-3xl font-bold md:text-6xl; +} +.heading2 { + @apply text-2xl font-bold md:text-4xl; +} +.paragraph { + @apply text-base md:text-lg; +} + +/* LAYOUT */ +.content-container { + @apply flex flex-col w-full max-w-screen-lg gap-10 py-24 mx-auto; +} diff --git a/apps/webapp/app/how-it-works/layout.tsx b/apps/webapp/app/how-it-works/layout.tsx deleted file mode 100644 index ee9da97bf..000000000 --- a/apps/webapp/app/how-it-works/layout.tsx +++ /dev/null @@ -1,17 +0,0 @@ -import { LayoutContainer } from '@/components/layout/layout-container' -import { Metadata } from 'next' -import React from 'react' - -export const metadata: Metadata = { - title: 'how it works | bitlauncher', - description: - 'Invest in the intelligent future and join the Ai/Web3 revolution now!' -} - -export default function HowItWorksLayout({ - children -}: { - children: React.ReactNode -}) { - return {children} -} diff --git a/apps/webapp/app/layout.tsx b/apps/webapp/app/layout.tsx index d42fcdea3..8a1db674e 100644 --- a/apps/webapp/app/layout.tsx +++ b/apps/webapp/app/layout.tsx @@ -1,18 +1,23 @@ import '@/app/globals.css' +import { Footer } from '@/components/layout/footer' +import { Header } from '@/components/layout/header' + import { Providers } from '@/components/providers' import { cn } from '@/lib/utils' import { GoogleAnalytics } from '@next/third-parties/google' import '@rainbow-me/rainbowkit/styles.css' import { Metadata } from 'next' + import { Open_Sans } from 'next/font/google' import React from 'react' +import { Toaster } from 'react-hot-toast' const openSans = Open_Sans({ subsets: ['latin', 'latin-ext'], weight: ['400', '500', '600', '700', '800'] }) -export default function RootLayout({ children, ...props }: RootLayoutProps) { +export default function RootLayout({ children }: RootLayoutProps) { return ( - {children} +
+ +
+ {children} +
+
diff --git a/apps/webapp/app/page.tsx b/apps/webapp/app/page.tsx index fce3a083f..843a63c03 100644 --- a/apps/webapp/app/page.tsx +++ b/apps/webapp/app/page.tsx @@ -1,12 +1,9 @@ -import { LayoutContainer } from '@/components/layout/layout-container' -import { Upcoming } from '@/components/pages/home/upcoming' - -// console.log(_.groupBy(TestnetEasyAuction.abi.map(o => _.omit(o, ['inputs','outputs'])), 'type')) +import { Upcoming } from '@/components/routes/home/upcoming' +import { getProjects } from '@/lib/projects' export default async function IndexPage() { - return ( - - - - ) + // generate blur urls on server + const projects = await getProjects() + + return } diff --git a/apps/webapp/app/security/layout.tsx b/apps/webapp/app/security/layout.tsx deleted file mode 100644 index ed59e1564..000000000 --- a/apps/webapp/app/security/layout.tsx +++ /dev/null @@ -1,17 +0,0 @@ -import { LayoutContainer } from '@/components/layout/layout-container' -import { Metadata } from 'next' -import React from 'react' - -export const metadata: Metadata = { - title: 'security | bitlauncher', - description: - 'Invest in the intelligent future and join the Ai/Web3 revolution now!' -} - -export default function HowItWorksLayout({ - children -}: { - children: React.ReactNode -}) { - return {children} -} diff --git a/apps/webapp/app/security/page.tsx b/apps/webapp/app/security/page.tsx index 0f61926de..5ded8658a 100644 --- a/apps/webapp/app/security/page.tsx +++ b/apps/webapp/app/security/page.tsx @@ -1,35 +1,26 @@ import React from 'react' +import { Metadata } from 'next' +import { + PageContent, + PageContentData, + ContentTextType +} from '@/components/shared/content' export default function SecurityTips() { return ( -
-

- Security Recommendations for Bitlauncher Participants -

-

- Participating in auctions on Bitlauncher, a fork of Gnosis, requires - vigilance and awareness of various security threats. Here are some - crucial tips to help keep your investments safe: -

- {securityTips.map((tip, index) => ( -
-

- {index + 1}. {tip.title} -

-

{tip.content}

-
- ))} -
+
+
) } -interface SecurityTip { - title: string - content: string +export const metadata: Metadata = { + title: 'security | bitlauncher', + description: + 'Invest in the intelligent future and join the Ai/Web3 revolution now!' } -const securityTips: SecurityTip[] = [ +const securityTips = [ { title: 'Beware of Phishing Attacks', content: @@ -66,3 +57,17 @@ const securityTips: SecurityTip[] = [ 'If you encounter any suspicious activity or believe you are a victim of a scam, contact the official Bitlauncher support immediately.' } ] as const + +// Define the content using mapped security tips +const content: PageContentData = [ + { type: 'h1', text: 'Security Recommendations for Bitlauncher Participants' }, + { + type: 'p', + text: 'Participating in auctions on Bitlauncher, a fork of Gnosis, requires vigilance and awareness of various security threats. Here are some crucial tips to help keep your investments safe:' + }, + ...securityTips.flatMap((tip, index) => [ + { type: 'h2' as ContentTextType, text: `${index + 1}. ${tip.title}` }, + { type: 'p' as ContentTextType, text: tip.content } + ]) + // { type: 'hr' } +] diff --git a/apps/webapp/app/terms/page.tsx b/apps/webapp/app/terms/page.tsx new file mode 100644 index 000000000..f00fe82ef --- /dev/null +++ b/apps/webapp/app/terms/page.tsx @@ -0,0 +1,20 @@ +import { PageContent, PageContentData } from '@/components/shared/content' +import { Metadata } from 'next' + +export default function TermsPage() { + return ( +
+ +
+ ) +} + +const content: PageContentData = [ + { type: 'h1', text: ' Terms & Privacy Policy' } +] + +export const metadata: Metadata = { + title: 'terms and conditions | bitlauncher', + description: + 'Invest in the intelligent future and join the Ai/Web3 revolution now!' +} diff --git a/apps/webapp/app/wallet/layout.tsx b/apps/webapp/app/wallet/layout.tsx deleted file mode 100644 index 66b822bed..000000000 --- a/apps/webapp/app/wallet/layout.tsx +++ /dev/null @@ -1,17 +0,0 @@ -import { LayoutContainer } from '@/components/layout/layout-container' -import { Metadata } from 'next' -import React from 'react' - -export default function WalletLayout({ - children -}: { - children: React.ReactNode -}) { - return {children} -} - -export const metadata: Metadata = { - title: 'wallet | bitlauncher', - description: - 'Invest in the intelligent future and join the Ai/Web3 revolution now!' -} diff --git a/apps/webapp/app/wallet/page.tsx b/apps/webapp/app/wallet/page.tsx index 1a4ba74bc..60df047b1 100644 --- a/apps/webapp/app/wallet/page.tsx +++ b/apps/webapp/app/wallet/page.tsx @@ -1,35 +1,42 @@ -import { AuctionOrders } from '@/components/pages/auction/auction-orders' -import { DepositCard } from '@/components/pages/wallet/deposit-card' -import { TransactionsTable } from '@/components/pages/wallet/transactions-table' -import { BalancesTable } from '@/components/pages/wallet/balances-table' -import { WithdrawCard } from '@/components/pages/wallet/withdraw-card' -import React from 'react' +import { AuctionOrders } from '@/components/routes/auction/auction-orders' +import { DepositCard } from '@/components/routes/wallet/deposit-card' +import { TransactionsTable } from '@/components/routes/wallet/transactions-table' +import { BalancesTable } from '@/components/routes/wallet/balances-table' +import { WithdrawCard } from '@/components/routes/wallet/withdraw-card' +import { Metadata } from 'next' +import { Suspense } from 'react' export default function WalletPage() { return (
-
+

Wallet

-
+
- Loading ...
}> + Loading ...
}> - +
- Loading ...
}> + Loading ...
}> - +
) } + +export const metadata: Metadata = { + title: 'wallet | bitlauncher', + description: + 'Invest in the intelligent future and join the Ai/Web3 revolution now!' +} diff --git a/apps/webapp/components/dialogs/esr-dialog.tsx b/apps/webapp/components/dialogs/esr-dialog.tsx index d0954b96b..0a4565391 100644 --- a/apps/webapp/components/dialogs/esr-dialog.tsx +++ b/apps/webapp/components/dialogs/esr-dialog.tsx @@ -116,7 +116,6 @@ function EsrDialog() { const searchParams = useSearchParams() const { open, toggleOpen, esr } = useSignatureRequest() const code = esr?.encode() || '' - console.log('esr code', code) // never show the qr on mobile or bitcash explorer const hideQr = @@ -173,4 +172,3 @@ const SigningRequestProvider = ({ children }: { children: ReactNode }) => { } export { SigningRequestProvider, useSignatureRequest } - diff --git a/apps/webapp/components/layout/footer.tsx b/apps/webapp/components/layout/footer.tsx new file mode 100644 index 000000000..905e09015 --- /dev/null +++ b/apps/webapp/components/layout/footer.tsx @@ -0,0 +1,14 @@ +import Participate from '@/components/layout/participate' +import dynamic from 'next/dynamic' + +const DynamicNewsletter = dynamic(() => import('./newsletter') as any, { + ssr: false +}) +export function Footer() { + return ( +
+ + +
+ ) +} diff --git a/apps/webapp/components/layout/header.tsx b/apps/webapp/components/layout/header.tsx index 5df7d2cc5..66228e68d 100644 --- a/apps/webapp/components/layout/header.tsx +++ b/apps/webapp/components/layout/header.tsx @@ -1,306 +1,51 @@ 'use client' -import Link, { LinkProps } from 'next/link' +import Link from 'next/link' import * as React from 'react' - import { IconBitlauncher, IconDiscord } from '../ui/icons' import { HeaderButtons } from './header-buttons' - import { buttonVariants } from '@/components/ui/button' -import { useSession } from '@/hooks/use-session' import { cn } from '@/lib/utils' -import { - AnimatePresence, - motion, - useMotionValueEvent, - useScroll -} from 'framer-motion' -import { LucideChevronRight } from 'lucide-react' - -export function Header({ className, containerRef }: { className?: string, containerRef: React.RefObject }) { - const { session } = useSession() - const { scrollYProgress } = useScroll({ - container: containerRef - }) - const [visible, setVisible] = React.useState(true) - const [largeHeader, setLargeHeader] = React.useState(true) - const [domLoaded, setDomLoaded] = React.useState(false) - const [activeMenu, setActiveMenu] = React.useState('') - - useMotionValueEvent(scrollYProgress, 'change', current => { - // Check if current is not undefined and is a number - if (typeof current === 'number') { - if (!domLoaded) setDomLoaded(true) - - let direction = current! - scrollYProgress.getPrevious()! - const isLargeHeader = scrollYProgress.get() <= 0.05 - - if (isLargeHeader !== largeHeader) { - setLargeHeader(isLargeHeader) - } - - if (scrollYProgress.get() <= 0.05) { - setVisible(true) - } else { - if ( - (direction === 1 && scrollYProgress.get() === 1) || - current === 1 || - direction <= 0.00 - ) { - setVisible(true) - } else { - setVisible(false) - } - } - } - }) - - React.useEffect(() => { - const handleClick = (e: MouseEvent) => { - const menuDropdownContainerNode = document.getElementById(activeMenu) - if ( - activeMenu && - menuDropdownContainerNode && - !menuDropdownContainerNode?.contains(e.target as Node) - ) { - setActiveMenu('') - } - } - - document.addEventListener('click', handleClick) - - return () => { - document.removeEventListener('click', handleClick) - } - }, [activeMenu]) - - const connectItem = session?.account || 'login' - const motionHeaderAnimationProps = { - initial: { - opacity: 1, - y: !visible || !domLoaded ? 0 : -100 - }, - animate: { - y: visible ? 0 : -100, - opacity: visible ? 1 : 0 - }, - transition: { - duration: 0.2 - } - } +import { Suspense } from 'react' +export function Header() { return ( - - } - > - - +
+ + + +
+ + About + + + Security + +
+
+ +
+ -
-
- setActiveMenu('')} - largeHeader={largeHeader} - mobileOnly - /> - setActiveMenu('')} - largeHeader={largeHeader} - desktopOnly - /> - {/* - */} -
- -
- {/* setActiveMenu('')} - desktopOnly - /> */} - - setActiveMenu('')} - /> - setActiveMenu('')} - /> - -
- -
- - - - Discord - - - {!session?.account ? ( - - ) : ( - - }> - - - - )} -
-
- - - {/* // ? header anchor */} -
- - ) -} - -function HeaderLink({ - text, - largeHeader, - desktopOnly, - mobileOnly, - ...props -}: HeaderLinkProps) { - return ( - - {text.match(/(bitlauncher|home)/) ? ( - - ) : text} - - ) -} - -function MenuItem({ - setActive, - active, - item, - children -}: { - setActive: (item: string) => void - active: string | null - item: string - children?: React.ReactNode -}) { - return ( -
setActive('')}> - setActive(active === item ? '' : item)} - onMouseEnter={() => setActive(active === item ? '' : item)} - layout - > - {item} - - - - - - {active !== null && ( - - {active === item && ( -
- - - {children} - - -
- )} -
- )} -
+ + Discord + + + {/* Login
}> + + */} +
) } - -const transition = { - type: 'spring', - mass: 0.5, - damping: 11.5, - stiffness: 100, - restDelta: 0.001, - restSpeed: 0.001 -} - -interface HeaderLinkProps extends LinkProps { - text: string - largeHeader?: boolean - desktopOnly?: boolean - mobileOnly?: boolean -} diff --git a/apps/webapp/components/layout/layout-container.tsx b/apps/webapp/components/layout/layout-container.tsx deleted file mode 100644 index abcf94cd4..000000000 --- a/apps/webapp/components/layout/layout-container.tsx +++ /dev/null @@ -1,63 +0,0 @@ -'use client' - -import { ErrorModal } from '@/components/dialogs/error-dialog' -import { Header } from '@/components/layout/header' -import Participate from '@/components/pages/home/participate' -import { BackgroundMovingGradient } from '@/components/ui/background-moving-gradient' -import { cn } from '@/lib/utils' -import dynamic from 'next/dynamic' -import { useRef } from 'react' -import { Toaster } from 'react-hot-toast' - -const DynamicNewsletter = dynamic( - () => import('../pages/home/newsletter') as any, - { - ssr: false - } -) - -export function LayoutContainer({ - children, - projectHeader -}: { - children: React.ReactNode - projectHeader?: React.ReactNode -}) { - const containerRef = useRef(null) - - return ( - -
- -
- {projectHeader ? ( -
-
- {projectHeader} -
- -
{children}
-
- ) : ( -
- {children} -
- )} -
- - -
- - {/* */} -
- - ) -} diff --git a/apps/webapp/components/pages/home/newsletter.tsx b/apps/webapp/components/layout/newsletter.tsx similarity index 60% rename from apps/webapp/components/pages/home/newsletter.tsx rename to apps/webapp/components/layout/newsletter.tsx index f8986476d..4c87b9e02 100644 --- a/apps/webapp/components/pages/home/newsletter.tsx +++ b/apps/webapp/components/layout/newsletter.tsx @@ -25,8 +25,8 @@ type SubcriptionFormData = z.infer export default function Newsletter() { const { register, setValue, watch, formState } = useForm(formOptions) - const [state, onSubmit] = useAsyncFn(async (formData: FormData) => - await subscribeToNewsletter(formData) + const [state, onSubmit] = useAsyncFn( + async (formData: FormData) => await subscribeToNewsletter(formData) ) const { pending } = useFormStatus() @@ -34,73 +34,78 @@ export default function Newsletter() { const email = watch('email') const isEmailValid = !formState.errors.email && email && email.match(/.+@.+\..+/) - const isReadyToSubmit = (recaptchaToken && !Boolean(formState.errors.email) && isEmailValid) || pending + const isReadyToSubmit = + (recaptchaToken && !Boolean(formState.errors.email) && isEmailValid) || + pending const newsletterIconResponse = () => { if (pending || state.loading) return ( - - + + ) if (state.value && state.value.data) return ( - + ) return ( - - + + ) } return (
-
-
+
+

Sign up for our newsletter

- To stay up to date with our progress, announcements and exclusive discounts, sign up with your email below: + To stay up to date with our progress, announcements and exclusive + discounts, sign up with your email below:

{formState.errors.email || state.value?.error || state?.error ? ( -

+

{'✖ '} {formState.errors.email?.message} {state.value?.error} {state?.error?.message}

- ) : null} {state.value && state.value?.data ? ( -

- {'✔ '}{state.value.data} +

+ {'✔ '} + {state.value.data}

) : null} @@ -124,19 +129,22 @@ export default function Newsletter() { variant="accent" size="icon" radius="full" - className="relative rounded-full m-0 size-[48px]" + className="relative m-0 size-[48px] rounded-full" disabled={!isReadyToSubmit} > {newsletterIconResponse()}
-
+
- + - - Privacy Policy & TOS + + Terms & Privacy Policy
diff --git a/apps/webapp/components/layout/participate.tsx b/apps/webapp/components/layout/participate.tsx new file mode 100644 index 000000000..883f4a190 --- /dev/null +++ b/apps/webapp/components/layout/participate.tsx @@ -0,0 +1,82 @@ +import { BitcashAccessButton } from '@/components/layout/bitcash-access' +import { buttonVariants } from '@/components/ui/button' +import { IconDownRightArrow } from '@/components/ui/icons' +import { cn } from '@/lib/utils' +import Link from 'next/link' +import React from 'react' + +export default function Participate() { + return ( +
+

+ {textContent.stepsInfo} +

+ +
+ {textContent.steps.map((step, index) => ( +
+

+ {step.title} +

+
+

+ {step.description} +

+ {!step.title.includes('Complete KYC') ? ( + + + + ) : ( + + )} +
+
+ ))} +
+
+ ) +} + +const textContent = { + // title: 'Join The AI and Web3 Revolution With Bitlauncher.', + stepsInfo: 'Only 3 Steps Needed', + steps: [ + { + title: 'Sign Up And\nComplete KYC', + description: 'Complete a Bitcash KYC to ensure your participation.', + href: 'https://app.bitcash.org/?share=JVnL7qzrU' + }, + { + title: 'Get USD\nCredits', + description: + 'Deposit USDT on any chain to get USD Credit Tokens on EOS EVM', + href: '#' + }, + { + title: 'Place\nBids', + description: + 'Select a project from the Auctions list and place your bids.', + href: '#' + } + ] +} diff --git a/apps/webapp/components/layout/theme-toggle.tsx b/apps/webapp/components/layout/theme-toggle.tsx deleted file mode 100644 index 67d3f1a2c..000000000 --- a/apps/webapp/components/layout/theme-toggle.tsx +++ /dev/null @@ -1,31 +0,0 @@ -'use client' - -import * as React from 'react' -import { useTheme } from 'next-themes' - -import { Button } from '@/components/ui/button' -import { IconMoon, IconSun } from '@/components/ui/icons' - -export function ThemeToggle() { - const { setTheme, theme } = useTheme() - const [_, startTransition] = React.useTransition() - - return ( - - ) -} diff --git a/apps/webapp/components/pages/auction/project-header.tsx b/apps/webapp/components/pages/auction/project-header.tsx deleted file mode 100644 index c037ac62d..000000000 --- a/apps/webapp/components/pages/auction/project-header.tsx +++ /dev/null @@ -1,270 +0,0 @@ -'use client' - -import { generateShortLink } from "@/actions" -import { AuctionInfo } from "@/components/pages/auction/auction-info" -import { Countdown } from "@/components/pages/auction/countdown" -import { Button, buttonVariants } from "@/components/ui/button" -import { IconDiscord, IconTelegram, IconTwitterX } from "@/components/ui/icons" -import { LazyImage } from "@/components/ui/lazy-image" -import { Project, ProjectWithAuction } from "@/lib/projects" -import { cn, motionProps, scrollToElement } from "@/lib/utils" -import { AnimatePresence, motion } from 'framer-motion' -import { LucideCheck, LucideChevronDown, LucideLoader2, LucideShare, LucideX } from "lucide-react" -import Image from "next/image" -import Link from "next/link" -import { usePathname } from "next/navigation" -import React from "react" - -const buttonLinkClassName = cn( - buttonVariants({ - variant: 'outline', - size: 'icon' - }), - "relative rounded-full p-3.5 size-auto" -) - -export function ProjectHeader({ projectData }: { projectData: Project }) { - const [copied, setCopied] = React.useState('') - const projectDataRef = React.useRef(null) - const pathname = usePathname() - const isAuctionPage = Boolean(pathname.match(/\/auction$/)) - - React.useEffect(() => { - projectDataRef.current = document.getElementById('project-details') - }, [projectDataRef.current]) - - React.useEffect(() => { - if (copied) { - const timeout = setTimeout(() => { - setCopied('') - }, 5000) - - return () => clearTimeout(timeout) - } - }, [copied]) - - const copyProjectShareLink = async () => { - setCopied('loading') - try { - const { data, error } = await generateShortLink(projectData.linkPath) - - if (error || !data) throw new Error(error) - - const shortLink = data.shortLink - - navigator.clipboard.writeText(shortLink) - setCopied('Share link copied!') - } catch (error) { - console.error('Failed to copy share link: ', error) - setCopied('Failed to copy share link. Try again!') - } - } - - const copyShareLinkIconResponse = (copied: string) => { - switch (copied) { - case 'loading': - return ( - - - - ) - case 'Share link copied!': - return ( - - - - ) - case 'Failed to copy share link. Try again!': - default: - return ( - - - - ) - } - } - - const isAuctionClosed = projectData.badgeText === 'AUCTION CLOSED' - - return ( -
-
- Project Image -
- - - - -
-

- {projectData.title} - - - {projectData.pitch} - -

- -
-

Media & Share

-
- - - - - - - - - - -
-
-
-
- - -

Auction Data

-
    -
  • - Fundraising Goal - {projectData.fundraiseGoal} -
  • -
  • - Max Allocation - {projectData.maxAllocation} -
  • -
- - {isAuctionPage ? ( - <> - - {projectData.auctionId && !isAuctionClosed ? ( - - ) : null} - - ) : ( -
-

- {projectData.registrationOpen - ? 'Register to participate in the auction!' - : projectData.auctionClosed - ? 'Auction is closed. You can now claim your tokens.' - : 'Join the auction and be a part of our project. The countdown has begun!'} -

- - {projectData.registrationOpen - ? 'Register Now!' - : projectData.auctionClosed - ? 'Claims your Tokens' - : 'Participate Now'} - -
- )} -
- - -
-
- ) -} diff --git a/apps/webapp/components/pages/home/auction-card.tsx b/apps/webapp/components/pages/home/auction-card.tsx deleted file mode 100644 index 88f116b53..000000000 --- a/apps/webapp/components/pages/home/auction-card.tsx +++ /dev/null @@ -1,152 +0,0 @@ -'use client' - -import { Button, buttonVariants } from '@/components/ui/button' -import { IconDiscord, IconDownRightArrow, IconTelegram, IconTwitterX } from '@/components/ui/icons' -import { LazyImage } from '@/components/ui/lazy-image' -import { Project } from '@/lib/projects' -import { cn } from '@/lib/utils' -import { motion } from 'framer-motion' -import Link from 'next/link' -import React from 'react' - -export function AuctionCard(props: Project) { - const { - title, - pitch, - fundraiseGoal, - maxAllocation, - thumbnailImage, - badgeText, - linkPath, - twitterUsername, - discordServer, - telegramGroup - } = props - - const isAuctionRestricted = badgeText.match(/(AUCTION CLOSED|FUTURE|COMING SOON)/) - const isFutureOrComingAuction = badgeText.match(/(FUTURE|COMING SOON)/) - const buttonLinkClassName = cn( - "relative rounded-full p-3.5 size-auto" - ) - - const redirectToExternalRoute = (link: string) => { - window.open(link, '_blank') - } - - return ( - - -
- - - {badgeText} - -
-
-

- {title} -

-

- {pitch} -

-
-
-
    -
  • - Fundraising Goal - {fundraiseGoal} -
  • -
  • - Max Allocation - {maxAllocation} -
  • -
-
-
- - - -
- {/* TODO: Ask about auction availability */} - {!isAuctionRestricted && ( - - - - )} - {/* {isFutureOrComingAuction && ( -

- This auction is currently unavailable. Check out later! -

- )} */} -
-
-
- - ) -} diff --git a/apps/webapp/components/pages/home/participate.tsx b/apps/webapp/components/pages/home/participate.tsx deleted file mode 100644 index 32382e43d..000000000 --- a/apps/webapp/components/pages/home/participate.tsx +++ /dev/null @@ -1,183 +0,0 @@ -'use client' - -import { BitcashAccessButton } from '@/components/layout/bitcash-access' -import { buttonVariants } from '@/components/ui/button' -import { IconDownRightArrow } from '@/components/ui/icons' -import { cn } from '@/lib/utils' -import { AnimatePresence, motion, useInView } from 'framer-motion' -import Link from 'next/link' -import React from 'react' - -function WalletIcon({ className }: IconProps) { - return ( - - - - - - ) -} - -export default function Participate() { - const stepsInfoRef = React.useRef(null) - const showStepsInfo = useInView(stepsInfoRef, { - once: true, - margin: '-350px' - }) - - return ( -
-

- - {showStepsInfo && ( - - {textContent.stepsInfo} - - )} - -

- -
- - {textContent.steps.map((step, index) => ( - -

- {step.title} -

-
-

- {step.description} -

- {!step.title.includes('Complete KYC') ? ( - - - - ) : ( - - )} -
-
- ))} -
-
-
- ) -} - -const textContent = { - // title: 'Join The AI and Web3 Revolution With Bitlauncher.', - stepsInfo: - 'Only 3 Steps Needed', - steps: [ - { - title: 'Sign Up And\nComplete KYC', - description: 'Complete a Bitcash KYC to ensure your participation.', - href: 'https://app.bitcash.org/?share=JVnL7qzrU' - }, - { - title: 'Get USD\nCredits', - description: - 'Deposit USDT on any chain to get USD Credit Tokens on EOS EVM', - href: '#' - }, - { - title: 'Place\nBids', - description: - 'Select a project from the Auctions list and place your bids.', - href: '#' - } - ] -} - -interface IconProps { - className?: string -} - -function FileEditIcon({ className }: IconProps) { - return ( - - - - - - ) -} - -function HeartHandshakeIcon({ className }: IconProps) { - return ( - - - - - - - ) -} diff --git a/apps/webapp/components/pages/home/upcoming.tsx b/apps/webapp/components/pages/home/upcoming.tsx deleted file mode 100644 index 3c83c5103..000000000 --- a/apps/webapp/components/pages/home/upcoming.tsx +++ /dev/null @@ -1,97 +0,0 @@ -'use client' - -import { projects } from '@/lib/projects' -import { AnimatePresence, MotionProps, motion, useInView } from 'framer-motion' -import React from 'react' -import { AuctionCard } from './auction-card' - -export function Upcoming() { - const upcomingCardsContainerRef = React.useRef(null) - const isUpcomingCardsContainerVisible = useInView(upcomingCardsContainerRef, { - once: true - }) - - return ( -
- -

- - {textContent.eyebrow} - - - {textContent.title.split('AI/WEB3')[0]} - {' '} - AI/WEB3 - {'\n'} - {textContent.title.split('AI/WEB3')[1]} - -

- - Upcoming Auctions - -
- {isUpcomingCardsContainerVisible && - projects.map((item, index) => ( - - - - ))} -
-
-
- ) -} - -// Slid down animation with a fade in effect and small bouncing effect -const auctionCardAnimationProps: (index: number) => MotionProps = ( - index: number -) => ({ - initial: { opacity: 0, y: -40 }, - animate: { opacity: 1, y: 0 }, - exit: { opacity: 0, y: 40 }, - transition: { - type: 'spring', - bounce: 0.4, - duration: 0.75, - delay: (index + 1) * 0.62 - } -}) - -// Fast fade in effect -const upcomingAuctionsAnimationProps: MotionProps = { - initial: { opacity: 0 }, - animate: { opacity: 1 }, - exit: { opacity: 0 }, - transition: { duration: 0.14 } -} - -const textContent = { - title: 'JOIN THE AI/WEB3 REVOLUTION NOW', - eyebrow: "Invest In The Intelligent Future" -} diff --git a/apps/webapp/components/pages/auction/auction-bids.tsx b/apps/webapp/components/routes/auction/auction-bids.tsx similarity index 100% rename from apps/webapp/components/pages/auction/auction-bids.tsx rename to apps/webapp/components/routes/auction/auction-bids.tsx diff --git a/apps/webapp/components/pages/auction/auction-debug.tsx b/apps/webapp/components/routes/auction/auction-debug.tsx similarity index 100% rename from apps/webapp/components/pages/auction/auction-debug.tsx rename to apps/webapp/components/routes/auction/auction-debug.tsx diff --git a/apps/webapp/components/pages/auction/auction-info.tsx b/apps/webapp/components/routes/auction/auction-info.tsx similarity index 100% rename from apps/webapp/components/pages/auction/auction-info.tsx rename to apps/webapp/components/routes/auction/auction-info.tsx diff --git a/apps/webapp/components/pages/auction/auction-orders.tsx b/apps/webapp/components/routes/auction/auction-orders.tsx similarity index 100% rename from apps/webapp/components/pages/auction/auction-orders.tsx rename to apps/webapp/components/routes/auction/auction-orders.tsx diff --git a/apps/webapp/components/pages/auction/claim-tokens.tsx b/apps/webapp/components/routes/auction/claim-tokens.tsx similarity index 100% rename from apps/webapp/components/pages/auction/claim-tokens.tsx rename to apps/webapp/components/routes/auction/claim-tokens.tsx diff --git a/apps/webapp/components/pages/auction/countdown.tsx b/apps/webapp/components/routes/auction/countdown.tsx similarity index 100% rename from apps/webapp/components/pages/auction/countdown.tsx rename to apps/webapp/components/routes/auction/countdown.tsx diff --git a/apps/webapp/components/routes/auction/project-header.tsx b/apps/webapp/components/routes/auction/project-header.tsx new file mode 100644 index 000000000..8fc1cd1cb --- /dev/null +++ b/apps/webapp/components/routes/auction/project-header.tsx @@ -0,0 +1,258 @@ +'use client' +import { generateShortLink } from '@/actions' +import { AuctionInfo } from '@/components/routes/auction/auction-info' +import { Countdown } from '@/components/routes/auction/countdown' +import { Button, buttonVariants } from '@/components/ui/button' +import { IconDiscord, IconTelegram, IconTwitterX } from '@/components/ui/icons' +import { Project, ProjectWithAuction } from '@/lib/projects' +import { cn, motionProps, scrollToElement } from '@/lib/utils' +import { AnimatePresence, motion } from 'framer-motion' + +import { + LucideCheck, + LucideChevronDown, + LucideLoader2, + LucideShare, + LucideX +} from 'lucide-react' +import Image from 'next/image' +import Link from 'next/link' +import { usePathname } from 'next/navigation' +import { useEffect, useRef, useState } from 'react' + +const buttonLinkClassName = cn( + buttonVariants({ + variant: 'outline', + size: 'icon' + }), + 'relative size-auto rounded-full p-3.5' +) + +export function ProjectHeader({ project }: { project: Project }) { + const [copied, setCopied] = useState('') + const projectRef = useRef(null) + const pathname = usePathname() + const isAuctionPage = Boolean(pathname.match(/\/auction$/)) + + // TODO: separate this logic on a client component + useEffect(() => { + projectRef.current = document.getElementById('project-details') + }, [projectRef.current]) + + useEffect(() => { + if (copied) { + const timeout = setTimeout(() => { + setCopied('') + }, 5000) + + return () => clearTimeout(timeout) + } + }, [copied]) + + const copyProjectShareLink = async () => { + setCopied('loading') + try { + const { data, error } = await generateShortLink(project.linkPath) + + if (error || !data) throw new Error(error) + + const shortLink = data.shortLink + + navigator.clipboard.writeText(shortLink) + setCopied('Share link copied!') + } catch (error) { + console.error('Failed to copy share link: ', error) + setCopied('Failed to copy share link. Try again!') + } + } + + const copyShareLinkIconResponse = (copied: string) => { + switch (copied) { + case 'loading': + return ( + + + + ) + case 'Share link copied!': + return ( + + + + ) + case 'Failed to copy share link. Try again!': + default: + return ( + + + + ) + } + } + + const isAuctionClosed = project.badgeText === 'AUCTION CLOSED' + + return ( +
+
+ {project.title} +
+
+ Project Image + +
+

+ {project.title} + + + {project.pitch} + +

+ +
+

Media & Share

+
+ + + + + + + + + + +
+
+
+ +
+

Auction Data

+
    +
  • + Fundraising Goal + {project.fundraiseGoal} +
  • +
  • + Max Allocation + {project.maxAllocation} +
  • +
+ + {isAuctionPage ? ( + <> + + {project.auctionId && !isAuctionClosed ? ( + + ) : null} + + ) : ( +
+

+ {project.registrationOpen + ? 'Register to participate in the auction!' + : project.auctionClosed + ? 'Auction is closed. You can now claim your tokens.' + : 'Join the auction and be a part of our project. The countdown has begun!'} +

+ + {project.registrationOpen + ? 'Register Now!' + : project.auctionClosed + ? 'Claims your Tokens' + : 'Participate Now'} + +
+ )} +
+ + +
+
+
+ ) +} diff --git a/apps/webapp/components/pages/auction/register-address.tsx b/apps/webapp/components/routes/auction/register-address.tsx similarity index 94% rename from apps/webapp/components/pages/auction/register-address.tsx rename to apps/webapp/components/routes/auction/register-address.tsx index d455f9ab6..1af20e9f1 100644 --- a/apps/webapp/components/pages/auction/register-address.tsx +++ b/apps/webapp/components/routes/auction/register-address.tsx @@ -5,7 +5,7 @@ import { Button } from '@/components/ui/button' import { useSession } from '@/hooks/use-session' import { supabase } from '@/lib/supabase' import { formatAddress, fromEntries } from 'smartsale-lib' -import { registerAddressSchema } from '@/lib/validators' +import { RegisterAddressSchema } from '@/lib/validators' import { useEffect, useState } from 'react' import { useFormStatus } from 'react-dom' import { useAccount } from 'wagmi' @@ -23,7 +23,7 @@ export function RegisterAddress({ projectId }: { projectId: number }) { ...o, project_id: parseInt(o.project_id) } - const { success } = registerAddressSchema.safeParse(data) + const { success } = RegisterAddressSchema.safeParse(data) if (!success) alert('invalid address or project id') await registerAddress(formData) diff --git a/apps/webapp/components/routes/home/auction-card.tsx b/apps/webapp/components/routes/home/auction-card.tsx new file mode 100644 index 000000000..97a8857ba --- /dev/null +++ b/apps/webapp/components/routes/home/auction-card.tsx @@ -0,0 +1,154 @@ +'use client' + +import { Button, buttonVariants } from '@/components/ui/button' +import { + IconDiscord, + IconDownRightArrow, + IconTelegram, + IconTwitterX +} from '@/components/ui/icons' +import { Project } from '@/lib/projects' +import { cn } from '@/lib/utils' +import { motion } from 'framer-motion' +import Image from 'next/image' +import Link from 'next/link' +import React from 'react' + +export function AuctionCard(props: Project) { + const { + title, + pitch, + fundraiseGoal, + maxAllocation, + thumbnailImage, + badgeText, + linkPath, + twitterUsername, + discordServer, + telegramGroup, + thumbnailImageBlurDataURL + } = props + + const isAuctionRestricted = badgeText.match( + /(AUCTION CLOSED|FUTURE|COMING SOON)/ + ) + const isFutureOrComingAuction = badgeText.match(/(FUTURE|COMING SOON)/) + const buttonLinkClassName = 'relative size-auto rounded-full p-3.5' + + return ( + +
+ thumbnail + + {badgeText} + +
+ +
+

+ {title} +

+

+ {pitch} +

+
+
+
    +
  • + Fundraising Goal + {fundraiseGoal} +
  • +
  • + Max Allocation + {maxAllocation} +
  • +
+
+
+ + + +
+ + {!isAuctionRestricted && ( + + + + )} + {/* {isFutureOrComingAuction && ( +

+ This auction is currently unavailable. Check out later! +

+ )} */} +
+
+ + ) +} + +const redirectToExternalRoute = (link: string) => { + window.open(link, '_blank') +} diff --git a/apps/webapp/components/routes/home/upcoming.tsx b/apps/webapp/components/routes/home/upcoming.tsx new file mode 100644 index 000000000..7757956f2 --- /dev/null +++ b/apps/webapp/components/routes/home/upcoming.tsx @@ -0,0 +1,44 @@ +import { Project } from '@/lib/projects' +import { AuctionCard } from './auction-card' + +export function Upcoming({ projects }: { projects: Project[] }) { + return ( +
+

+ + {textContent.eyebrow} + + + {textContent.title.split('AI/WEB3')[0]}{' '} + AI/WEB3 + {'\n'} + {textContent.title.split('AI/WEB3')[1]} + +

+

+ Upcoming Auctions +

+
+ {projects.map((item, index) => ( +
+ +
+ ))} +
+
+ ) +} + +const textContent = { + title: 'JOIN THE AI/WEB3 REVOLUTION NOW', + eyebrow: 'Invest In The Intelligent Future' +} diff --git a/apps/webapp/components/pages/wallet/balances-table.tsx b/apps/webapp/components/routes/wallet/balances-table.tsx similarity index 100% rename from apps/webapp/components/pages/wallet/balances-table.tsx rename to apps/webapp/components/routes/wallet/balances-table.tsx diff --git a/apps/webapp/components/pages/wallet/deposit-card.tsx b/apps/webapp/components/routes/wallet/deposit-card.tsx similarity index 100% rename from apps/webapp/components/pages/wallet/deposit-card.tsx rename to apps/webapp/components/routes/wallet/deposit-card.tsx diff --git a/apps/webapp/components/pages/wallet/transactions-table.tsx b/apps/webapp/components/routes/wallet/transactions-table.tsx similarity index 100% rename from apps/webapp/components/pages/wallet/transactions-table.tsx rename to apps/webapp/components/routes/wallet/transactions-table.tsx diff --git a/apps/webapp/components/pages/wallet/withdraw-card.tsx b/apps/webapp/components/routes/wallet/withdraw-card.tsx similarity index 100% rename from apps/webapp/components/pages/wallet/withdraw-card.tsx rename to apps/webapp/components/routes/wallet/withdraw-card.tsx diff --git a/apps/webapp/components/shared/content.tsx b/apps/webapp/components/shared/content.tsx new file mode 100644 index 000000000..2ab6bda65 --- /dev/null +++ b/apps/webapp/components/shared/content.tsx @@ -0,0 +1,71 @@ +import Image from 'next/image' +import { cn } from '@/lib/utils' + +// render standard content elements +export function PageContent({ data }: { data: PageContentData }) { + return ( + <> + {data.map((item, index) => { + switch (item.type) { + case 'h1': + case 'h2': + return ( + + {item.text} + + ) + case 'p': + return ( +

+ {item.text} +

+ ) + case 'ul': + return ( +
    + {item.items.map((li, liIndex) => ( +
  • {li}
  • + ))} +
+ ) + case 'Image': + return ( + {item.alt} + ) + default: + return null + } + })} + + ) +} + +// Define a type for the 'type' property used in ContentItem +export type ContentType = 'h1' | 'h2' | 'p' | 'ul' | 'Image' | 'hr' +export type ContentTextType = 'h1' | 'h2' | 'p' +// Update the original ContentItem definition to use ContentType +export type ContentItem = + | { type: ContentTextType; text: string } + | { type: 'ul'; items: string[] } + | { + type: 'Image' + src: string + alt: string + width: number + height: number + layout: 'responsive' + className: string + } + +export type PageContentData = ContentItem[] diff --git a/apps/webapp/components/ui/background-moving-gradient.tsx b/apps/webapp/components/ui/background-moving-gradient.tsx deleted file mode 100644 index e4c7c6437..000000000 --- a/apps/webapp/components/ui/background-moving-gradient.tsx +++ /dev/null @@ -1,161 +0,0 @@ -'use client' -import { cn } from '@/lib/utils' -import { useEffect, useRef, useState } from 'react' - -export const BackgroundMovingGradient = ({ - size = '80%', - blendingValue = 'hard-light', - children, - className, - interactive = true, - containerClassName -}: { - gradientBackgroundStart?: string - gradientBackgroundEnd?: string - firstColor?: string - secondColor?: string - thirdColor?: string - fourthColor?: string - fifthColor?: string - pointerColor?: string - size?: string - blendingValue?: string - children?: React.ReactNode - className?: string - interactive?: boolean - containerClassName?: string -}) => { - // const interactiveRef = useRef(null) - - // const [curX, setCurX] = useState(0) - // const [curY, setCurY] = useState(0) - // const [tgX, setTgX] = useState(0) - // const [tgY, setTgY] = useState(0) - - useEffect(() => { - document.body.style.setProperty('--size', size) - document.body.style.setProperty('--blending-value', blendingValue) - }, []) - - // useEffect(() => { - // function move() { - // if (!interactiveRef.current) { - // return - // } - // setCurX(curX + (tgX - curX) / 20) - // setCurY(curY + (tgY - curY) / 20) - // interactiveRef.current.style.transform = `translate(${Math.round( - // curX - // )}px, ${Math.round(curY)}px)` - // } - - // move() - // }, [tgX, tgY]) - - // const handleMouseMove = (event: React.MouseEvent) => { - // if (interactiveRef.current) { - // const rect = interactiveRef.current.getBoundingClientRect() - // setTgX(event.clientX - rect.left) - // setTgY(event.clientY - rect.top) - // } - // } - - const [isSafari, setIsSafari] = useState(false) - - useEffect(() => { - setIsSafari(/^((?!chrome|android).)*safari/i.test(navigator.userAgent)) - }, []) - - return ( -
- - - - - - - - - -
{children}
-
-
-
-
-
-
- {/* - {interactive && ( -
- )} */} -
-
- ) -} diff --git a/apps/webapp/components/ui/lazy-image.tsx b/apps/webapp/components/ui/lazy-image.tsx deleted file mode 100644 index 10c035e23..000000000 --- a/apps/webapp/components/ui/lazy-image.tsx +++ /dev/null @@ -1,66 +0,0 @@ -import Image, { ImageProps } from "next/image" -import React, { useMemo, useState } from "react" - -import { cn } from "@/lib/utils" - -const aspectRatioThreshold = 0.2 - -export function LazyImage({ - src, - alt, - className, - imgWrapperClassName, - ...props -}: ImageProps & { imgWrapperClassName?: string }) { - const [isLoading, setIsLoading] = useState(true) - const [imageDimensions, setImageDimensions] = useState({ - width: 0, - height: 0, - }) - - const calculateAdjustedHeight = ( - img: React.SyntheticEvent - ) => { - const width = img.currentTarget.naturalWidth - const height = img.currentTarget.naturalHeight - - setImageDimensions({ width, height }) - } - - const isSameDimensions = useMemo(() => { - const aspectRatio = imageDimensions.width / imageDimensions.height - return Math.abs(aspectRatio - 1) <= aspectRatioThreshold - }, [imageDimensions.height, imageDimensions.width]) - - return ( - - {alt} setIsLoading(false)} - {...props} - /> - - ) -} diff --git a/apps/webapp/components/ui/typewritting-effect.tsx b/apps/webapp/components/ui/typewritting-effect.tsx deleted file mode 100644 index 57a0dcfdd..000000000 --- a/apps/webapp/components/ui/typewritting-effect.tsx +++ /dev/null @@ -1,132 +0,0 @@ -'use client' - -import { cn } from '@/lib/utils' -import { - AnimationPlaybackControls, - motion, - stagger, - useAnimate, - useInView, - usePresence -} from 'framer-motion' -import { useEffect } from 'react' - -export const TypewriterEffect = ({ - words, - className, - cursorClassName, - onAnimationEnd -}: { - words: { - text: string - className?: string - }[] - className?: string - cursorClassName?: string - onAnimationEnd?: () => void -}) => { - // split text inside of words into array of characters - const wordsArray = words.map(word => { - return { - ...word, - text: word.text.split('') - } - }) - - const [isPresent, safeToRemove] = usePresence() - const [scope, animate] = useAnimate() - const isInView = useInView(scope) - - useEffect(() => { - let animationController: AnimationPlaybackControls | undefined - - if (isInView) { - try { - animationController = animate( - 'span', - { - display: 'inline-block', - opacity: 1 - }, - { - duration: 0.14, - delay: stagger(0.1), - ease: 'easeInOut' - } - ) - - animationController.then(() => { - console.log('Animation ended.') - if (onAnimationEnd) { - console.log('Calling onAnimationEnd.') - onAnimationEnd() - } - }) - } catch (error) { - console.error('TypewriterEffect animation error:', error) - } - } - - return () => { - if (animationController) { - // console.log('TypewriterEffect unmounted.'); - // (animationController as AnimationPlaybackControls).stop() - !isPresent && safeToRemove() - } - } - }, [isInView, isPresent]) - - const renderWords = () => { - return ( - - {wordsArray.length > 0 && - wordsArray.map((word, idx) => { - return ( -
- {(word.text || ['']).map((char, index) => ( - - {char} - - ))} -   -
- ) - })} -
- ) - } - return ( -
- {renderWords()} - -
- ) -} diff --git a/apps/webapp/lib/projects.ts b/apps/webapp/lib/projects.ts index 9a5ce893e..4d0d2a40d 100644 --- a/apps/webapp/lib/projects.ts +++ b/apps/webapp/lib/projects.ts @@ -13,6 +13,8 @@ export const projects: Project[] = [ maxAllocation: '$10,000', heroImage: '/images/projects/bitcash-cover.png', thumbnailImage: '/images/projects/bitcash.png', + thumbnailImageBlurDataURL: '', // replace by getter fucntion + heroImageBlurDataURL: '', // replace by getter fucntion badgeText: 'PRE-SALE ACTIVE', linkPath: '/bitcash-bitlauncher', // TODO: token name in progress... MBOTS is placeholder, the token for Masterbots @@ -36,8 +38,8 @@ export const projects: Project[] = [ 'Rigorous Security Standards: Implementing top-tier KYC/AML policies and advanced security for user protection.', 'Global Empowerment: Committed to empowering global users through transformative technological solutions.', 'Enhancing Human Connections: Prioritizing genuine human interaction in the anticipated AI-dominated future.', - 'New Digital Economy Vision: Envisioning a future economy where technology and ethical principles serve global well-being.', - ], + 'New Digital Economy Vision: Envisioning a future economy where technology and ethical principles serve global well-being.' + ] ] }, product: { @@ -69,7 +71,7 @@ export const projects: Project[] = [ 'Exclusivity in Innovation: Cutting - edge technologies largely benefit a select group, creating an imbalance in technological empowerment.', 'Integration Deficiency: There is a notable absence of a comprehensive platform that integrates AI, blockchain, and DeFi in a user- friendly manner.', 'Barriers to Adoption: The intimidating nature of current blockchain solutions hinders widespread adoption and practical use in the mainstream.', - 'Economic Inequity: Digital finance has yet to bridge the gap between the tech- savvy and the general population, reinforcing economic disparities.', + 'Economic Inequity: Digital finance has yet to bridge the gap between the tech- savvy and the general population, reinforcing economic disparities.' ] ] }, @@ -86,8 +88,8 @@ export const projects: Project[] = [ 'Technological Democratization: Aims to make advanced technology accessible and usable for everyone, democratizing AI and financial tools.', 'Catalyst for Change: Acts as a launchpad for transformative applications, driving growth and fostering a dynamic, creative community.', 'Human-Centric Approach: Focuses on maintaining human connections and integrity in an AI-dominated future.', - 'Economic Redefinition: Bitcash strives to reshape the global economy to be more inclusive, equitable, and supportive of human potential.', - ], + 'Economic Redefinition: Bitcash strives to reshape the global economy to be more inclusive, equitable, and supportive of human potential.' + ] ] }, businessModel: { @@ -95,7 +97,7 @@ export const projects: Project[] = [ content: [ [ 'Utility Token Ecosystem: Implements a dynamic mint-and-burn utility token system central to transactions and services, ensuring ecosystem balance.', - 'Multiple Revenue Channels: Generates income through transaction fees, P2P exchange margins, and services around AI-driven DeFi applications, plus earnings from the AI startup launchpad \'Bitlauncher\'.', + "Multiple Revenue Channels: Generates income through transaction fees, P2P exchange margins, and services around AI-driven DeFi applications, plus earnings from the AI startup launchpad 'Bitlauncher'.", 'Community-Driven Innovation: Encourages open-source development and community contributions, fostering a cycle of continuous innovation and platform improvement.', 'Equitable Blockchain Infrastructure: Introduces a non-profit L1 blockchain for fair token distribution, underpinning a decentralized economy accessible to all.', 'Fair Token Distribution Model: Adopts an ethical approach to token distribution, rewarding contributions with real-time value, ensuring equity and transparency.', @@ -105,7 +107,9 @@ export const projects: Project[] = [ 'Educational Initiatives: Invests in user education and community engagement, empowering users to maximize platform benefits and contribute to its evolution.', 'Targeted Marketing for User Growth: Employs strategic marketing to attract a diverse user base, demystifying blockchain and AI to encourage mainstream adoption.' ], - ['This business model represents Bitcash\'s commitment to a sustainable, equitable digital economy, leveraging community input and innovation for collective growth.'], + [ + "This business model represents Bitcash's commitment to a sustainable, equitable digital economy, leveraging community input and innovation for collective growth." + ] ] }, tokenomics: { @@ -120,22 +124,25 @@ export const projects: Project[] = [ 'Equitable Distribution Model: Adopts a fair distribution system, akin to traditional shareholder models, ensuring tokens reflect real value and contributions.', 'Transparent Token Valuation: Focuses on transparency and real value creation in token distribution, avoiding speculation for stable economic foundations.', 'Governance Participation: Allows token holders to engage in governance, contributing to the platform’s direction and policies, emphasizing democratic participation.', - 'Economic Adaptability: Maintains a flexible tokenomics strategy, responsive to the community and platform\'s evolving needs for a balanced digital economy.', + "Economic Adaptability: Maintains a flexible tokenomics strategy, responsive to the community and platform's evolving needs for a balanced digital economy.", 'Vision of Shared Prosperity: Aims to build a new global economy where Bitcash tokens underpin a system of innovation, participation, and shared benefits, transcending traditional economic barriers.' - ], + ] ] - }, + } } }, { id: 2, title: 'Masterbots', slug: '', - pitch: 'Elevating AI Beyond ChatGPT: Specialized Chatbots, Social Sharing and User-Friendly Innovation', + pitch: + 'Elevating AI Beyond ChatGPT: Specialized Chatbots, Social Sharing and User-Friendly Innovation', fundraiseGoal: '$200,000', maxAllocation: '$10,000', heroImage: '/images/projects/masterbots.png', thumbnailImage: '/images/projects/masterbots.png', + thumbnailImageBlurDataURL: '', // replace by getter fucntion + heroImageBlurDataURL: '', // replace by getter fucntion badgeText: 'COMING SOON', linkPath: '#', auctionId: 9, @@ -147,40 +154,28 @@ export const projects: Project[] = [ content: { highlights: { title: 'Highlights', - content: [ - [], - ] + content: [[]] }, product: { title: 'Product Overview', - content: [ - [] - ] + content: [[]] }, problem: { title: 'Problem', - content: [ - [] - ] + content: [[]] }, solution: { title: 'Solution', - content: [ - [], - ] + content: [[]] }, businessModel: { title: 'Business Model', - content: [ - [] - ] + content: [[]] }, tokenomics: { title: 'Tokenomics', - content: [ - [], - ] - }, + content: [[]] + } } }, { @@ -192,6 +187,8 @@ export const projects: Project[] = [ maxAllocation: '$10,000', heroImage: '/images/projects/wizartworld.png', thumbnailImage: '/images/projects/wizartworld.png', + thumbnailImageBlurDataURL: '', // replace by getter fucntion + heroImageBlurDataURL: '', // replace by getter fucntion badgeText: 'FUTURE', linkPath: '#', token: TestnetMBOTSPL, @@ -202,40 +199,28 @@ export const projects: Project[] = [ content: { highlights: { title: 'Highlights', - content: [ - [], - ] + content: [[]] }, product: { title: 'Product Overview', - content: [ - [] - ] + content: [[]] }, problem: { title: 'Problem', - content: [ - [] - ] + content: [[]] }, solution: { title: 'Solution', - content: [ - [], - ] + content: [[]] }, businessModel: { title: 'Business Model', - content: [ - [] - ] + content: [[]] }, tokenomics: { title: 'Tokenomics', - content: [ - [], - ] - }, + content: [[]] + } } } ] @@ -248,13 +233,23 @@ export interface Project { fundraiseGoal: string maxAllocation: string heroImage: string + heroImageBlurDataURL: string thumbnailImage: string + thumbnailImageBlurDataURL: string badgeText: string linkPath: string twitterUsername: string telegramGroup: string discordServer: string - content: Record<'highlights' | 'product' | 'problem' | 'solution' | 'businessModel' | 'tokenomics', Record<'title' | 'content', string | string[][]>> + content: Record< + | 'highlights' + | 'product' + | 'problem' + | 'solution' + | 'businessModel' + | 'tokenomics', + Record<'title' | 'content', string | string[][]> + > auctionId?: number token?: TokenContractData presaleOpen?: boolean @@ -266,3 +261,25 @@ export type ProjectWithAuction = Required< Pick > & Project + +export async function getProjectBySlug(slug: string) { + const project = projects.find(p => p.slug == slug) + if (!project) return null + return replaceBlurDataURL(project) +} + +export async function getProjects() { + return Promise.all(projects.map(async p => await replaceBlurDataURL(p))) +} + +async function replaceBlurDataURL(project: Project): Promise { + // console.log({ + // heroImageBlurDataURL: await create L(project.heroImage), + // thumbnailImageBlurDataURL: await createBlurDataURL(project.thumbnailImage) + // }) + return { + ...project + // heroImageBlurDataURL: await createBlurDataURL(project.heroImage), + // thumbnailImageBlurDataURL: await createBlurDataURL(project.thumbnailImage) + } +} diff --git a/apps/webapp/lib/validators.ts b/apps/webapp/lib/validators.ts index caa4add69..91e330cfe 100644 --- a/apps/webapp/lib/validators.ts +++ b/apps/webapp/lib/validators.ts @@ -1,7 +1,7 @@ import { isAddress } from 'viem' import { z } from 'zod' -export const registerAddressSchema = z.object({ +export const RegisterAddressSchema = z.object({ project_id: z.number(), address: z.string().refine(isAddress, { message: 'Invalid address format' From c896cbe11385bd0e19257c0572e5e000924de618 Mon Sep 17 00:00:00 2001 From: Gabo Esquivel Date: Mon, 15 Apr 2024 04:29:41 -0600 Subject: [PATCH 03/21] chore: fix layout and cls, removed motion --- bun.lockb | Bin 1106912 -> 1118712 bytes package.json | 3 ++- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/bun.lockb b/bun.lockb index 9204df83515032fce22f5baf892ffadf63c72021..a3926d24f7539dfb21066deca84124bdda7e6d39 100755 GIT binary patch delta 281763 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

^au??kc{TpEcn7Dc?u={wWnJQ^U>RG-7EW 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

TN$GcU87_$u#>h>Y|)+=S88S$@Jhc+Bd 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ÏLiNh&QZcnGnX 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

SJpWrIQWVl`F>dIDEvVH{n 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 D<`xYP diff --git a/package.json b/package.json index d53deb889..cb1855924 100644 --- a/package.json +++ b/package.json @@ -43,6 +43,7 @@ "@types/react": "latest", "@types/react-dom": "latest", "react": "latest", - "react-dom": "latest" + "react-dom": "latest", + "sharp": "^0.33.3" } } \ No newline at end of file From c93ad07b6a914496ca93f65724f60cd21a2f9bb5 Mon Sep 17 00:00:00 2001 From: Gabo Esquivel Date: Mon, 15 Apr 2024 04:45:23 -0600 Subject: [PATCH 04/21] chore: format code --- README.md | 6 +- apps/webapp/app/[project]/auction/page.tsx | 2 +- apps/webapp/app/[project]/page.tsx | 6 +- apps/webapp/app/layout.tsx | 2 +- apps/webapp/app/wallet/page.tsx | 4 +- .../components/layout/bitcash-access.tsx | 20 +- apps/webapp/components/layout/footer.tsx | 2 +- .../components/layout/header-buttons.tsx | 9 +- apps/webapp/components/layout/header.tsx | 4 +- apps/webapp/components/layout/newsletter.tsx | 4 +- apps/webapp/components/layout/participate.tsx | 8 +- .../routes/auction/auction-info.tsx | 2 +- .../components/routes/auction/countdown.tsx | 6 +- .../routes/auction/project-header.tsx | 16 +- .../components/routes/home/auction-card.tsx | 16 +- .../components/routes/home/upcoming.tsx | 12 +- .../routes/wallet/withdraw-card.tsx | 2 +- apps/webapp/components/shared/content.tsx | 2 +- apps/webapp/components/ui/button.tsx | 2 +- apps/webapp/components/ui/dialog.tsx | 20 +- apps/webapp/components/ui/dropdown-menu.tsx | 34 +- apps/webapp/components/ui/icons.tsx | 98 +- apps/webapp/components/ui/select.tsx | 30 +- apps/webapp/components/ui/table.tsx | 2 +- apps/webapp/components/ui/tooltip.tsx | 3 +- apps/webapp/lib/utils.ts | 14 +- bun.lockb | Bin 1118712 -> 1118768 bytes .../smartsale-db/prisma/client/default.d.ts | 2 +- packages/smartsale-db/prisma/client/edge.d.ts | 2 +- .../smartsale-db/prisma/client/index.d.ts | 12590 +++++++++------- .../prisma/client/runtime/index-browser.d.ts | 790 +- .../prisma/client/runtime/library.d.ts | 7100 +++++---- packages/smartsale-db/prisma/client/wasm.d.ts | 2 +- 33 files changed, 11677 insertions(+), 9135 deletions(-) diff --git a/README.md b/README.md index ad6823871..1eda92463 100644 --- a/README.md +++ b/README.md @@ -29,7 +29,7 @@ SmartSale is committed to compliance and security, rigorously adhering to emergi ## Requirements -- **NodeJS**: Recommended for managing server-side scripting and backend interactions. +- **NodeJS**: Recommended for managing server-side scripting and backend interactions. - **Bun**: Provides a faster runtime for JavaScript, enhancing development efficiency. - **Supabase CLI**: Facilitates local development and effective database schema management. - **Docker**: Essential for creating isolated environments, ensuring consistent operation across different setups. @@ -39,6 +39,7 @@ SmartSale is committed to compliance and security, rigorously adhering to emergi ### Backend & APIs - **Supabase** + - Manages authentication and real-time data interactions. - **Advanced Search**: Supports complex queries necessary for managing auction data. @@ -48,6 +49,7 @@ SmartSale is committed to compliance and security, rigorously adhering to emergi ### Frontend & Design - **Next.js 14** + - Utilizes efficient routing mechanisms and server-side data fetching to provide a smooth user experience. - [Learn more about Next.js](https://nextjs.org/docs/routing/introduction) @@ -64,6 +66,7 @@ SmartSale is committed to compliance and security, rigorously adhering to emergi ### DevOps and Tools - **Turbo Monorepo** + - Enhances codebase management with efficient build processes and dependency caching. - [Learn more about Turbo Monorepo](https://turborepo.org/) @@ -74,6 +77,7 @@ SmartSale is committed to compliance and security, rigorously adhering to emergi ### Animation - **Framer Motion for React** + - Provides dynamic visual feedback through animations, enhancing user interface interactions. - [Learn more about Framer Motion](https://www.framer.com/motion/) diff --git a/apps/webapp/app/[project]/auction/page.tsx b/apps/webapp/app/[project]/auction/page.tsx index 477e19fae..ea827955e 100644 --- a/apps/webapp/app/[project]/auction/page.tsx +++ b/apps/webapp/app/[project]/auction/page.tsx @@ -68,7 +68,7 @@ export default async function AuctionPage({ -
+
) } diff --git a/apps/webapp/app/[project]/page.tsx b/apps/webapp/app/[project]/page.tsx index 9fa85f312..29de11844 100644 --- a/apps/webapp/app/[project]/page.tsx +++ b/apps/webapp/app/[project]/page.tsx @@ -27,14 +27,14 @@ export default async function ProjectPage({ params }: ProjectPageProps) {

{projectContent[pcKey].title}

-
+
{(projectContent[pcKey].content as string[][]).map( (content, index) => { if (content.every((c, i) => c.includes(':'))) { return (