From 105a4234b04edb8e87f6da43e365325314805576 Mon Sep 17 00:00:00 2001 From: psychedelicious <4822129+psychedelicious@users.noreply.github.com> Date: Wed, 27 Sep 2023 00:11:12 +1000 Subject: [PATCH] fix(ui): fix color picker on canvas (#4706) Resolves #4667 Co-authored-by: Mary Hipp Rogers --- .../src/common/components/IAIColorPicker.tsx | 33 +++++++------------ .../IAICanvasToolbar/IAICanvasMaskOptions.tsx | 13 ++++---- .../IAICanvasToolChooserOptions.tsx | 13 +++++--- .../UnifiedCanvasColorPicker.tsx | 22 ++++++++----- 4 files changed, 40 insertions(+), 41 deletions(-) diff --git a/invokeai/frontend/web/src/common/components/IAIColorPicker.tsx b/invokeai/frontend/web/src/common/components/IAIColorPicker.tsx index f6a05c86b1..5854f7503f 100644 --- a/invokeai/frontend/web/src/common/components/IAIColorPicker.tsx +++ b/invokeai/frontend/web/src/common/components/IAIColorPicker.tsx @@ -1,18 +1,9 @@ -import { chakra, ChakraProps } from '@chakra-ui/react'; +import { Box, ChakraProps } from '@chakra-ui/react'; import { memo } from 'react'; import { RgbaColorPicker } from 'react-colorful'; import { ColorPickerBaseProps, RgbaColor } from 'react-colorful/dist/types'; -type IAIColorPickerProps = Omit, 'color'> & - ChakraProps & { - pickerColor: RgbaColor; - styleClass?: string; - }; - -const ChakraRgbaColorPicker = chakra(RgbaColorPicker, { - baseStyle: { paddingInline: 4 }, - shouldForwardProp: (prop) => !['pickerColor'].includes(prop), -}); +type IAIColorPickerProps = ColorPickerBaseProps; const colorPickerStyles: NonNullable = { width: 6, @@ -20,19 +11,17 @@ const colorPickerStyles: NonNullable = { borderColor: 'base.100', }; -const IAIColorPicker = (props: IAIColorPickerProps) => { - const { styleClass = '', ...rest } = props; +const sx = { + '.react-colorful__hue-pointer': colorPickerStyles, + '.react-colorful__saturation-pointer': colorPickerStyles, + '.react-colorful__alpha-pointer': colorPickerStyles, +}; +const IAIColorPicker = (props: IAIColorPickerProps) => { return ( - + + + ); }; diff --git a/invokeai/frontend/web/src/features/canvas/components/IAICanvasToolbar/IAICanvasMaskOptions.tsx b/invokeai/frontend/web/src/features/canvas/components/IAICanvasToolbar/IAICanvasMaskOptions.tsx index 76211a2e95..43e8febd66 100644 --- a/invokeai/frontend/web/src/features/canvas/components/IAICanvasToolbar/IAICanvasMaskOptions.tsx +++ b/invokeai/frontend/web/src/features/canvas/components/IAICanvasToolbar/IAICanvasMaskOptions.tsx @@ -1,4 +1,4 @@ -import { ButtonGroup, Flex } from '@chakra-ui/react'; +import { Box, ButtonGroup, Flex } from '@chakra-ui/react'; import { createSelector } from '@reduxjs/toolkit'; import { useAppDispatch, useAppSelector } from 'app/store/storeHooks'; import IAIButton from 'common/components/IAIButton'; @@ -135,11 +135,12 @@ const IAICanvasMaskOptions = () => { dispatch(setShouldPreserveMaskedArea(e.target.checked)) } /> - dispatch(setMaskColor(newColor))} - /> + + dispatch(setMaskColor(newColor))} + /> + } onClick={handleSaveMask}> Save Mask diff --git a/invokeai/frontend/web/src/features/canvas/components/IAICanvasToolbar/IAICanvasToolChooserOptions.tsx b/invokeai/frontend/web/src/features/canvas/components/IAICanvasToolbar/IAICanvasToolChooserOptions.tsx index 6a7db0e5f2..b5770fdda6 100644 --- a/invokeai/frontend/web/src/features/canvas/components/IAICanvasToolbar/IAICanvasToolChooserOptions.tsx +++ b/invokeai/frontend/web/src/features/canvas/components/IAICanvasToolbar/IAICanvasToolChooserOptions.tsx @@ -1,4 +1,4 @@ -import { ButtonGroup, Flex } from '@chakra-ui/react'; +import { ButtonGroup, Flex, Box } from '@chakra-ui/react'; import { createSelector } from '@reduxjs/toolkit'; import { stateSelector } from 'app/store/store'; import { useAppDispatch, useAppSelector } from 'app/store/storeHooks'; @@ -237,15 +237,18 @@ const IAICanvasToolChooserOptions = () => { sliderNumberInputProps={{ max: 500 }} /> - dispatch(setBrushColor(newColor))} - /> + > + dispatch(setBrushColor(newColor))} + /> + diff --git a/invokeai/frontend/web/src/features/ui/components/tabs/UnifiedCanvas/UnifiedCanvasBeta/UnifiedCanvasToolSettings/UnifiedCanvasColorPicker.tsx b/invokeai/frontend/web/src/features/ui/components/tabs/UnifiedCanvas/UnifiedCanvasBeta/UnifiedCanvasToolSettings/UnifiedCanvasColorPicker.tsx index 0b8366b06d..e57d87915f 100644 --- a/invokeai/frontend/web/src/features/ui/components/tabs/UnifiedCanvas/UnifiedCanvasBeta/UnifiedCanvasToolSettings/UnifiedCanvasColorPicker.tsx +++ b/invokeai/frontend/web/src/features/ui/components/tabs/UnifiedCanvas/UnifiedCanvasBeta/UnifiedCanvasToolSettings/UnifiedCanvasColorPicker.tsx @@ -95,26 +95,32 @@ export default function UnifiedCanvasColorPicker() { > {layer === 'base' && ( - dispatch(setBrushColor(newColor))} - /> + > + dispatch(setBrushColor(newColor))} + /> + )} {layer === 'mask' && ( - dispatch(setMaskColor(newColor))} - /> + > + dispatch(setMaskColor(newColor))} + /> + )}