fix: duplicate network calls on index page (#2085)

* Prevent extra recipe load on index page

* Prevent loading recipes with food for all components but search ones

* add missing change in search page
This commit is contained in:
Sören 2023-02-05 19:52:49 +01:00 committed by GitHub
parent f3a26f864d
commit f4b819899d
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 12 additions and 4 deletions

View File

@ -183,6 +183,10 @@ export default defineComponent({
type: String, type: String,
default: null, default: null,
}, },
skipLoad: {
type: Boolean,
default: false
}
}, },
setup(props, context) { setup(props, context) {
const preferences = useUserSortPreferences(); const preferences = useUserSortPreferences();
@ -233,6 +237,9 @@ export default defineComponent({
const { fetchMore } = useLazyRecipes(); const { fetchMore } = useLazyRecipes();
onMounted(async () => { onMounted(async () => {
if (props.skipLoad) {
return;
}
const newRecipes = await fetchMore( const newRecipes = await fetchMore(
page.value, page.value,

View File

@ -65,7 +65,7 @@ export default defineComponent({
}, },
setup(_, context) { setup(_, context) {
const { refreshRecipes } = useRecipes(true, false); const { refreshRecipes } = useRecipes(true, false, true);
const state = reactive({ const state = reactive({
loading: false, loading: false,

View File

@ -67,7 +67,7 @@ export const useLazyRecipes = function () {
}; };
}; };
export const useRecipes = (all = false, fetchRecipes = true) => { export const useRecipes = (all = false, fetchRecipes = true, loadFood = false) => {
const api = useUserApi(); const api = useUserApi();
// recipes is non-reactive!! // recipes is non-reactive!!
@ -88,7 +88,7 @@ export const useRecipes = (all = false, fetchRecipes = true) => {
})(); })();
async function refreshRecipes() { async function refreshRecipes() {
const { data } = await api.recipes.getAll(page, perPage, { loadFood: true, orderBy: "created_at" }); const { data } = await api.recipes.getAll(page, perPage, { loadFood, orderBy: "created_at" });
if (data) { if (data) {
recipes.value = data.items; recipes.value = data.items;
} }

View File

@ -4,6 +4,7 @@
:icon="$globals.icons.primary" :icon="$globals.icons.primary"
:title="$t('general.recent')" :title="$t('general.recent')"
:recipes="recentRecipes" :recipes="recentRecipes"
:skip-load="true"
></RecipeCardSection> ></RecipeCardSection>
</v-container> </v-container>
</template> </template>

View File

@ -134,7 +134,7 @@ export default defineComponent({
RecipeCardSection, RecipeCardSection,
}, },
setup() { setup() {
const { assignSorted } = useRecipes(true); const { assignSorted } = useRecipes(true, true, true);
// ================================================================ // ================================================================
// Advanced Toggle // Advanced Toggle