Update stuff & add admin link in nav for admins
This commit is contained in:
@@ -58,7 +58,7 @@ export const defaultLandingPageContent: LandingPageContent = {
|
||||
badgeEmoji: '🚀',
|
||||
badgeText: 'Production-ready monorepo template',
|
||||
headingPrefix: 'Build Full-Stack Apps with',
|
||||
headingHighlight: 'convex monorepo',
|
||||
headingHighlight: 'convex-monorepo',
|
||||
description:
|
||||
'A Turborepo starter with Next.js, Expo, and self-hosted Convex. Ship web and mobile apps faster with shared code, type-safe backend, and complete control over your infrastructure.',
|
||||
primaryCta: {
|
||||
|
||||
@@ -1,17 +1,26 @@
|
||||
'use client';
|
||||
|
||||
import type { ComponentProps } from 'react';
|
||||
import { type Preloaded, usePreloadedQuery } from 'convex/react';
|
||||
import { Kanit } from 'next/font/google';
|
||||
import Image from 'next/image';
|
||||
import Link from 'next/link';
|
||||
import { Coffee, Server, Wrench } from 'lucide-react';
|
||||
|
||||
import { Coffee, Server, User, Wrench } from 'lucide-react';
|
||||
import { Controls } from './controls';
|
||||
import { api } from '@gib/backend/convex/_generated/api.js';
|
||||
|
||||
type HeaderProps = {
|
||||
preloadedUser: Preloaded<typeof api.auth.getUser>;
|
||||
headerProps?: ComponentProps<'header'>;
|
||||
};
|
||||
|
||||
const kanitSans = Kanit({
|
||||
subsets: ['latin'],
|
||||
weight: ['400', '500', '600', '700'],
|
||||
});
|
||||
|
||||
export default function Header(headerProps: ComponentProps<'header'>) {
|
||||
export default function Header({preloadedUser, headerProps}: HeaderProps) {
|
||||
const user = usePreloadedQuery(preloadedUser);
|
||||
return (
|
||||
<header
|
||||
className='border-border/40 bg-background/95 supports-backdrop-filter:bg-background/60 sticky top-0 z-50 w-full border-b backdrop-blur'
|
||||
@@ -31,14 +40,14 @@ export default function Header(headerProps: ComponentProps<'header'>) {
|
||||
className='w-10 lg:w-15 invert dark:invert-0'
|
||||
/>
|
||||
<span
|
||||
className={`font-extrabold hidden sm:inline sm:text-xl sm:mb-1 lg:mb-3 lg:text-5xl ${kanitSans.className}`}
|
||||
className={`font-extrabold hidden md:inline sm:text-lg sm:mb-1 lg:mb-3 lg:text-4xl xl:text-5xl ${kanitSans.className}`}
|
||||
>
|
||||
convex monorepo
|
||||
convex-monorepo
|
||||
</span>
|
||||
</Link>
|
||||
|
||||
{/* Navigation */}
|
||||
<nav className='hidden items-center gap-6 text-xs lg:text-base font-medium sm:flex'>
|
||||
<nav className='hidden items-center gap-4 md:gap-6 text-xs lg:text-base font-medium sm:flex'>
|
||||
<Link
|
||||
href='/#features'
|
||||
className='text-foreground/60 hover:text-foreground flex items-center gap-2 transition-colors'
|
||||
@@ -62,6 +71,18 @@ export default function Header(headerProps: ComponentProps<'header'>) {
|
||||
<Coffee width={20} height={20} />
|
||||
Repository
|
||||
</Link>
|
||||
{user?.isAdmin && (
|
||||
<Link
|
||||
href='/admin'
|
||||
target='_blank'
|
||||
rel='noopener noreferrer'
|
||||
className='text-foreground/60 hover:text-foreground
|
||||
flex items-center gap-2 transition-colors'
|
||||
>
|
||||
<User width={18} height={18} />
|
||||
Admin
|
||||
</Link>
|
||||
)}
|
||||
</nav>
|
||||
|
||||
{/* Controls (Theme + Auth) */}
|
||||
|
||||
Reference in New Issue
Block a user