From de29cfe2590daed53fe6dc6f977ae4d9f060dfa4 Mon Sep 17 00:00:00 2001 From: moonrailgun Date: Mon, 6 Dec 2021 14:23:32 +0800 Subject: [PATCH] =?UTF-8?q?refactor:=20=E4=BF=AE=E6=94=B9=E5=8A=A0?= =?UTF-8?q?=E8=BD=BD=E9=85=8D=E8=89=B2=E6=96=B9=E6=A1=88=E4=BA=8B=E4=BB=B6?= =?UTF-8?q?=E4=B8=BAloadColorScheme?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- shared/contexts/ColorSchemeContext.tsx | 14 +++++--------- shared/event/index.ts | 2 +- 2 files changed, 6 insertions(+), 10 deletions(-) diff --git a/shared/contexts/ColorSchemeContext.tsx b/shared/contexts/ColorSchemeContext.tsx index 29f88d7f..119b8a64 100644 --- a/shared/contexts/ColorSchemeContext.tsx +++ b/shared/contexts/ColorSchemeContext.tsx @@ -1,4 +1,4 @@ -import React, { useCallback, useContext } from 'react'; +import React, { useContext, useEffect } from 'react'; import { useStorage } from 'tailchat-shared'; import { parseColorScheme } from '../../web/src/utils/color-scheme-helper'; import { sharedEvent } from '../event'; @@ -16,18 +16,14 @@ const ColorSchemeContext = React.createContext<{ ColorSchemeContext.displayName = 'ColorSchemeContext'; export const ColorSchemeContextProvider: React.FC = React.memo((props) => { - const [colorScheme = 'dark', { save: saveColorScheme }] = useStorage( + const [colorScheme = 'dark', { save: setColorScheme }] = useStorage( 'colorScheme', 'dark' ); - const setColorScheme = useCallback( - (colorScheme: string) => { - sharedEvent.emit('changeColorScheme', colorScheme); - saveColorScheme(colorScheme); - }, - [saveColorScheme] - ); + useEffect(() => { + sharedEvent.emit('loadColorScheme', colorScheme); + }, [colorScheme]); return ( diff --git a/shared/event/index.ts b/shared/event/index.ts index 0841a97d..32ff2eff 100644 --- a/shared/event/index.ts +++ b/shared/event/index.ts @@ -7,7 +7,7 @@ export interface SharedEventMap { /** * 修改配色方案 */ - changeColorScheme: (scheme: string) => void; + loadColorScheme: (scheme: string) => void; } export type SharedEventType = keyof SharedEventMap;