diff --git a/packages/twenty-front/src/modules/object-record/object-filter-dropdown/components/MultipleFiltersButton.tsx b/packages/twenty-front/src/modules/object-record/object-filter-dropdown/components/MultipleFiltersButton.tsx index e13d55d55..41c04e372 100644 --- a/packages/twenty-front/src/modules/object-record/object-filter-dropdown/components/MultipleFiltersButton.tsx +++ b/packages/twenty-front/src/modules/object-record/object-filter-dropdown/components/MultipleFiltersButton.tsx @@ -6,7 +6,9 @@ import { useDropdown } from '@/ui/layout/dropdown/hooks/useDropdown'; export const MultipleFiltersButton = () => { const { resetFilterDropdown } = useResetFilterDropdown(); - const { toggleDropdown } = useDropdown(OBJECT_FILTER_DROPDOWN_ID); + const { toggleDropdown, isDropdownOpen } = useDropdown( + OBJECT_FILTER_DROPDOWN_ID, + ); const handleClick = () => { toggleDropdown(); @@ -14,7 +16,10 @@ export const MultipleFiltersButton = () => { }; return ( - + Filter ); diff --git a/packages/twenty-front/src/modules/object-record/object-options-dropdown/components/ObjectOptionsDropdown.tsx b/packages/twenty-front/src/modules/object-record/object-options-dropdown/components/ObjectOptionsDropdown.tsx index 06d39bf6a..970a74ddb 100644 --- a/packages/twenty-front/src/modules/object-record/object-options-dropdown/components/ObjectOptionsDropdown.tsx +++ b/packages/twenty-front/src/modules/object-record/object-options-dropdown/components/ObjectOptionsDropdown.tsx @@ -9,6 +9,7 @@ import { ObjectOptionsContentId } from '@/object-record/object-options-dropdown/ import { TableOptionsHotkeyScope } from '@/object-record/record-table/types/TableOptionsHotkeyScope'; import { Dropdown } from '@/ui/layout/dropdown/components/Dropdown'; import { StyledHeaderDropdownButton } from '@/ui/layout/dropdown/components/StyledHeaderDropdownButton'; +import { useDropdown } from '@/ui/layout/dropdown/hooks/useDropdown'; import { ViewType } from '@/views/types/ViewType'; type ObjectOptionsDropdownProps = { @@ -25,6 +26,8 @@ export const ObjectOptionsDropdown = ({ const { currentContentId, handleContentChange, handleResetContent } = useCurrentContentId(); + const { isDropdownOpen } = useDropdown(OBJECT_OPTIONS_DROPDOWN_ID); + return ( Options + + Options + } onClose={handleResetContent} dropdownComponents={ diff --git a/packages/twenty-front/src/modules/object-record/object-sort-dropdown/components/ObjectSortDropdownButton.tsx b/packages/twenty-front/src/modules/object-record/object-sort-dropdown/components/ObjectSortDropdownButton.tsx index 5dfff72ae..54b4a76a4 100644 --- a/packages/twenty-front/src/modules/object-record/object-sort-dropdown/components/ObjectSortDropdownButton.tsx +++ b/packages/twenty-front/src/modules/object-record/object-sort-dropdown/components/ObjectSortDropdownButton.tsx @@ -19,6 +19,7 @@ import { DropdownMenuHeader } from '@/ui/layout/dropdown/components/DropdownMenu import { DropdownMenuItemsContainer } from '@/ui/layout/dropdown/components/DropdownMenuItemsContainer'; import { DropdownMenuSeparator } from '@/ui/layout/dropdown/components/DropdownMenuSeparator'; import { StyledHeaderDropdownButton } from '@/ui/layout/dropdown/components/StyledHeaderDropdownButton'; +import { useDropdown } from '@/ui/layout/dropdown/hooks/useDropdown'; import { HotkeyScope } from '@/ui/utilities/hotkey/types/HotkeyScope'; import { useRecoilComponentStateV2 } from '@/ui/utilities/state/component-state/hooks/useRecoilComponentStateV2'; import { useRecoilComponentValueV2 } from '@/ui/utilities/state/component-state/hooks/useRecoilComponentValueV2'; @@ -169,13 +170,18 @@ export const ObjectSortDropdownButton = ({ setIsSortDirectionMenuUnfolded(false); }; + const { isDropdownOpen } = useDropdown(OBJECT_SORT_DROPDOWN_ID); + return ( + Sort } diff --git a/packages/twenty-front/src/modules/object-record/record-table/record-table-footer/components/RecordTableColumnAggregateFooterValueCell.tsx b/packages/twenty-front/src/modules/object-record/record-table/record-table-footer/components/RecordTableColumnAggregateFooterValueCell.tsx index 3d8cf824a..28f5ce8f2 100644 --- a/packages/twenty-front/src/modules/object-record/record-table/record-table-footer/components/RecordTableColumnAggregateFooterValueCell.tsx +++ b/packages/twenty-front/src/modules/object-record/record-table/record-table-footer/components/RecordTableColumnAggregateFooterValueCell.tsx @@ -10,7 +10,7 @@ import { useContext, useState } from 'react'; import { useRecoilValue } from 'recoil'; import { IconChevronDown } from 'twenty-ui'; -const StyledCell = styled.div` +const StyledCell = styled.div<{ isUnfolded: boolean }>` align-items: center; display: flex; flex-direction: row; @@ -23,6 +23,16 @@ const StyledCell = styled.div` min-width: ${({ theme }) => theme.spacing(7)}; flex-grow: 1; width: 100%; + + background: ${({ theme, isUnfolded }) => + isUnfolded ? theme.background.transparent.light : theme.background.primary}; + + &:hover { + background: ${({ theme, isUnfolded }) => + isUnfolded + ? theme.background.transparent.medium + : theme.background.transparent.light}; + } `; const StyledIcon = styled(IconChevronDown)` @@ -66,7 +76,7 @@ export const RecordTableColumnAggregateFooterValueCell = ({ }} onMouseLeave={() => setIsHovered(false)} > - + {isHovered || isDropdownOpen || hasAggregateOperationForViewField || diff --git a/packages/twenty-front/src/modules/ui/layout/dropdown/components/Dropdown.tsx b/packages/twenty-front/src/modules/ui/layout/dropdown/components/Dropdown.tsx index 6b266e49e..b83960ddb 100644 --- a/packages/twenty-front/src/modules/ui/layout/dropdown/components/Dropdown.tsx +++ b/packages/twenty-front/src/modules/ui/layout/dropdown/components/Dropdown.tsx @@ -30,26 +30,6 @@ const StyledDropdownFallbackAnchor = styled.div` top: 0; `; -type StyledHeaderDivProps = { - isUnfolded?: boolean; - isActive?: boolean; -}; - -const StyledHeaderDiv = styled.div` - & button, - & > * { - background: ${({ theme, isUnfolded }) => - isUnfolded ? theme.background.transparent.light : 'none'}; - - &:hover { - background: ${({ theme, isUnfolded }) => - isUnfolded - ? theme.background.transparent.medium - : theme.background.transparent.light}; - } - } -`; - type DropdownProps = { className?: string; clickableComponent?: ReactNode; @@ -151,17 +131,16 @@ export const Dropdown = ({ <> {isDefined(clickableComponent) ? ( - {clickableComponent} - + ) : ( )} diff --git a/packages/twenty-front/src/modules/ui/layout/dropdown/components/StyledHeaderDropdownButton.tsx b/packages/twenty-front/src/modules/ui/layout/dropdown/components/StyledHeaderDropdownButton.tsx index bc0373c93..7ac30a349 100644 --- a/packages/twenty-front/src/modules/ui/layout/dropdown/components/StyledHeaderDropdownButton.tsx +++ b/packages/twenty-front/src/modules/ui/layout/dropdown/components/StyledHeaderDropdownButton.tsx @@ -20,4 +20,14 @@ export const StyledHeaderDropdownButton = styled.button theme.spacing(2)}; user-select: none; + + background: ${({ theme, isUnfolded }) => + isUnfolded ? theme.background.transparent.light : theme.background.primary}; + + &:hover { + background: ${({ theme, isUnfolded }) => + isUnfolded + ? theme.background.transparent.medium + : theme.background.transparent.light}; + } `;