mirror of
https://github.com/mountain-loop/yaak.git
synced 2026-04-23 00:58:32 +02:00
Create request/folder with proper folderId
This commit is contained in:
@@ -1,3 +1,4 @@
|
|||||||
|
import { useActiveRequest } from '../hooks/useActiveRequest';
|
||||||
import { useCreateDropdownItems } from '../hooks/useCreateDropdownItems';
|
import { useCreateDropdownItems } from '../hooks/useCreateDropdownItems';
|
||||||
import type { DropdownProps } from './core/Dropdown';
|
import type { DropdownProps } from './core/Dropdown';
|
||||||
import { Dropdown } from './core/Dropdown';
|
import { Dropdown } from './core/Dropdown';
|
||||||
@@ -7,7 +8,13 @@ interface Props extends Omit<DropdownProps, 'items'> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
export function CreateDropdown({ hideFolder, children, ...props }: Props) {
|
export function CreateDropdown({ hideFolder, children, ...props }: Props) {
|
||||||
const items = useCreateDropdownItems({ hideFolder, hideIcons: true });
|
const activeRequest = useActiveRequest();
|
||||||
|
const folderId = activeRequest?.folderId ?? null;
|
||||||
|
const items = useCreateDropdownItems({
|
||||||
|
hideFolder,
|
||||||
|
hideIcons: true,
|
||||||
|
folderId,
|
||||||
|
});
|
||||||
return (
|
return (
|
||||||
<Dropdown items={items} {...props}>
|
<Dropdown items={items} {...props}>
|
||||||
{children}
|
{children}
|
||||||
|
|||||||
@@ -13,7 +13,7 @@ export function useCreateDropdownItems({
|
|||||||
}: {
|
}: {
|
||||||
hideFolder?: boolean;
|
hideFolder?: boolean;
|
||||||
hideIcons?: boolean;
|
hideIcons?: boolean;
|
||||||
folderId?: string;
|
folderId?: string | null;
|
||||||
} = {}): DropdownItem[] {
|
} = {}): DropdownItem[] {
|
||||||
const createHttpRequest = useCreateHttpRequest();
|
const createHttpRequest = useCreateHttpRequest();
|
||||||
const createGrpcRequest = useCreateGrpcRequest();
|
const createGrpcRequest = useCreateGrpcRequest();
|
||||||
|
|||||||
@@ -2,13 +2,11 @@ import { useMutation } from '@tanstack/react-query';
|
|||||||
import type { Folder } from '@yaakapp/api';
|
import type { Folder } from '@yaakapp/api';
|
||||||
import { trackEvent } from '../lib/analytics';
|
import { trackEvent } from '../lib/analytics';
|
||||||
import { invokeCmd } from '../lib/tauri';
|
import { invokeCmd } from '../lib/tauri';
|
||||||
import { useActiveRequest } from './useActiveRequest';
|
|
||||||
import { useActiveWorkspace } from './useActiveWorkspace';
|
import { useActiveWorkspace } from './useActiveWorkspace';
|
||||||
import { usePrompt } from './usePrompt';
|
import { usePrompt } from './usePrompt';
|
||||||
|
|
||||||
export function useCreateFolder() {
|
export function useCreateFolder() {
|
||||||
const workspace = useActiveWorkspace();
|
const workspace = useActiveWorkspace();
|
||||||
const activeRequest = useActiveRequest();
|
|
||||||
const prompt = usePrompt();
|
const prompt = usePrompt();
|
||||||
|
|
||||||
return useMutation<Folder, unknown, Partial<Pick<Folder, 'name' | 'sortPriority' | 'folderId'>>>({
|
return useMutation<Folder, unknown, Partial<Pick<Folder, 'name' | 'sortPriority' | 'folderId'>>>({
|
||||||
@@ -29,7 +27,6 @@ export function useCreateFolder() {
|
|||||||
placeholder: 'Name',
|
placeholder: 'Name',
|
||||||
}));
|
}));
|
||||||
patch.sortPriority = patch.sortPriority || -Date.now();
|
patch.sortPriority = patch.sortPriority || -Date.now();
|
||||||
patch.folderId = patch.folderId || activeRequest?.folderId;
|
|
||||||
return invokeCmd('cmd_create_folder', { workspaceId: workspace.id, ...patch });
|
return invokeCmd('cmd_create_folder', { workspaceId: workspace.id, ...patch });
|
||||||
},
|
},
|
||||||
onSettled: () => trackEvent('folder', 'create'),
|
onSettled: () => trackEvent('folder', 'create'),
|
||||||
|
|||||||
Reference in New Issue
Block a user