diff --git a/packages/web/components/elements/LabelColorDropdown.tsx b/packages/web/components/elements/LabelColorDropdown.tsx index 2ab9d258b..771b51aec 100644 --- a/packages/web/components/elements/LabelColorDropdown.tsx +++ b/packages/web/components/elements/LabelColorDropdown.tsx @@ -1,4 +1,4 @@ -import React, { useState } from 'react' +import React, { useMemo, useRef, useState } from 'react' import { styled } from '../tokens/stitches.config' import { Box, HStack, SpanBox } from './LayoutPrimitives' import { StyledText } from './StyledText' @@ -29,14 +29,24 @@ const DropdownMenuTrigger = styled(DropdownMenuPrimitive.Trigger, { }) export const LabelColorDropdown = (props: LabelColorDropdownProps) => { - const { isCreateMode, canEdit, labelId, labelColor, setLabelColor } = props + const pickerRef = useRef(null) + const { isCreateMode, canEdit } = props + const [triangle, setTriangle] = useState< + 'top-left' | 'hide' | 'top-right' | undefined + >('top-left') const [open, setOpen] = useState(false) - const handleCustomColorChange = (color: string) => { - setLabelColor(color.toUpperCase()) - } - const handleOpen = (open: boolean) => { + if ( + pickerRef.current && + window.innerHeight - pickerRef.current?.getBoundingClientRect().bottom < + 116 + ) { + setTriangle('hide') + } else { + setTriangle('top-left') + } + if (canEdit && open) setOpen(true) else if (isCreateMode && !canEdit && open) setOpen(true) else setOpen(false) @@ -45,6 +55,7 @@ export const LabelColorDropdown = (props: LabelColorDropdownProps) => { return ( { @@ -82,15 +93,14 @@ export const LabelColorDropdown = (props: LabelColorDropdownProps) => { }} > { - console.log('changed to color: ', color) - setLabelColor(color.hex) + props.setLabelColor(color.hex.toUpperCase()) event.preventDefault() }} onChangeComplete={(color, event) => { - console.log('onChangeComplete: ', color) - setLabelColor(color.hex) + props.setLabelColor(color.hex.toUpperCase()) event.preventDefault() }} /> @@ -140,7 +150,7 @@ function LabelOption(props: LabelOptionProps): JSX.Element { whiteSpace: 'nowrap', }} > - + ) diff --git a/packages/web/pages/settings/labels.tsx b/packages/web/pages/settings/labels.tsx index ba159d766..cd82f8488 100644 --- a/packages/web/pages/settings/labels.tsx +++ b/packages/web/pages/settings/labels.tsx @@ -904,7 +904,7 @@ function DesktopEditCard(props: any) { isCreateMode={isCreateMode && !label} canEdit={editingLabelId === label?.id} labelId={label?.id || ''} - labelColor={label?.color || '#000000'} + labelColor={labelColorHex} setLabelColor={setLabelColorHex} />