File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -4,6 +4,7 @@ import { getPageMap } from "nextra/page-map";
44import "nextra-theme-docs/style-prefixed.css" ;
55import "./globals.css" ;
66import { TrackClick , TrackImpression , TrackProvider } from "@/tracker" ;
7+ import { Logo } from "@/logo" ;
78
89export const metadata = {
910 title : {
@@ -15,9 +16,13 @@ const navbar = (
1516 < Navbar
1617 logo = {
1718 < TrackClick params = { { target : "logo" } } >
18- < b > event-tracker</ b >
19+ < div className = "flex items-center gap-2" >
20+ < Logo />
21+ < b > event-tracker</ b >
22+ </ div >
1923 </ TrackClick >
2024 }
25+ projectLink = "https://github.com/offlegacy/event-tracker"
2126 />
2227) ;
2328const footer = (
Original file line number Diff line number Diff line change 11import { Image } from "nextra/components" ;
22import Link from "next/link" ;
33import { TrackClick , TrackPageView } from "@/tracker" ;
4+ import { Logo } from "@/logo" ;
45
56export const metadata = { } ;
67
@@ -9,7 +10,7 @@ export default function Page() {
910 < >
1011 < div className = "mx-auto flex min-h-screen max-w-6xl flex-col items-center px-6 py-16" >
1112 < div className = "mb-16 flex flex-col items-center text-center" >
12- < Image src = "/logo.jpg" alt = "event-tracker logo" width = { 200 } height = { 200 } className = "mb-8" />
13+ < Logo size = { 200 } />
1314 < h1 className = "mb-6 text-5xl font-bold" > event-tracker</ h1 >
1415 < p className = "mb-6 max-w-2xl text-xl text-gray-600 dark:text-gray-300" >
1516 A lightweight, type-safe event tracking library for React applications that simplifies analytics integration
Original file line number Diff line number Diff line change 1+ "use client" ;
2+
3+ import { useTheme } from "nextra-theme-docs" ;
4+ import Image from "next/image" ;
5+ import { useSystemDarkMode } from "./useSystemDarkMode" ;
6+
7+ interface LogoProps {
8+ size ?: number ;
9+ }
10+
11+ const DARK_LOGO_PATH = "/dark-logo.png" ;
12+ const LIGHT_LOGO_PATH = "/light-logo.png" ;
13+
14+ export const Logo = ( { size = 30 } : LogoProps ) => {
15+ const isSystemDarkMode = useSystemDarkMode ( ) ;
16+ const { theme } = useTheme ( ) ;
17+
18+ const isDarkMode = theme === "system" ? isSystemDarkMode : theme === "dark" ;
19+
20+ return (
21+ < Image src = { isDarkMode ? DARK_LOGO_PATH : LIGHT_LOGO_PATH } alt = "event-tracker logo" width = { size } height = { size } />
22+ ) ;
23+ } ;
Original file line number Diff line number Diff line change 1+ import { useEffect , useState } from "react" ;
2+
3+ const DARK_MODE_QUERY = "(prefers-color-scheme: dark)" ;
4+
5+ export const useSystemDarkMode = ( ) => {
6+ const [ isSystemDarkMode , setIsSystemDarkMode ] = useState ( false ) ;
7+
8+ useEffect ( ( ) => {
9+ const matchMedia = window . matchMedia ( DARK_MODE_QUERY ) ;
10+ setIsSystemDarkMode ( matchMedia . matches ) ;
11+
12+ const handleChange = ( e : MediaQueryListEvent ) => {
13+ setIsSystemDarkMode ( e . matches ) ;
14+ } ;
15+
16+ matchMedia . addEventListener ( "change" , handleChange ) ;
17+
18+ return ( ) => {
19+ matchMedia . removeEventListener ( "change" , handleChange ) ;
20+ } ;
21+ } , [ ] ) ;
22+
23+ return isSystemDarkMode ;
24+ } ;
You can’t perform that action at this time.
0 commit comments