@@ -17,7 +17,7 @@ import * as types from '@/lib/types'
1717import { mapImageUrl } from '@/lib/map-image-url'
1818import { getCanonicalPageUrl , mapPageUrl } from '@/lib/map-page-url'
1919import { searchNotion } from '@/lib/search-notion'
20- import { useDarkMode } from '@/lib/use-dark-mode'
20+ import { DarkModeContext , useDarkMode } from '@/lib/use-dark-mode'
2121
2222import { Footer } from './Footer'
2323import { GitHubShareButton } from './GitHubShareButton'
@@ -172,7 +172,7 @@ export const NotionPage: React.FC<types.PageProps> = ({
172172 // lite mode is for oembed
173173 const isLiteMode = lite === 'true'
174174
175- const { isDarkMode } = useDarkMode ( )
175+ const { isDarkMode, toggleDarkMode } = useDarkMode ( )
176176
177177 const siteMapPageUrl = React . useMemo ( ( ) => {
178178 const params : any = { }
@@ -233,8 +233,8 @@ export const NotionPage: React.FC<types.PageProps> = ({
233233
234234 const socialImage = mapImageUrl (
235235 getPageProperty < string > ( 'Social Image' , block , recordMap ) ||
236- ( block as PageBlock ) . format ?. page_cover ||
237- config . defaultPageCover ,
236+ ( block as PageBlock ) . format ?. page_cover ||
237+ config . defaultPageCover ,
238238 block
239239 )
240240
@@ -244,44 +244,46 @@ export const NotionPage: React.FC<types.PageProps> = ({
244244
245245 return (
246246 < >
247- < PageHead
248- pageId = { pageId }
249- site = { site }
250- title = { title }
251- description = { socialDescription }
252- image = { socialImage }
253- url = { canonicalPageUrl }
254- />
255-
256- { isLiteMode && < BodyClassName className = 'notion-lite' /> }
257- { isDarkMode && < BodyClassName className = 'dark-mode' /> }
258-
259- < NotionRenderer
260- bodyClassName = { cs (
261- styles . notion ,
262- pageId === site . rootNotionPageId && 'index-page'
263- ) }
264- darkMode = { isDarkMode }
265- components = { components }
266- recordMap = { recordMap }
267- rootPageId = { site . rootNotionPageId }
268- rootDomain = { site . domain }
269- fullPage = { ! isLiteMode }
270- previewImages = { ! ! recordMap . preview_images }
271- showCollectionViewDropdown = { false }
272- showTableOfContents = { showTableOfContents }
273- minTableOfContentsItems = { minTableOfContentsItems }
274- defaultPageIcon = { config . defaultPageIcon }
275- defaultPageCover = { config . defaultPageCover }
276- defaultPageCoverPosition = { config . defaultPageCoverPosition }
277- mapPageUrl = { siteMapPageUrl }
278- mapImageUrl = { mapImageUrl }
279- searchNotion = { config . isSearchEnabled ? searchNotion : null }
280- pageAside = { pageAside }
281- footer = { footer }
282- />
283-
284- < GitHubShareButton />
247+ < DarkModeContext . Provider value = { { isDarkMode, toggleDarkMode } } >
248+ < PageHead
249+ pageId = { pageId }
250+ site = { site }
251+ title = { title }
252+ description = { socialDescription }
253+ image = { socialImage }
254+ url = { canonicalPageUrl }
255+ />
256+
257+ { isLiteMode && < BodyClassName className = 'notion-lite' /> }
258+ { isDarkMode && < BodyClassName className = 'dark-mode' /> }
259+
260+ < NotionRenderer
261+ bodyClassName = { cs (
262+ styles . notion ,
263+ pageId === site . rootNotionPageId && 'index-page'
264+ ) }
265+ darkMode = { isDarkMode }
266+ components = { components }
267+ recordMap = { recordMap }
268+ rootPageId = { site . rootNotionPageId }
269+ rootDomain = { site . domain }
270+ fullPage = { ! isLiteMode }
271+ previewImages = { ! ! recordMap . preview_images }
272+ showCollectionViewDropdown = { false }
273+ showTableOfContents = { showTableOfContents }
274+ minTableOfContentsItems = { minTableOfContentsItems }
275+ defaultPageIcon = { config . defaultPageIcon }
276+ defaultPageCover = { config . defaultPageCover }
277+ defaultPageCoverPosition = { config . defaultPageCoverPosition }
278+ mapPageUrl = { siteMapPageUrl }
279+ mapImageUrl = { mapImageUrl }
280+ searchNotion = { config . isSearchEnabled ? searchNotion : null }
281+ pageAside = { pageAside }
282+ footer = { footer }
283+ />
284+
285+ < GitHubShareButton />
286+ </ DarkModeContext . Provider >
285287 </ >
286288 )
287289}
0 commit comments