diff --git a/.jules/palette.md b/.jules/palette.md index bd0f73248..2bc3e1ae8 100644 --- a/.jules/palette.md +++ b/.jules/palette.md @@ -57,3 +57,6 @@ ## 2026-07-30 - Add window.confirm for destructive actions **Learning:** Destructive actions like deleting groups and edge relationships previously occurred immediately without user confirmation. **Action:** Always wrap delete operations with window.confirm() dialogs and ensure corresponding tests successfully mock window.confirm. +## 2025-02-15 - Enable Native Keyboard Support in Input Groups +**Learning:** Interactive UI controls for creating new resources (like projects or connections) that consist of text inputs and adjacent submit buttons can be frustrating for keyboard users if they do not submit natively upon pressing Enter. Using generic `
` wrappers instead of semantic forms breaks this expected behavior, hurting accessibility and general UX fluidity. +**Action:** Always wrap data submission input and button groups in a `
` element instead of a plain `
`. Set the primary action button to `type="submit"`, manage its disabled states accurately, and gracefully handle `onSubmit` by preventing the default event while executing the expected action. Remove redundant `onClick` handlers on the submit button to prevent double-execution issues. This ensures seamless integration with native browser keyboard interactions (like pressing Enter inside an input field). diff --git a/frontend/src/App.tsx b/frontend/src/App.tsx index 0fa62ede3..e6d8af4ee 100644 --- a/frontend/src/App.tsx +++ b/frontend/src/App.tsx @@ -1080,15 +1080,15 @@ export default function App() {
-
+ { e.preventDefault(); if (projectName.trim() && !isCreatingProject) onCreateProject(); }}> setProjectName(e.target.value)} /> -
+ {createProjectHint ? ( {createProjectHint} @@ -1126,7 +1126,7 @@ export default function App() {
-
+
{ e.preventDefault(); if (selectedProjectId && connName.trim() && isDsnPresent && !isCreatingConnection) onCreateConnection(); }}>
+
@@ -1309,20 +1308,20 @@ export default function App() {

프로젝트

프로젝트를 선택하면 해당 다이어그램 목록을 볼 수 있습니다.

-
+
{ e.preventDefault(); if (projectName.trim() && !isCreatingProject) onCreateProject(); }}> setProjectName(event.currentTarget.value)} /> -
+