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