Jacky Zhao
2023-07-02 e0ebee5aa9b3646de722f139f1d8d15591df538e
quartz/components/Header.tsx
@@ -1,20 +1,24 @@
import { resolveToRoot } from "../path"
import Darkmode from "./Darkmode"
import style from './styles/header.scss'
import { QuartzComponentConstructor, QuartzComponentProps } from "./types"
export interface HeaderProps {
  title: string
  slug: string
function Header({ children }: QuartzComponentProps) {
  return (children.length > 0) ? <header>
    {children}
  </header> : null
}
export default function Header({ title, slug }: HeaderProps) {
  const baseDir = resolveToRoot(slug)
  return <header>
    <h1><a href={baseDir}>{title}</a></h1>
    <div class="spacer"></div>
    <Darkmode />
  </header>
Header.css = `
header {
  display: flex;
  flex-direction: row;
  align-items: center;
  margin: 2em 0;
  gap: 1.5rem;
}
Header.beforeDOMLoaded = Darkmode.beforeDOMLoaded
Header.css = style + Darkmode.css
header h1 {
  margin: 0;
  flex: auto;
}
`
export default (() => Header) satisfies QuartzComponentConstructor