From 86d82d889c04b5be5d1467042d258522fbd501c4 Mon Sep 17 00:00:00 2001 From: Giancarlo Buomprisco Date: Fri, 19 Jul 2024 23:33:52 +0800 Subject: [PATCH] Add Analytics package (#46) * Add Analytics package Created a new analytics package with a manager to handle tracking of events and page views. The package includes a default provider that can be switched out and uses a NullAnalyticsService if no provider is registered. Additional types, scripts, and package configuration are also provided to support development. * Add marketing components for UI package Introduced new React components under "marketing" for the UI package. These include 'Pill', 'GradientSecondaryText', 'Hero', 'CtaButton', 'FeatureCard', 'FeatureGrid', 'FeatureShowcase', 'GradientText', 'Header', and 'SecondaryHero'. Updated 'package.json' to export these components. Replaced the implementation of 'Home', 'SiteHeader', and 'SiteFooter' with these components for cleaner code and better reusability. --- .../(marketing)/_components/site-footer.tsx | 177 +++------- .../site-header-account-section.tsx | 2 +- .../(marketing)/_components/site-header.tsx | 28 +- .../blog/_components/post-header.tsx | 2 +- apps/web/app/(marketing)/page.tsx | 330 ++++-------------- packages/analytics/README.md | 10 + packages/analytics/package.json | 35 ++ packages/analytics/src/analytics-manager.ts | 72 ++++ packages/analytics/src/index.ts | 10 + .../analytics/src/null-analytics-service.ts | 16 + packages/analytics/src/types.ts | 32 ++ packages/analytics/tsconfig.json | 8 + .../gateway/src/components/pricing-table.tsx | 4 +- packages/ui/package.json | 3 +- .../ui/src/makerkit/marketing/cta-button.tsx | 23 ++ .../src/makerkit/marketing/feature-card.tsx | 44 +++ .../src/makerkit/marketing/feature-grid.tsx | 21 ++ .../makerkit/marketing/feature-showcase.tsx | 50 +++ packages/ui/src/makerkit/marketing/footer.tsx | 95 +++++ .../marketing/gradient-secondary-text.tsx | 27 ++ .../src/makerkit/marketing/gradient-text.tsx | 21 ++ packages/ui/src/makerkit/marketing/header.tsx | 37 ++ .../ui/src/makerkit/marketing/hero-title.tsx | 27 ++ packages/ui/src/makerkit/marketing/hero.tsx | 89 +++++ packages/ui/src/makerkit/marketing/index.tsx | 12 + packages/ui/src/makerkit/marketing/pill.tsx | 40 +++ .../src/makerkit/marketing/secondary-hero.tsx | 49 +++ pnpm-lock.yaml | 15 + 28 files changed, 862 insertions(+), 417 deletions(-) create mode 100644 packages/analytics/README.md create mode 100644 packages/analytics/package.json create mode 100644 packages/analytics/src/analytics-manager.ts create mode 100644 packages/analytics/src/index.ts create mode 100644 packages/analytics/src/null-analytics-service.ts create mode 100644 packages/analytics/src/types.ts create mode 100644 packages/analytics/tsconfig.json create mode 100644 packages/ui/src/makerkit/marketing/cta-button.tsx create mode 100644 packages/ui/src/makerkit/marketing/feature-card.tsx create mode 100644 packages/ui/src/makerkit/marketing/feature-grid.tsx create mode 100644 packages/ui/src/makerkit/marketing/feature-showcase.tsx create mode 100644 packages/ui/src/makerkit/marketing/footer.tsx create mode 100644 packages/ui/src/makerkit/marketing/gradient-secondary-text.tsx create mode 100644 packages/ui/src/makerkit/marketing/gradient-text.tsx create mode 100644 packages/ui/src/makerkit/marketing/header.tsx create mode 100644 packages/ui/src/makerkit/marketing/hero-title.tsx create mode 100644 packages/ui/src/makerkit/marketing/hero.tsx create mode 100644 packages/ui/src/makerkit/marketing/index.tsx create mode 100644 packages/ui/src/makerkit/marketing/pill.tsx create mode 100644 packages/ui/src/makerkit/marketing/secondary-hero.tsx diff --git a/apps/web/app/(marketing)/_components/site-footer.tsx b/apps/web/app/(marketing)/_components/site-footer.tsx index 25c2346c6..bd8fdb4cd 100644 --- a/apps/web/app/(marketing)/_components/site-footer.tsx +++ b/apps/web/app/(marketing)/_components/site-footer.tsx @@ -1,5 +1,4 @@ -import Link from 'next/link'; - +import { Footer } from '@kit/ui/marketing'; import { Trans } from '@kit/ui/trans'; import { AppLogo } from '~/components/app-logo'; @@ -7,133 +6,53 @@ import appConfig from '~/config/app.config'; export function SiteFooter() { return ( - - ); -} - -function FooterSectionHeading(props: React.PropsWithChildren) { - return {props.children}; -} - -function FooterSectionList(props: React.PropsWithChildren) { - return ; -} - -function FooterLink(props: React.PropsWithChildren) { - return ( -
  • a]:transition-colors' +
    } + description={} + copyright={ + } - > - {props.children} -
  • + sections={[ + { + heading: , + links: [ + { href: '/blog', label: }, + { href: '/contact', label: }, + ], + }, + { + heading: , + links: [ + { + href: '/docs', + label: , + }, + ], + }, + { + heading: , + links: [ + { + href: '/terms-of-service', + label: , + }, + { + href: '/privacy-policy', + label: , + }, + { + href: '/cookie-policy', + label: , + }, + ], + }, + ]} + /> ); } diff --git a/apps/web/app/(marketing)/_components/site-header-account-section.tsx b/apps/web/app/(marketing)/_components/site-header-account-section.tsx index 15daa8854..25d95b781 100644 --- a/apps/web/app/(marketing)/_components/site-header-account-section.tsx +++ b/apps/web/app/(marketing)/_components/site-header-account-section.tsx @@ -84,7 +84,7 @@ function AuthButtons() {