mirror of
https://github.com/mountain-loop/yaak.git
synced 2026-03-31 22:43:11 +02:00
Prevent a bunch more stuff from re-rendering
This commit is contained in:
@@ -1,8 +1,9 @@
|
||||
import { useMemo } from 'react';
|
||||
import { useCallback } from 'react';
|
||||
import type { DropdownItem } from '../components/core/Dropdown';
|
||||
import { Icon } from '../components/core/Icon';
|
||||
import { generateId } from '../lib/generateId';
|
||||
import { BODY_TYPE_GRAPHQL } from '../lib/model_util';
|
||||
import { getActiveRequest } from './useActiveRequest';
|
||||
import { useCreateFolder } from './useCreateFolder';
|
||||
import { useCreateGrpcRequest } from './useCreateGrpcRequest';
|
||||
import { useCreateHttpRequest } from './useCreateHttpRequest';
|
||||
@@ -14,19 +15,26 @@ export function useCreateDropdownItems({
|
||||
}: {
|
||||
hideFolder?: boolean;
|
||||
hideIcons?: boolean;
|
||||
folderId?: string | null;
|
||||
} = {}): DropdownItem[] {
|
||||
folderId?: string | null | 'active-folder';
|
||||
} = {}): () => DropdownItem[] {
|
||||
const { mutate: createHttpRequest } = useCreateHttpRequest();
|
||||
const { mutate: createGrpcRequest } = useCreateGrpcRequest();
|
||||
const { mutate: createFolder } = useCreateFolder();
|
||||
|
||||
return useMemo<DropdownItem[]>(
|
||||
() => [
|
||||
return useCallback(
|
||||
(): DropdownItem[] => [
|
||||
{
|
||||
key: 'create-http-request',
|
||||
label: 'HTTP Request',
|
||||
leftSlot: hideIcons ? undefined : <Icon icon="plus" />,
|
||||
onSelect: () => createHttpRequest({ folderId }),
|
||||
onSelect: () => {
|
||||
const args = { folderId };
|
||||
if (folderId === 'active-folder') {
|
||||
const activeRequest = getActiveRequest();
|
||||
args.folderId = activeRequest?.folderId ?? undefined;
|
||||
}
|
||||
createHttpRequest(args);
|
||||
},
|
||||
},
|
||||
{
|
||||
key: 'create-graphql-request',
|
||||
|
||||
Reference in New Issue
Block a user