1
0
mirror of https://github.com/Llewellynvdm/conky.git synced 2024-11-16 01:57:09 +00:00
conky/web/components/Header.tsx

79 lines
2.2 KiB
TypeScript
Raw Normal View History

import Link from 'next/link'
2022-09-30 21:15:06 +00:00
import { useRouter } from 'next/router'
import GitHub from './GitHub'
import { LineChart } from './LineChart'
import ThemeSwitcher from './ThemeSwitcher'
type HeaderProps = {
name: string
darkMode: boolean
setDarkMode: (state: boolean) => void
2022-10-01 20:32:01 +00:00
searchIndex: SearchIndex
}
2022-09-30 21:15:06 +00:00
import * as React from 'react'
2022-10-01 20:32:01 +00:00
import Search from './Search'
import { SearchIndex } from '../utils/search'
2022-09-30 21:15:06 +00:00
interface NavLinkProps {
href: string
name: string
}
const NavLink: React.FunctionComponent<NavLinkProps> = (props) => {
const router = useRouter()
const bg = router.asPath.startsWith(props.href)
? 'bg-rose-100 dark:bg-rose-900'
: ''
return (
<Link href={props.href}>
<a
className={`p-1 self-end hover:self-center hover:bg-rose-300 dark:hover:bg-rose-700 ${bg} rounded`}
>
{props.name}
</a>
</Link>
)
}
2022-10-01 20:32:01 +00:00
export default function Header({
name,
darkMode,
setDarkMode,
searchIndex,
}: HeaderProps) {
2022-09-30 21:15:06 +00:00
const router = useRouter()
return (
<div className="border-b-1 backdrop-blur-lg bg-white dark:bg-black bg-opacity-20 dark:bg-opacity-20 transition">
2022-09-30 21:15:06 +00:00
<header className="max-w-3xl mx-auto m-0 p-1 grow flex w-full">
<h1 className="px-2 text-3xl dark:text-white self-end">
<Link href="/">
<a>
<strong>{name}</strong>
</a>
</Link>
</h1>
2022-09-30 21:15:06 +00:00
{router.asPath != '/' && (
<div className="flex text-md items-stretch self-stretch mx-1">
<NavLink href="/variables" name="Vars" />
<NavLink href="/config_settings" name="Config" />
<NavLink href="/lua" name="Lua" />
</div>
)}
2022-10-01 22:35:57 +00:00
<LineChart width={400} height={40} darkMode={darkMode} />
2022-10-01 20:32:01 +00:00
<Search index={searchIndex} />
2022-09-30 21:15:06 +00:00
<div className="flex">
<div className="border-r mx-1 px-1 border-slate-700">
<a href="https://github.com/brndnmtthws/conky">
<GitHub />
</a>
</div>
<div className="mx-1 px-1 flex place-content-center place-items-center">
<ThemeSwitcher setDarkMode={setDarkMode} />
</div>
</div>
</header>
</div>
)
}