summaryrefslogtreecommitdiff
path: root/apps/web/src/components/header.tsx
blob: cada527fe078ffb3dd2826a82f4d0d13689824ee (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
"use client";

import Link from "next/link";
import Image from "next/image";
import { Button } from "./ui/button";
import { ArrowRight } from "lucide-react";
import { HeaderBase } from "./header-base";
import { useSession } from "@/lib/auth-client";
import { ghStars } from "@/lib/fetchGhStars";
import { Star } from "lucide-react";

export function Header() {
  const stars = ghStars();
  const { data: session } = useSession();
  const leftContent = (
    <Link href="/" className="flex items-center gap-3">
      <Image src="/logo.png" alt="OpenCut Logo" width={24} height={24} />
      <span className="font-medium tracking-tight">OpenCut</span>
    </Link>
  );

  const rightContent = (
    <nav className="flex items-center">
      <Link href="https://github.com/OpenCut-app/OpenCut" target="_blank">
        <Button
          variant="ghost"
          className="flex items-center text-sm text-muted-foreground hover:text-foreground"
        >
          <span className="hidden sm:inline">GitHub</span>
          <span className="text-foreground flex items-center">
            {stars}+
            <Star className="w-4 h-4 ml-1" />
          </span>
        </Button>
      </Link>
      <Link href={session ? "/editor" : "/auth/login"}>
        <Button size="sm" className="text-sm ml-4">
          Start editing
          <ArrowRight className="h-4 w-4" />
        </Button>
      </Link>
    </nav>
  );

  return <HeaderBase leftContent={leftContent} rightContent={rightContent} />;
}