FIX: Clean up (anchorOrigin/transformOrigin) logic
This commit is contained in:
committed by
Nicolás Hatcher Andrés
parent
475c3e9d49
commit
5683d02b93
@@ -14,8 +14,8 @@ type ColorPickerProps = {
|
|||||||
onChange: (color: string) => void;
|
onChange: (color: string) => void;
|
||||||
onClose: () => void;
|
onClose: () => void;
|
||||||
anchorEl: React.RefObject<HTMLElement | null>;
|
anchorEl: React.RefObject<HTMLElement | null>;
|
||||||
anchorOrigin?: PopoverOrigin;
|
anchorOrigin: PopoverOrigin;
|
||||||
transformOrigin?: PopoverOrigin;
|
transformOrigin: PopoverOrigin;
|
||||||
open: boolean;
|
open: boolean;
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -35,7 +35,6 @@ const ColorPicker = ({
|
|||||||
}: ColorPickerProps) => {
|
}: ColorPickerProps) => {
|
||||||
const [selectedColor, setSelectedColor] = useState<string>(color);
|
const [selectedColor, setSelectedColor] = useState<string>(color);
|
||||||
const [isPickerOpen, setPickerOpen] = useState(false);
|
const [isPickerOpen, setPickerOpen] = useState(false);
|
||||||
const [isMenuOpen, setMenuOpen] = useState(open && !isPickerOpen);
|
|
||||||
const recentColors = useRef<string[]>([]);
|
const recentColors = useRef<string[]>([]);
|
||||||
const { t } = useTranslation();
|
const { t } = useTranslation();
|
||||||
|
|
||||||
@@ -43,10 +42,6 @@ const ColorPicker = ({
|
|||||||
setSelectedColor(color);
|
setSelectedColor(color);
|
||||||
}, [color]);
|
}, [color]);
|
||||||
|
|
||||||
useEffect(() => {
|
|
||||||
setMenuOpen(open && !isPickerOpen);
|
|
||||||
}, [open, isPickerOpen]);
|
|
||||||
|
|
||||||
const handleColorSelect = (color: string) => {
|
const handleColorSelect = (color: string) => {
|
||||||
if (!recentColors.current.includes(color)) {
|
if (!recentColors.current.includes(color)) {
|
||||||
const maxRecentColors = 14;
|
const maxRecentColors = 14;
|
||||||
@@ -62,7 +57,7 @@ const ColorPicker = ({
|
|||||||
|
|
||||||
const handleClose = () => {
|
const handleClose = () => {
|
||||||
setPickerOpen(false);
|
setPickerOpen(false);
|
||||||
if (onClose) onClose();
|
onClose();
|
||||||
};
|
};
|
||||||
|
|
||||||
// Colors definitions
|
// Colors definitions
|
||||||
@@ -120,17 +115,13 @@ const ColorPicker = ({
|
|||||||
// Render color picker or menu
|
// Render color picker or menu
|
||||||
return (
|
return (
|
||||||
<>
|
<>
|
||||||
{isPickerOpen ? (
|
{isPickerOpen && open ? (
|
||||||
<StylePopover
|
<StylePopover
|
||||||
open={isPickerOpen}
|
open={isPickerOpen}
|
||||||
onClose={handleClose}
|
onClose={handleClose}
|
||||||
anchorEl={anchorEl.current}
|
anchorEl={anchorEl.current}
|
||||||
anchorOrigin={
|
anchorOrigin={anchorOrigin}
|
||||||
anchorOrigin || { vertical: "bottom", horizontal: "left" }
|
transformOrigin={transformOrigin}
|
||||||
}
|
|
||||||
transformOrigin={
|
|
||||||
transformOrigin || { vertical: "top", horizontal: "left" }
|
|
||||||
}
|
|
||||||
>
|
>
|
||||||
<ColorPickerDialog>
|
<ColorPickerDialog>
|
||||||
<HexColorPicker
|
<HexColorPicker
|
||||||
@@ -158,7 +149,7 @@ const ColorPicker = ({
|
|||||||
</ColorPickerInput>
|
</ColorPickerInput>
|
||||||
<HorizontalDivider />
|
<HorizontalDivider />
|
||||||
<Buttons>
|
<Buttons>
|
||||||
<CancelButton onClick={handleClose}>
|
<CancelButton onClick={() => setPickerOpen(false)}>
|
||||||
{t("color_picker.cancel")}
|
{t("color_picker.cancel")}
|
||||||
</CancelButton>
|
</CancelButton>
|
||||||
<StyledButton
|
<StyledButton
|
||||||
@@ -176,8 +167,10 @@ const ColorPicker = ({
|
|||||||
) : (
|
) : (
|
||||||
<StyledMenu
|
<StyledMenu
|
||||||
anchorEl={anchorEl.current}
|
anchorEl={anchorEl.current}
|
||||||
open={isMenuOpen}
|
open={open && !isPickerOpen}
|
||||||
onClose={handleClose}
|
onClose={handleClose}
|
||||||
|
anchorOrigin={anchorOrigin}
|
||||||
|
transformOrigin={transformOrigin}
|
||||||
>
|
>
|
||||||
<MenuItemWrapper onClick={() => handleColorSelect(defaultColor)}>
|
<MenuItemWrapper onClick={() => handleColorSelect(defaultColor)}>
|
||||||
<MenuItemSquare style={{ backgroundColor: defaultColor }} />
|
<MenuItemSquare style={{ backgroundColor: defaultColor }} />
|
||||||
|
|||||||
@@ -149,6 +149,8 @@ function SheetTab(props: SheetTabProps) {
|
|||||||
}}
|
}}
|
||||||
anchorEl={colorButton}
|
anchorEl={colorButton}
|
||||||
open={colorPickerOpen}
|
open={colorPickerOpen}
|
||||||
|
anchorOrigin={{ vertical: "bottom", horizontal: "right" }}
|
||||||
|
transformOrigin={{ vertical: "bottom", horizontal: "left" }}
|
||||||
/>
|
/>
|
||||||
<SheetDeleteDialog
|
<SheetDeleteDialog
|
||||||
open={deleteDialogOpen}
|
open={deleteDialogOpen}
|
||||||
|
|||||||
@@ -454,6 +454,8 @@ function Toolbar(properties: ToolbarProperties) {
|
|||||||
}}
|
}}
|
||||||
anchorEl={fontColorButton}
|
anchorEl={fontColorButton}
|
||||||
open={fontColorPickerOpen}
|
open={fontColorPickerOpen}
|
||||||
|
anchorOrigin={{ vertical: "bottom", horizontal: "left" }}
|
||||||
|
transformOrigin={{ vertical: "top", horizontal: "left" }}
|
||||||
/>
|
/>
|
||||||
<ColorPicker
|
<ColorPicker
|
||||||
color={properties.fillColor}
|
color={properties.fillColor}
|
||||||
@@ -470,6 +472,8 @@ function Toolbar(properties: ToolbarProperties) {
|
|||||||
}}
|
}}
|
||||||
anchorEl={fillColorButton}
|
anchorEl={fillColorButton}
|
||||||
open={fillColorPickerOpen}
|
open={fillColorPickerOpen}
|
||||||
|
anchorOrigin={{ vertical: "bottom", horizontal: "left" }}
|
||||||
|
transformOrigin={{ vertical: "top", horizontal: "left" }}
|
||||||
/>
|
/>
|
||||||
<BorderPicker
|
<BorderPicker
|
||||||
onChange={(border): void => {
|
onChange={(border): void => {
|
||||||
|
|||||||
Reference in New Issue
Block a user