hedgedoc/src/components/editor-page/renderer-pane/hooks/use-send-dark-mode-status-to-renderer.ts
Tilman Vatteroth f1e91b4574
Restructure Communicator (#1510)
Signed-off-by: Tilman Vatteroth <git@tilmanvatteroth.de>
2021-09-26 11:09:46 +02:00

29 lines
990 B
TypeScript

/*
* SPDX-FileCopyrightText: 2021 The HedgeDoc developers (see AUTHORS file)
*
* SPDX-License-Identifier: AGPL-3.0-only
*/
import { useIsDarkModeActivated } from '../../../../hooks/common/use-is-dark-mode-activated'
import { useMemo } from 'react'
import { CommunicationMessageType } from '../../../render-page/window-post-message-communicator/rendering-message'
import { useSendToRenderer } from '../../../render-page/window-post-message-communicator/hooks/use-send-to-renderer'
/**
* Sends the current dark mode setting to the renderer.
*
* @param forcedDarkMode Overwrites the value from the global application states if set.
*/
export const useSendDarkModeStatusToRenderer = (forcedDarkMode?: boolean): void => {
const savedDarkMode = useIsDarkModeActivated()
useSendToRenderer(
useMemo(
() => ({
type: CommunicationMessageType.SET_DARKMODE,
activated: forcedDarkMode ?? savedDarkMode
}),
[forcedDarkMode, savedDarkMode]
)
)
}