1
mirror of https://github.com/jakejarvis/jarv.is.git synced 2025-04-26 06:45:23 -04:00
jarv.is/components/Comments/Comments.tsx
2022-07-25 13:11:40 -04:00

38 lines
1006 B
TypeScript

import Giscus from "@giscus/react";
import useTheme from "../../hooks/useTheme";
import { styled, theme } from "../../lib/styles/stitches.config";
import { giscusConfig } from "../../lib/config";
import type { ComponentProps } from "react";
import type { GiscusProps } from "@giscus/react";
const Wrapper = styled("div", {
marginTop: "2em",
paddingTop: "2em",
borderTop: `2px solid ${theme.colors.light}`,
minHeight: "360px",
});
export type CommentsProps = ComponentProps<typeof Wrapper> & {
title: string;
};
const Comments = ({ title, ...rest }: CommentsProps) => {
const { activeTheme } = useTheme();
// TODO: use custom `<Loading />` spinner component during suspense
return (
<Wrapper {...rest}>
<Giscus
{...(giscusConfig as GiscusProps)}
term={title}
mapping="specific"
reactionsEnabled="1"
emitMetadata="0"
theme={activeTheme === "dark" ? activeTheme : "light"}
/>
</Wrapper>
);
};
export default Comments;