()
| 645 | }; |
| 646 | |
| 647 | const loadRecipes = async () => { |
| 648 | try { |
| 649 | const res = await apiGet('/api/pro/ai/recipes/list.php'); |
| 650 | savedRecipes = Array.isArray(res?.recipes) ? res.recipes : []; |
| 651 | renderRecipeRail(); |
| 652 | syncCollapsedState(); |
| 653 | } catch (err) { |
| 654 | savedRecipes = []; |
| 655 | renderRecipeRail(); |
| 656 | } |
| 657 | }; |
| 658 | |
| 659 | const saveRecipeDraft = async () => { |
| 660 | const promptText = String(inputEl?.value || '').trim() || String(lastRecipeDraft?.prompt || '').trim(); |
no test coverage detected