Fix sidebar request focus

This commit is contained in:
Gregory Schier
2023-04-09 22:03:41 -07:00
parent ebb78922f0
commit 6f5cb528c6
2 changed files with 10 additions and 2 deletions

View File

@@ -46,6 +46,7 @@ export const Sidebar = memo(function Sidebar({ className }: Props) {
(forcedIndex?: number) => {
const index = forcedIndex ?? requests.findIndex((r) => r.id === activeRequestId);
setSelectedIndex(index >= 0 ? index : 0);
setHasFocus(true);
sidebarRef.current?.focus();
},
[activeRequestId, requests],
@@ -63,7 +64,7 @@ export const Sidebar = memo(function Sidebar({ className }: Props) {
[activeRequestId, focusActiveRequest, requests, routes],
);
const handleFocus = useCallback(() => setHasFocus(true), []);
const handleFocus = useCallback(() => focusActiveRequest(), [focusActiveRequest]);
const handleBlur = useCallback(() => setHasFocus(false), []);
useTauriEvent(

View File

@@ -359,7 +359,14 @@ function MenuItem({ className, focused, onFocus, item, onSelect, ...props }: Men
{...props}
>
{item.leftSlot && <div className="pr-2 flex justify-start">{item.leftSlot}</div>}
<div>{item.label}</div>
<div
className={classnames(
// Add padding on right when no right slot, for some visual balance
!item.rightSlot && 'pr-4',
)}
>
{item.label}
</div>
{item.rightSlot && <div className="ml-auto pl-3">{item.rightSlot}</div>}
</button>
);