From c816e50c681667cc56b9d4716e1a535dde9582bc Mon Sep 17 00:00:00 2001 From: Lars Date: Fri, 22 May 2026 19:36:22 +0200 Subject: [PATCH] Refactor Exercise Creation Components to Utilize Custom Hook for Quick Create Fields - Updated ExerciseAiQuickCreateOffer to set showSketchField to true by default and introduced sketchOptional prop for improved flexibility in exercise creation. - Refactored ExercisePickerModal and ExercisesListPageRoot to leverage useExerciseAiQuickCreateFields hook, simplifying state management for quick create fields. - Removed deprecated parsing logic and streamlined error handling for sketch input, enhancing user experience during exercise creation. - Improved placeholder text and labels for clarity, ensuring better guidance for users when providing input for AI-generated exercises. --- .../components/ExerciseAiQuickCreateOffer.jsx | 29 +++++---- .../src/components/ExercisePickerModal.jsx | 38 +++++------- .../exercises/ExercisesListPageRoot.jsx | 38 +++++------- .../hooks/useExerciseAiQuickCreateFields.js | 62 +++++++++++++++++++ 4 files changed, 108 insertions(+), 59 deletions(-) create mode 100644 frontend/src/hooks/useExerciseAiQuickCreateFields.js diff --git a/frontend/src/components/ExerciseAiQuickCreateOffer.jsx b/frontend/src/components/ExerciseAiQuickCreateOffer.jsx index ed03333..206d6b4 100644 --- a/frontend/src/components/ExerciseAiQuickCreateOffer.jsx +++ b/frontend/src/components/ExerciseAiQuickCreateOffer.jsx @@ -16,14 +16,15 @@ export default function ExerciseAiQuickCreateOffer({ busy = false, error = '', onRunAi, - showSketchField = false, + showSketchField = true, + sketchOptional = true, hint, }) { const canRun = !busy && (title || '').trim().length >= 3 && - (sketch || '').trim().length > 0 && - focusAreaId + focusAreaId && + (sketchOptional || (sketch || '').trim().length > 0) return (