From bbb95dbc5b625b3e6b66b0d2d64fcbd8a89beaa9 Mon Sep 17 00:00:00 2001 From: psychedelicious <4822129+psychedelicious@users.noreply.github.com> Date: Sun, 12 Mar 2023 16:38:50 +1100 Subject: [PATCH] fix(ui): add color mode watcher --- invokeai/frontend/web/src/app/App.tsx | 13 ++++++++++++- .../frontend/web/src/app/ThemeLocaleProvider.tsx | 3 +-- .../ImageMetaDataViewer/ImageMetadataViewer.tsx | 9 ++++++--- 3 files changed, 19 insertions(+), 6 deletions(-) diff --git a/invokeai/frontend/web/src/app/App.tsx b/invokeai/frontend/web/src/app/App.tsx index ef4da0c587..c8faa2724e 100644 --- a/invokeai/frontend/web/src/app/App.tsx +++ b/invokeai/frontend/web/src/app/App.tsx @@ -9,15 +9,25 @@ import useToastWatcher from 'features/system/hooks/useToastWatcher'; import FloatingGalleryButton from 'features/ui/components/FloatingGalleryButton'; import FloatingParametersPanelButtons from 'features/ui/components/FloatingParametersPanelButtons'; -import { Box, Flex, Grid, Portal } from '@chakra-ui/react'; +import { Box, Flex, Grid, Portal, useColorMode } from '@chakra-ui/react'; import { APP_HEIGHT, APP_WIDTH } from 'theme/util/constants'; import ImageGalleryPanel from 'features/gallery/components/ImageGalleryPanel'; +import Lightbox from 'features/lightbox/components/Lightbox'; +import { useAppSelector } from './storeHooks'; +import { useEffect } from 'react'; keepGUIAlive(); const App = () => { useToastWatcher(); + const currentTheme = useAppSelector((state) => state.ui.currentTheme); + const { setColorMode } = useColorMode(); + + useEffect(() => { + setColorMode(['light'].includes(currentTheme) ? 'light' : 'dark'); + }, [setColorMode, currentTheme]); + return ( @@ -45,6 +55,7 @@ const App = () => { + ); }; diff --git a/invokeai/frontend/web/src/app/ThemeLocaleProvider.tsx b/invokeai/frontend/web/src/app/ThemeLocaleProvider.tsx index cff8f15353..7d176d4e61 100644 --- a/invokeai/frontend/web/src/app/ThemeLocaleProvider.tsx +++ b/invokeai/frontend/web/src/app/ThemeLocaleProvider.tsx @@ -1,4 +1,4 @@ -import { ChakraProvider, extendTheme } from '@chakra-ui/react'; +import { ChakraProvider, extendTheme, useColorMode } from '@chakra-ui/react'; import { ReactNode, useEffect } from 'react'; import { useTranslation } from 'react-i18next'; import { theme as invokeAITheme } from 'theme/theme'; @@ -42,7 +42,6 @@ function ThemeLocaleProvider({ children }: ThemeLocaleProviderProps) { const theme = extendTheme({ ...invokeAITheme, colors: THEMES[currentTheme as keyof typeof THEMES], - initialColorMode: ['light'].includes(currentTheme) ? 'light' : 'dark', direction, }); diff --git a/invokeai/frontend/web/src/features/gallery/components/ImageMetaDataViewer/ImageMetadataViewer.tsx b/invokeai/frontend/web/src/features/gallery/components/ImageMetaDataViewer/ImageMetadataViewer.tsx index ce10e255c1..3e747a1235 100644 --- a/invokeai/frontend/web/src/features/gallery/components/ImageMetaDataViewer/ImageMetadataViewer.tsx +++ b/invokeai/frontend/web/src/features/gallery/components/ImageMetaDataViewer/ImageMetadataViewer.tsx @@ -181,9 +181,11 @@ const ImageMetadataViewer = memo( overflow: 'scroll', maxHeight: APP_METADATA_HEIGHT, height: '100%', - zIndex: '10', backdropFilter: 'blur(10px)', - bg: 'blackAlpha.600', + bg: 'whiteAlpha.600', + _dark: { + bg: 'blackAlpha.600', + }, }} > @@ -449,7 +451,8 @@ const ImageMetadataViewer = memo( borderRadius: 'base', overflowX: 'scroll', wordBreak: 'break-all', - bg: 'whiteAlpha.100', + bg: 'whiteAlpha.200', + _dark: { bg: 'blackAlpha.200' }, }} >
{metadataJSON}