diff --git a/.changeset/curvy-chefs-look.md b/.changeset/curvy-chefs-look.md new file mode 100644 index 0000000000..c4f79280db --- /dev/null +++ b/.changeset/curvy-chefs-look.md @@ -0,0 +1,5 @@ +--- +'@commercetools-docs/gatsby-theme-docs': patch +--- + +Adapt the release notes pages back links to the new parameters format diff --git a/packages/gatsby-theme-docs/src/hooks/use-release-notes-config.js b/packages/gatsby-theme-docs/src/hooks/use-release-notes-config.js index 207ad6fb51..0754730a48 100644 --- a/packages/gatsby-theme-docs/src/hooks/use-release-notes-config.js +++ b/packages/gatsby-theme-docs/src/hooks/use-release-notes-config.js @@ -17,7 +17,7 @@ const useReleaseNotesConfig = () => { product, title ); - return `/docs/release-notes${queryString}`; // only prod url + return `/docs/release-notes?${queryString}`; // only prod url }; return { getReleaseNotesUrl }; diff --git a/packages/gatsby-theme-docs/src/utils/release-notes.js b/packages/gatsby-theme-docs/src/utils/release-notes.js index 8f5af16ed4..c5477ec31e 100644 --- a/packages/gatsby-theme-docs/src/utils/release-notes.js +++ b/packages/gatsby-theme-docs/src/utils/release-notes.js @@ -1,31 +1,20 @@ -export const MIN_DATERANGE = 0; -export const MAX_DATERANGE = 2537011284; - export const buildReleaseNotesQueryString = (group, product, productArea) => { - let searchState = { - range: { - dateTimestamp: `${MIN_DATERANGE}:${MAX_DATERANGE}`, - }, - }; + const queryStringParams = new URLSearchParams(); + + // tab param if (group) { - searchState.configure = { - ...searchState.configure, - facetFilters: `group:${group}`, - }; + queryStringParams.set('tab', group); } + + // product param if (product) { - searchState.refinementList = { - ...searchState.refinementList, - product: [product], - }; + queryStringParams.set('product', product); } + + // productArea param if (productArea) { - searchState.refinementList = { - ...searchState.refinementList, - productArea: [productArea], - }; + queryStringParams.set('productArea', productArea); } - return searchState.refinementList - ? `?searchState=${encodeURIComponent(JSON.stringify(searchState))}` - : ''; + + return `${queryStringParams.toString()}`; }; diff --git a/packages/gatsby-theme-docs/src/utils/release-notes.spec.js b/packages/gatsby-theme-docs/src/utils/release-notes.spec.js index b0856f857a..138189e893 100644 --- a/packages/gatsby-theme-docs/src/utils/release-notes.spec.js +++ b/packages/gatsby-theme-docs/src/utils/release-notes.spec.js @@ -1,8 +1,4 @@ -import { - MAX_DATERANGE, - MIN_DATERANGE, - buildReleaseNotesQueryString, -} from './release-notes'; +import { buildReleaseNotesQueryString } from './release-notes'; describe('buildReleaseNotesQueryString', () => { it('should return a query string with product and productArea', () => { @@ -16,23 +12,11 @@ describe('buildReleaseNotesQueryString', () => { productArea ); - const expectedValue = { - range: { - dateTimestamp: `${MIN_DATERANGE}:${MAX_DATERANGE}`, - }, - configure: { - facetFilters: `group:${group}`, - }, - refinementList: { - product: [product], - productArea: [productArea], - }, - }; - const expectedStringValue = encodeURIComponent( - JSON.stringify(expectedValue) - ); - - expect(queryString).toBe(`?searchState=${expectedStringValue}`); + const expectedValue = `tab=${group}&product=${product.replace( + ' ', + '+' + )}&productArea=${productArea.replace(' ', '+')}`; + expect(queryString).toBe(expectedValue); }); it('should return a query string with only product', () => { @@ -41,22 +25,9 @@ describe('buildReleaseNotesQueryString', () => { const queryString = buildReleaseNotesQueryString(group, product); - const expectedValue = { - range: { - dateTimestamp: `${MIN_DATERANGE}:${MAX_DATERANGE}`, - }, - configure: { - facetFilters: `group:${group}`, - }, - refinementList: { - product: [product], - }, - }; - const expectedStringValue = encodeURIComponent( - JSON.stringify(expectedValue) - ); + const expectedValue = `tab=${group}&product=${product}`; - expect(queryString).toBe(`?searchState=${expectedStringValue}`); + expect(queryString).toBe(expectedValue); }); it('should return an empty query string if no arguments are provided', () => {