From facc4e301b484bb28b1e8516bc5c4b6c9135598b Mon Sep 17 00:00:00 2001 From: Travis Fischer Date: Wed, 20 Apr 2022 19:56:01 -0400 Subject: [PATCH] feat: fix dark mode; minor optimizations --- components/NotionPage.tsx | 52 +++++++++++++++------------------ components/NotionPageHeader.tsx | 35 +++++++++++++--------- components/PageAside.tsx | 29 ++++++++++++++++++ components/styles.module.css | 4 +++ package.json | 2 +- yarn.lock | 8 ++--- 6 files changed, 84 insertions(+), 46 deletions(-) create mode 100644 components/PageAside.tsx diff --git a/components/NotionPage.tsx b/components/NotionPage.tsx index ad3b9fa..1e4e0a7 100644 --- a/components/NotionPage.tsx +++ b/components/NotionPage.tsx @@ -18,7 +18,6 @@ import { NotionRenderer } from 'react-notion-x' import { getBlockTitle, getPageProperty, formatDate } from 'notion-utils' import { mapPageUrl, getCanonicalPageUrl } from 'lib/map-page-url' import { mapImageUrl } from 'lib/map-image-url' -import { getPageTweet } from 'lib/get-page-tweet' import { searchNotion } from 'lib/search-notion' import * as types from 'lib/types' import * as config from 'lib/config' @@ -27,9 +26,8 @@ import * as config from 'lib/config' import { Loading } from './Loading' import { Page404 } from './Page404' import { PageHead } from './PageHead' -import { PageActions } from './PageActions' +import { PageAside } from './PageAside' import { Footer } from './Footer' -import { PageSocial } from './PageSocial' import { NotionPageHeader } from './NotionPageHeader' import { GitHubShareButton } from './GitHubShareButton' @@ -180,6 +178,7 @@ export const NotionPage: React.FC = ({ const isLiteMode = lite === 'true' const { resolvedTheme } = useTheme() + const isDarkMode = resolvedTheme === 'dark' const siteMapPageUrl = React.useMemo(() => { const params: any = {} @@ -189,14 +188,30 @@ export const NotionPage: React.FC = ({ return mapPageUrl(site, recordMap, searchParams) }, [site, recordMap, lite]) + const keys = Object.keys(recordMap?.block || {}) + const block = recordMap?.block?.[keys[0]]?.value + + // const isRootPage = + // parsePageId(block?.id) === parsePageId(site?.rootNotionPageId) + const isBlogPost = + block?.type === 'page' && block?.parent_table === 'collection' + const showTableOfContents = !!isBlogPost + const minTableOfContentsItems = 3 + + const pageAside = React.useMemo( + () => ( + + ), + [block, recordMap, isBlogPost] + ) + + const footer = React.useMemo(() =>