diff --git a/packages/boilerplate/api-client/src/api/getCategory/index.ts b/packages/boilerplate/api-client/src/api/getCategory/index.ts index 4f42f4ad66..4e5d960ace 100644 --- a/packages/boilerplate/api-client/src/api/getCategory/index.ts +++ b/packages/boilerplate/api-client/src/api/getCategory/index.ts @@ -5,25 +5,81 @@ export default async function getCategory(context, params, customQuery?: CustomQ return Promise.resolve([ { id: 1, + name: 'New', + slug: 'new', + childCount: 2, + children: [ + { + id: 15, + name: 'Women', + slug: 'new-women', + childCount: 2, + children: [ + { + id: 16, + name: 'Clothing', + slug: 'new-women-clothing', + childCount: 0, + children: [] + }, + { + id: 17, + name: 'Shoes', + slug: 'new-women-shoes', + childCount: 0, + children: [] + } + ] + }, + { + id: 11, + name: 'Men', + slug: 'new-men', + childCount: 1, + children: [ + { + id: 18, + name: 'Clothing', + slug: 'new-men-clothing', + childCount: 0, + children: [] + }, + { + id: 19, + name: 'Shoes', + slug: 'new-men-shoes', + childCount: 0, + children: [] + } + ] + } + ] + }, + { + id: 2, name: 'Women', slug: 'women', - items: [ + childCount: 2, + children: [ { id: 4, name: 'Women jackets', slug: 'women-jackets', - items: [ + childCount: 2, + children: [ { id: 9, name: 'Winter jackets', slug: 'winter-jackets', - items: [] + childCount: 0, + children: [] }, { id: 10, name: 'Autumn jackets', slug: 'autmun-jackets', - items: [] + childCount: 0, + children: [] } ] }, @@ -31,44 +87,51 @@ export default async function getCategory(context, params, customQuery?: CustomQ id: 5, name: 'Skirts', slug: 'skirts', - items: [] + childCount: 0, + children: [] } ] }, { - id: 2, + id: 3, name: 'Men', slug: 'men', - items: [ + childCount: 1, + children: [ { id: 6, name: 'Men T-shirts', slug: 'men-tshirts', - items: [] + childCount: 0, + children: [] } ] }, { - id: 3, + id: 4, name: 'Kids', slug: 'kids', - items: [ + childCount: 1, + children: [ { id: 7, name: 'Toys', slug: 'toys', - items: [ + childCount: 2, + children: [ { id: 8, name: 'Toy Cars', slug: 'toy-cars', - items: [] + childCount: 0, + children: [] }, { id: 8, name: 'Dolls', slug: 'dolls', - items: [] + childCount: 0, + children: [] } ] } diff --git a/packages/boilerplate/theme/static/megamenu/bannerA.webp b/packages/boilerplate/theme/static/megamenu/bannerA.webp new file mode 100644 index 0000000000..a5ab92d266 Binary files /dev/null and b/packages/boilerplate/theme/static/megamenu/bannerA.webp differ diff --git a/packages/boilerplate/theme/static/megamenu/bannerB.webp b/packages/boilerplate/theme/static/megamenu/bannerB.webp new file mode 100644 index 0000000000..32290c8e35 Binary files /dev/null and b/packages/boilerplate/theme/static/megamenu/bannerB.webp differ diff --git a/packages/commercetools/theme/components/Header/HeaderNav.vue b/packages/commercetools/theme/components/Header/HeaderNav.vue new file mode 100644 index 0000000000..1d8dbb8ed1 --- /dev/null +++ b/packages/commercetools/theme/components/Header/HeaderNav.vue @@ -0,0 +1,95 @@ + + + diff --git a/packages/commercetools/theme/middleware.config.js b/packages/commercetools/theme/middleware.config.js index 834ffc1378..795035e687 100644 --- a/packages/commercetools/theme/middleware.config.js +++ b/packages/commercetools/theme/middleware.config.js @@ -24,6 +24,14 @@ module.exports = { }, currency: 'USD', country: 'US' + }, + customQueries: { + 'root-categories-query': ({ query, variables }) => { + + variables.where = 'parent is not defined'; + + return { query, variables }; + } } } } diff --git a/packages/commercetools/theme/static/megamenu/bannerA.webp b/packages/commercetools/theme/static/megamenu/bannerA.webp new file mode 100644 index 0000000000..a5ab92d266 Binary files /dev/null and b/packages/commercetools/theme/static/megamenu/bannerA.webp differ diff --git a/packages/commercetools/theme/static/megamenu/bannerB.webp b/packages/commercetools/theme/static/megamenu/bannerB.webp new file mode 100644 index 0000000000..32290c8e35 Binary files /dev/null and b/packages/commercetools/theme/static/megamenu/bannerB.webp differ diff --git a/packages/core/docs/changelog/5267.js b/packages/core/docs/changelog/5267.js new file mode 100644 index 0000000000..f349c125f6 --- /dev/null +++ b/packages/core/docs/changelog/5267.js @@ -0,0 +1,8 @@ +module.exports = { + description: 'added MegaMenu to theme', + link: 'https://github.com/vuestorefront/vue-storefront/issues/5267', + isBreaking: false, + breakingChanges: [], + author: 'Łukasz Jędrasik', + linkToGitHubAccount: 'https://github.com/lukaszjedrasik' +}; diff --git a/packages/core/nuxt-theme-module/theme/components/AppHeader.vue b/packages/core/nuxt-theme-module/theme/components/Header/AppHeader.vue similarity index 95% rename from packages/core/nuxt-theme-module/theme/components/AppHeader.vue rename to packages/core/nuxt-theme-module/theme/components/Header/AppHeader.vue index e2218e899e..9d639ffa4a 100644 --- a/packages/core/nuxt-theme-module/theme/components/AppHeader.vue +++ b/packages/core/nuxt-theme-module/theme/components/Header/AppHeader.vue @@ -1,5 +1,6 @@