1
mirror of https://github.com/jakejarvis/jarv.is.git synced 2025-04-26 17:28:27 -04:00
jarv.is/components/NoteTitle/NoteTitle.tsx

43 lines
961 B
TypeScript

import NextLink from "next/link";
import { styled } from "../../lib/styles/stitches.config";
import type { ComponentProps } from "react";
import type { NoteFrontMatter } from "../../types";
const Title = styled("h1", {
margin: "0.3em 0 0.5em -1px", // misaligned left margin, super nitpicky
fontSize: "2.1em",
lineHeight: 1.3,
fontWeight: 700,
code: {
margin: "0 0.075em",
},
"@medium": {
fontSize: "1.8em",
},
});
const Link = styled("a", {
color: "$text",
textDecoration: "none",
});
export type NoteTitleProps = Pick<NoteFrontMatter, "slug" | "htmlTitle"> & ComponentProps<typeof Title>;
const NoteTitle = ({ slug, htmlTitle, ...rest }: NoteTitleProps) => (
<Title {...rest}>
<NextLink
href={{
pathname: "/notes/[slug]/",
query: { slug },
}}
passHref={true}
>
<Link dangerouslySetInnerHTML={{ __html: htmlTitle }} />
</NextLink>
</Title>
);
export default NoteTitle;