mirror of
https://github.com/jakejarvis/jarv.is.git
synced 2025-04-26 17:28:27 -04:00
43 lines
961 B
TypeScript
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;
|