mirror of
https://github.com/mountain-loop/yaak.git
synced 2026-04-17 06:19:41 +02:00
Clear selected sidebar index on drag-drop end
This commit is contained in:
@@ -23,6 +23,7 @@ import { useActiveEnvironmentId } from '../hooks/useActiveEnvironmentId';
|
|||||||
import { WorkspaceActionsDropdown } from './WorkspaceActionsDropdown';
|
import { WorkspaceActionsDropdown } from './WorkspaceActionsDropdown';
|
||||||
import { IconButton } from './core/IconButton';
|
import { IconButton } from './core/IconButton';
|
||||||
import { useCreateRequest } from '../hooks/useCreateRequest';
|
import { useCreateRequest } from '../hooks/useCreateRequest';
|
||||||
|
import { w } from '@tauri-apps/api/clipboard-79413165';
|
||||||
|
|
||||||
interface Props {
|
interface Props {
|
||||||
className?: string;
|
className?: string;
|
||||||
@@ -78,6 +79,10 @@ export const Sidebar = memo(function Sidebar({ className }: Props) {
|
|||||||
[focusActiveRequest, requests, routes, activeEnvironmentId],
|
[focusActiveRequest, requests, routes, activeEnvironmentId],
|
||||||
);
|
);
|
||||||
|
|
||||||
|
const handleClearSelected = useCallback(() => {
|
||||||
|
setSelectedIndex(undefined);
|
||||||
|
}, [setSelectedIndex]);
|
||||||
|
|
||||||
const handleFocus = useCallback(() => {
|
const handleFocus = useCallback(() => {
|
||||||
if (hasFocus) return;
|
if (hasFocus) return;
|
||||||
focusActiveRequest();
|
focusActiveRequest();
|
||||||
@@ -184,6 +189,7 @@ export const Sidebar = memo(function Sidebar({ className }: Props) {
|
|||||||
requests={requests}
|
requests={requests}
|
||||||
focused={hasFocus}
|
focused={hasFocus}
|
||||||
onSelect={handleSelect}
|
onSelect={handleSelect}
|
||||||
|
onClearSelected={handleClearSelected}
|
||||||
/>
|
/>
|
||||||
</VStack>
|
</VStack>
|
||||||
</div>
|
</div>
|
||||||
@@ -196,9 +202,10 @@ interface SidebarItemsProps {
|
|||||||
focused: boolean;
|
focused: boolean;
|
||||||
selectedIndex?: number;
|
selectedIndex?: number;
|
||||||
onSelect: (requestId: string) => void;
|
onSelect: (requestId: string) => void;
|
||||||
|
onClearSelected: () => void;
|
||||||
}
|
}
|
||||||
|
|
||||||
function SidebarItems({ requests, focused, selectedIndex, onSelect }: SidebarItemsProps) {
|
function SidebarItems({ requests, focused, selectedIndex, onSelect, onClearSelected }: SidebarItemsProps) {
|
||||||
const [hoveredIndex, setHoveredIndex] = useState<number | null>(null);
|
const [hoveredIndex, setHoveredIndex] = useState<number | null>(null);
|
||||||
const updateRequest = useUpdateAnyRequest();
|
const updateRequest = useUpdateAnyRequest();
|
||||||
|
|
||||||
@@ -214,6 +221,7 @@ function SidebarItems({ requests, focused, selectedIndex, onSelect }: SidebarIte
|
|||||||
(requestId) => {
|
(requestId) => {
|
||||||
if (hoveredIndex === null) return;
|
if (hoveredIndex === null) return;
|
||||||
setHoveredIndex(null);
|
setHoveredIndex(null);
|
||||||
|
onClearSelected();
|
||||||
|
|
||||||
const index = requests.findIndex((r) => r.id === requestId);
|
const index = requests.findIndex((r) => r.id === requestId);
|
||||||
const request = requests[index];
|
const request = requests[index];
|
||||||
|
|||||||
Reference in New Issue
Block a user