mirror of
				https://github.com/mealie-recipes/mealie.git
				synced 2025-10-31 02:03:35 -04:00 
			
		
		
		
	fix: Recipe Card Section Infinite Loop (#2584)
* refactored recipe card section fetch * minor optimization * lint
This commit is contained in:
		| @@ -244,32 +244,37 @@ export default defineComponent({ | ||||
|  | ||||
|     onMounted(async () => { | ||||
|       if (props.query) { | ||||
|         const newRecipes = await fetchRecipes(2); | ||||
|  | ||||
|         // since we doubled the first call, we also need to advance the page | ||||
|         page.value = page.value + 1; | ||||
|  | ||||
|         context.emit(REPLACE_RECIPES_EVENT, newRecipes); | ||||
|         await initRecipes(); | ||||
|         ready.value = true; | ||||
|       } | ||||
|     }); | ||||
|  | ||||
|     let lastQuery: string | undefined; | ||||
|     watch( | ||||
|       () => props.query, | ||||
|       async (newValue: RecipeSearchQuery | undefined) => { | ||||
|         if (newValue) { | ||||
|           page.value = 1; | ||||
|           const newRecipes = await fetchRecipes(2); | ||||
|  | ||||
|           // since we doubled the first call, we also need to advance the page | ||||
|           page.value = page.value + 1; | ||||
|  | ||||
|           context.emit(REPLACE_RECIPES_EVENT, newRecipes); | ||||
|         const newValueString = JSON.stringify(newValue) | ||||
|         if (newValue && (!ready.value || lastQuery !== newValueString)) { | ||||
|           lastQuery = newValueString; | ||||
|           await initRecipes(); | ||||
|           ready.value = true; | ||||
|         } | ||||
|       } | ||||
|     ); | ||||
|  | ||||
|     async function initRecipes() { | ||||
|       page.value = 1; | ||||
|       const newRecipes = await fetchRecipes(2); | ||||
|       if (!newRecipes.length) { | ||||
|         hasMore.value = false; | ||||
|       } | ||||
|  | ||||
|       // since we doubled the first call, we also need to advance the page | ||||
|       page.value = page.value + 1; | ||||
|  | ||||
|       context.emit(REPLACE_RECIPES_EVENT, newRecipes); | ||||
|     } | ||||
|  | ||||
|     const infiniteScroll = useThrottleFn(() => { | ||||
|       useAsync(async () => { | ||||
|         if (!ready.value || !hasMore.value || loading.value) { | ||||
|   | ||||
		Reference in New Issue
	
	Block a user