diff --git a/frontend/src/components/ExercisePickerModal.jsx b/frontend/src/components/ExercisePickerModal.jsx index 5010408..9661100 100644 --- a/frontend/src/components/ExercisePickerModal.jsx +++ b/frontend/src/components/ExercisePickerModal.jsx @@ -75,6 +75,11 @@ export default function ExercisePickerModal({ const usePlanningSearch = Boolean(planningContext?.unitId && Number(planningContext.unitId) > 0) + const effectivePickerQuery = useMemo( + () => [debouncedSearch, debouncedAi].filter(Boolean).join(' ').trim(), + [debouncedSearch, debouncedAi] + ) + const { title: quickTitle, sketch: quickSketch, @@ -83,7 +88,7 @@ export default function ExercisePickerModal({ setSketch: setQuickSketch, setFocusAreaId: setQuickFocusAreaId, resetQuickCreateFields, - } = useExerciseAiQuickCreateFields(debouncedSearch, { enabled: open && enableQuickCreateDraft }) + } = useExerciseAiQuickCreateFields(effectivePickerQuery, { enabled: open && enableQuickCreateDraft }) const toggleMultiPick = (ex) => { setMultiPicked((prev) => @@ -106,7 +111,7 @@ export default function ExercisePickerModal({ catalogsReady && !loading && list.length === 0 && - (usePlanningSearch || debouncedSearch.length >= 3) + (usePlanningSearch || effectivePickerQuery.length >= 3) useEffect(() => { if (!open) return @@ -246,6 +251,7 @@ export default function ExercisePickerModal({ if (filters.include_archived) q.include_archived = true if (debouncedSearch) q.search = debouncedSearch if (debouncedAi) q.ai_search = debouncedAi + if (!debouncedSearch && debouncedAi) q.search = debouncedAi if ( Array.isArray(exerciseKindAny) && exerciseKindAny.length > 0 @@ -260,7 +266,7 @@ export default function ExercisePickerModal({ setLoading(true) try { if (usePlanningSearch) { - const query = [debouncedSearch, debouncedAi].filter(Boolean).join(' ').trim() + const query = effectivePickerQuery const res = await api.suggestPlanningExercises({ unit_id: Number(planningContext.unitId), section_order_index: @@ -338,6 +344,7 @@ export default function ExercisePickerModal({ queryBase, usePlanningSearch, planningContext, + effectivePickerQuery, debouncedSearch, debouncedAi, exerciseKindAny, @@ -571,14 +578,14 @@ export default function ExercisePickerModal({
+ Beide Felder bilden eine gemeinsame Planungs-Anfrage. +
+ ) : null}