diff --git a/packages/desktop-client/src/components/Titlebar.tsx b/packages/desktop-client/src/components/Titlebar.tsx index 482f694bddd8d80805b3c78ab0e5196bd1e80bdf..8db6876bc87d09c10af3fc9e30d8aa78cebf16e1 100644 --- a/packages/desktop-client/src/components/Titlebar.tsx +++ b/packages/desktop-client/src/components/Titlebar.tsx @@ -416,11 +416,6 @@ export function Titlebar({ style }: TitlebarProps) { sidebar.setHidden(false); } }} - onPointerLeave={e => { - if (e.pointerType === 'mouse') { - sidebar.setHidden(true); - } - }} onPointerUp={e => { if (e.pointerType !== 'mouse') { sidebar.setHidden(!sidebar.hidden); diff --git a/packages/desktop-client/src/components/budget/SidebarCategory.tsx b/packages/desktop-client/src/components/budget/SidebarCategory.tsx index ab5a20fa345a630e4ac51ee183d483a410f864f9..0504c8d03a39669104aad50afe2a7b6ba3c35c3e 100644 --- a/packages/desktop-client/src/components/budget/SidebarCategory.tsx +++ b/packages/desktop-client/src/components/budget/SidebarCategory.tsx @@ -106,11 +106,11 @@ export function SidebarCategory({ setMenuOpen(false); }} items={[ + { name: 'rename', text: 'Rename' }, !categoryGroup?.hidden && { name: 'toggle-visibility', text: category.hidden ? 'Show' : 'Hide', }, - { name: 'rename', text: 'Rename' }, { name: 'delete', text: 'Delete' }, ]} /> diff --git a/packages/desktop-client/src/components/budget/SidebarGroup.tsx b/packages/desktop-client/src/components/budget/SidebarGroup.tsx index ca9125a3fea7191abedd235fc7a73f3829007696..c01ef2bc6f978d9b542f0c91c4707e25d733dc91 100644 --- a/packages/desktop-client/src/components/budget/SidebarGroup.tsx +++ b/packages/desktop-client/src/components/budget/SidebarGroup.tsx @@ -127,11 +127,11 @@ export function SidebarGroup({ }} items={[ { name: 'add-category', text: 'Add category' }, + { name: 'rename', text: 'Rename' }, !group.is_income && { name: 'toggle-visibility', text: group.hidden ? 'Show' : 'Hide', }, - { name: 'rename', text: 'Rename' }, onDelete && { name: 'delete', text: 'Delete' }, ]} /> diff --git a/packages/desktop-client/src/components/sidebar/index.tsx b/packages/desktop-client/src/components/sidebar/index.tsx index ba5185138cc9b9459403e91d48f1f12e8057f15f..e09f6099fe13f947f871f77f410dd5d41d79af2c 100644 --- a/packages/desktop-client/src/components/sidebar/index.tsx +++ b/packages/desktop-client/src/components/sidebar/index.tsx @@ -1,5 +1,7 @@ import React from 'react'; +import { useDebounceCallback } from 'usehooks-ts'; + import { useGlobalPref } from '../../hooks/useGlobalPref'; import { useResponsive } from '../../ResponsiveProvider'; import { View } from '../common/View'; @@ -14,25 +16,30 @@ export function FloatableSidebar() { const { isNarrowWidth } = useResponsive(); const sidebarShouldFloat = floatingSidebar || sidebar.alwaysFloats; + const debouncedHideSidebar = useDebounceCallback( + () => sidebar.setHidden(true), + 350, + ); return isNarrowWidth ? null : ( <View onMouseOver={ sidebarShouldFloat ? e => { + debouncedHideSidebar.cancel(); e.stopPropagation(); sidebar.setHidden(false); } : undefined } onMouseLeave={ - sidebarShouldFloat ? () => sidebar.setHidden(true) : undefined + sidebarShouldFloat ? () => debouncedHideSidebar() : undefined } style={{ position: sidebarShouldFloat ? 'absolute' : undefined, - top: 12, + top: 8, // If not floating, the -50 takes into account the transform below - bottom: sidebarShouldFloat ? 12 : -50, + bottom: sidebarShouldFloat ? 8 : -50, zIndex: 1001, borderRadius: sidebarShouldFloat ? '0 6px 6px 0' : 0, overflow: 'hidden', @@ -40,7 +47,7 @@ export function FloatableSidebar() { !sidebarShouldFloat || sidebar.hidden ? 'none' : '0 15px 30px 0 rgba(0,0,0,0.25), 0 3px 15px 0 rgba(0,0,0,.5)', - transform: `translateY(${!sidebarShouldFloat ? -12 : 0}px) + transform: `translateY(${!sidebarShouldFloat ? -8 : 0}px) translateX(${ sidebarShouldFloat && sidebar.hidden ? '-100' : '0' }%)`, diff --git a/upcoming-release-notes/3001.md b/upcoming-release-notes/3001.md new file mode 100644 index 0000000000000000000000000000000000000000..17898d27f94b1621d478fceb18fdc2322b66be52 --- /dev/null +++ b/upcoming-release-notes/3001.md @@ -0,0 +1,6 @@ +--- +category: Bugfix +authors: [YusefOuda] +--- + +Moves "Rename" to first item in Category + Category Group menus. Adds debounce to sidebar animation.