From 4aa7410f69f559ec8dcb4e320e22bd50f7695b44 Mon Sep 17 00:00:00 2001 From: Joel Date: Wed, 13 May 2026 16:41:40 +0800 Subject: [PATCH] chore: remove shortcut --- .../components/apps/__tests__/list.spec.tsx | 24 --------- .../apps/app-list-header-filters.tsx | 49 +------------------ 2 files changed, 1 insertion(+), 72 deletions(-) diff --git a/web/app/components/apps/__tests__/list.spec.tsx b/web/app/components/apps/__tests__/list.spec.tsx index fb39d81f71..215eecf554 100644 --- a/web/app/components/apps/__tests__/list.spec.tsx +++ b/web/app/components/apps/__tests__/list.spec.tsx @@ -494,30 +494,6 @@ describe('List', () => { expect(screen.getByTestId('create-dsl-modal'))!.toBeInTheDocument() }) - it('should open blank app modal with create shortcut', () => { - renderList() - - fireEvent.keyDown(window, { key: 'n', metaKey: true }) - - expect(screen.getByTestId('create-app-modal'))!.toBeInTheDocument() - }) - - it('should open template dialog with create template shortcut', () => { - renderList() - - fireEvent.keyDown(window, { key: 'n', metaKey: true, shiftKey: true }) - - expect(screen.getByTestId('template-dialog'))!.toBeInTheDocument() - }) - - it('should not trigger create shortcut while typing in search', () => { - renderList() - - fireEvent.keyDown(screen.getByRole('textbox'), { key: 'n', metaKey: true }) - - expect(screen.queryByTestId('create-app-modal'))!.not.toBeInTheDocument() - }) - it('should not render create button for non-editors', () => { mockIsCurrentWorkspaceEditor.mockReturnValue(false) diff --git a/web/app/components/apps/app-list-header-filters.tsx b/web/app/components/apps/app-list-header-filters.tsx index 380ce400cd..8d07dfe686 100644 --- a/web/app/components/apps/app-list-header-filters.tsx +++ b/web/app/components/apps/app-list-header-filters.tsx @@ -6,7 +6,7 @@ import { Button } from '@langgenius/dify-ui/button' import { cn } from '@langgenius/dify-ui/cn' import { DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuTrigger } from '@langgenius/dify-ui/dropdown-menu' import { Select, SelectContent, SelectItem, SelectItemIndicator, SelectItemText, SelectTrigger } from '@langgenius/dify-ui/select' -import { useEffect, useMemo } from 'react' +import { useMemo } from 'react' import { useTranslation } from 'react-i18next' import Checkbox from '@/app/components/base/checkbox' import Input from '@/app/components/base/input' @@ -35,14 +35,6 @@ type AppListHeaderFiltersProps = { showCreateButton: boolean } -const isEditableTarget = (target: EventTarget | null) => { - if (!(target instanceof HTMLElement)) - return false - - const tagName = target.tagName.toLowerCase() - return tagName === 'input' || tagName === 'textarea' || target.isContentEditable -} - const AppListHeaderFilters: FC = ({ category, tagIDs, @@ -68,36 +60,6 @@ const AppListHeaderFilters: FC = ({ { value: AppModeEnum.COMPLETION, text: t('types.completion', { ns: 'app' }), icon: }, ], [t]) - useEffect(() => { - if (!showCreateButton) - return - - const handleKeyDown = (event: KeyboardEvent) => { - if ( - event.defaultPrevented - || event.repeat - || event.altKey - || isEditableTarget(event.target) - || !(event.metaKey || event.ctrlKey) - || event.key.toLowerCase() !== 'n' - ) { - return - } - - event.preventDefault() - - if (event.shiftKey) - onCreateTemplate() - else - onCreateBlank() - } - - window.addEventListener('keydown', handleKeyDown, { capture: true }) - return () => { - window.removeEventListener('keydown', handleKeyDown, { capture: true }) - } - }, [onCreateBlank, onCreateTemplate, showCreateButton]) - return (
@@ -172,10 +134,6 @@ const AppListHeaderFilters: FC = ({ > {t('newApp.startFromBlank', { ns: 'app' })} - - - N - = ({ > {t('newApp.startFromTemplate', { ns: 'app' })} - - - - N -