Skip to content
2 changes: 1 addition & 1 deletion src/components/landing/DownloadSection.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -147,7 +147,7 @@ export function DownloadSection() {
variant="secondary"
size="lg"
onClick={() => {
track('pricing_cta_click', { type: 'get_started_free' });
track('cta_click', { location: 'pricing', type: 'get_started_free' });
router.push('/dashboard/analyze');
}}
>
Expand Down
21 changes: 14 additions & 7 deletions src/components/landing/EnterprisePreview.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -64,6 +64,18 @@ const STATS: StatItem[] = [
{ label: 'Risk Items', value: '23', change: { text: 'detected', direction: 'neutral' } },
];

const directionStyles: Record<Direction, string> = {
up: styles.changeUp,
down: styles.changeDown,
neutral: styles.changeNeutral,
};

const directionArrows: Record<Direction, string> = {
up: '\u2191',
down: '\u2193',
neutral: '',
};

interface MemberItem {
name: string;
role: string;
Expand Down Expand Up @@ -133,13 +145,8 @@ export function EnterprisePreview() {
<div className={styles.statLabel}>{stat.label}</div>
<div className={styles.statValue}>{stat.value}</div>
{stat.change && (
<span className={`${styles.statChange} ${
stat.change.direction === 'up' ? styles.changeUp
: stat.change.direction === 'down' ? styles.changeDown
: styles.changeNeutral
}`}>
{stat.change.direction === 'up' && '\u2191'}
{stat.change.direction === 'down' && '\u2193'}
<span className={`${styles.statChange} ${directionStyles[stat.change.direction]}`}>
{directionArrows[stat.change.direction]}
{' '}{stat.change.text}
</span>
)}
Expand Down
6 changes: 3 additions & 3 deletions src/components/landing/SectionNav.tsx
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
'use client';

import { useEffect, useState, useCallback, useRef } from 'react';
import { useEffect, useState, useRef } from 'react';
import { track } from '@vercel/analytics';
import styles from './SectionNav.module.css';

Expand Down Expand Up @@ -54,9 +54,9 @@ export function SectionNav() {
return () => observer.disconnect();
}, []);

const handleClick = useCallback((id: string) => {
function handleClick(id: string): void {
document.getElementById(id)?.scrollIntoView({ behavior: 'smooth' });
}, []);
}

return (
<nav
Expand Down
1 change: 1 addition & 0 deletions src/components/landing/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7,5 +7,6 @@ export { DownloadSection } from './DownloadSection';
export { LandingFooter } from './LandingFooter';
export { EnterprisePreview } from './EnterprisePreview';
export { TrustPrivacy } from './TrustPrivacy';
export { SectionNav } from './SectionNav';
export { WaitlistModal, waitlistConfigs } from './WaitlistModal';
export type { WaitlistConfig, WaitlistType } from './WaitlistModal';
22 changes: 12 additions & 10 deletions src/views/LandingPage.tsx
Original file line number Diff line number Diff line change
@@ -1,13 +1,15 @@
import { HeroSection } from '@/components/landing/HeroSection';
import { SocialProofBar } from '@/components/landing/SocialProofBar';
import { ProblemValidation } from '@/components/landing/ProblemValidation';
import { SolutionSection } from '@/components/landing/SolutionSection';
import { AnalysisShowcase } from '@/components/landing/AnalysisShowcase';
import { EnterprisePreview } from '@/components/landing/EnterprisePreview';
import { DownloadSection } from '@/components/landing/DownloadSection';
import { TrustPrivacy } from '@/components/landing/TrustPrivacy';
import { LandingFooter } from '@/components/landing/LandingFooter';
import { SectionNav } from '@/components/landing/SectionNav';
import {
HeroSection,
SocialProofBar,
ProblemValidation,
SolutionSection,
AnalysisShowcase,
EnterprisePreview,
DownloadSection,
TrustPrivacy,
LandingFooter,
SectionNav,
} from '@/components/landing';
import styles from './LandingPage.module.css';

export function LandingPage() {
Expand Down