From 6d2210bba7b8f73d0f47c66a274c6f3319372b3b Mon Sep 17 00:00:00 2001 From: Harlan Wilton Date: Fri, 3 Jun 2022 15:23:12 +1000 Subject: [PATCH 1/3] fix(ContentNavigation): allow `fetchContentNavigation` to use `QueryBuilderParams` --- src/runtime/composables/navigation.ts | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/runtime/composables/navigation.ts b/src/runtime/composables/navigation.ts index 933c715d7..c733b689d 100644 --- a/src/runtime/composables/navigation.ts +++ b/src/runtime/composables/navigation.ts @@ -1,11 +1,14 @@ import { hash } from 'ohash' import { useHead, useCookie } from '#app' -import type { NavItem, QueryBuilder } from '../types' +import type { NavItem, QueryBuilder, QueryBuilderParams } from '../types' import { jsonStringify } from '../utils/json' import { withContentBase } from './utils' -export const fetchContentNavigation = (queryBuilder?: QueryBuilder) => { - const params = queryBuilder?.params() +export const fetchContentNavigation = (queryBuilder?: QueryBuilder | QueryBuilderParams) => { + let params = queryBuilder + if (typeof params.params === 'function') { + params = params.params() + } const apiPath = withContentBase(params ? `/navigation/${hash(params)}` : '/navigation') if (!process.dev && process.server) { From b5715e2e250c1938277d9adbe20ee93cba1490a6 Mon Sep 17 00:00:00 2001 From: Harlan Wilton Date: Fri, 3 Jun 2022 15:28:25 +1000 Subject: [PATCH 2/3] fix: params may be undefined --- src/runtime/composables/navigation.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/runtime/composables/navigation.ts b/src/runtime/composables/navigation.ts index c733b689d..fbcd3987b 100644 --- a/src/runtime/composables/navigation.ts +++ b/src/runtime/composables/navigation.ts @@ -6,7 +6,7 @@ import { withContentBase } from './utils' export const fetchContentNavigation = (queryBuilder?: QueryBuilder | QueryBuilderParams) => { let params = queryBuilder - if (typeof params.params === 'function') { + if (typeof params?.params === 'function') { params = params.params() } const apiPath = withContentBase(params ? `/navigation/${hash(params)}` : '/navigation') From 282f24bfe5c28fffc472decbe5c820a076853ff3 Mon Sep 17 00:00:00 2001 From: Harlan Wilton Date: Fri, 3 Jun 2022 15:30:10 +1000 Subject: [PATCH 3/3] chore: add doc --- src/runtime/composables/navigation.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/src/runtime/composables/navigation.ts b/src/runtime/composables/navigation.ts index fbcd3987b..38f546837 100644 --- a/src/runtime/composables/navigation.ts +++ b/src/runtime/composables/navigation.ts @@ -6,6 +6,7 @@ import { withContentBase } from './utils' export const fetchContentNavigation = (queryBuilder?: QueryBuilder | QueryBuilderParams) => { let params = queryBuilder + // when params is an instance of QueryBuilder then we need to pick the params explicitly if (typeof params?.params === 'function') { params = params.params() }