Skip to content

useDarkModeContext

The useDarkModeContext hook provides access to the dark mode state and functions for controlling dark mode in the React PDF.

Return Type

NameTypeDescription
darkModebooleanThe current dark mode state
(true = dark, false = light)
setDarkModeReact.Dispatch<React.SetStateAction<boolean>>Function to update the dark mode state

Usage

To ensure the dark mode context can be accessed, you will need to use useDarkModeContext inside a component which is a child of RPProvider.

Here’s an example of using this hook to create a custom dark mode toggle component:

import {
RPConfig,
RPProvider,
RPPages,
RPDefaultLayout,
useDarkModeContext
} from '@pdf-viewer/react'
const MainPdfViewer = ({ children, pdfSrc }) => {
return (
<RPConfig licenseKey={YOUR_LICENSE_KEY}>
<RPProvider src={pdfSrc}>{children}</RPProvider>
</RPConfig>
)
}
const DarkModeButton = () => {
const { darkMode, setDarkMode } = useDarkModeContext()
return <button onClick={() => setDarkMode((prev) => !prev)}>{darkMode ? 'Light' : 'Dark'}</button>
}
export const AppPdfViewer = () => {
return (
<MainPdfViewer pdfSrc="https://cdn.codewithmosh.com/image/upload/v1721763853/guides/web-roadmap.pdf">
<DarkModeButton />
<RPDefaultLayout>
<RPPages />
</RPDefaultLayout>
</MainPdfViewer>
)
}