Icky 175 (#3)

* folder and env setup

* codegen.json headers removed

* icky-175-get-site-info

* PR comments resolved

* update category Id

Co-authored-by: Chandradeepta <43542673+Chandradeepta@users.noreply.github.com>
This commit is contained in:
kibo-geetanshuchhabra 2021-08-31 02:11:48 +05:30 committed by GitHub
parent 0e5c68ef58
commit 449d7fee72
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
6 changed files with 20255 additions and 5616 deletions

View File

@ -0,0 +1,11 @@
export const CategoryInfo = /* GraphQL */`
fragment categoryInfo on PrCategory {
categoryId
categoryCode
isDisplayed
content {
name
slug
description
}
}`;

View File

@ -1,6 +1,8 @@
import { OperationContext } from '@commerce/api/operations'
import { Category } from '@commerce/types/site'
import { KiboCommerceConfig } from '../index'
import {categoryTreeQuery} from '../queries/get-categories-tree-query'
import { normalizeCategory } from '../../lib/normalize'
export type GetSiteInfoResult<
T extends { categories: any[]; brands: any[] } = {
@ -9,32 +11,22 @@ export type GetSiteInfoResult<
}
> = T
export default function getSiteInfoOperation({}: OperationContext<any>) {
function getSiteInfo({
query,
export default function getSiteInfoOperation({commerce}: OperationContext<any>) {
async function getSiteInfo({
query= categoryTreeQuery,
variables,
config: cfg,
config,
}: {
query?: string
variables?: any
config?: Partial<KiboCommerceConfig>
preview?: boolean
} = {}): Promise<GetSiteInfoResult> {
const cfg = commerce.getConfig(config)
const { data } = await cfg.fetch(query);
const categories= data.categories.items.map(normalizeCategory);
return Promise.resolve({
categories: [
{
id: 'new-arrivals',
name: 'New Arrivals',
slug: 'new-arrivals',
path: '/new-arrivals',
},
{
id: 'featured',
name: 'Featured',
slug: 'featured',
path: '/featured',
},
],
categories: categories ?? [],
brands: [],
})
}

View File

@ -0,0 +1,29 @@
import { CategoryInfo } from '../fragments/category'
export const categoryTreeQuery = /* GraphQL */`
query GetCategoryTree {
categories: categoriesTree {
items {
...categoryInfo
childrenCategories {
...categoryInfo
childrenCategories {
...categoryInfo
childrenCategories {
...categoryInfo
childrenCategories {
...categoryInfo
childrenCategories {
...categoryInfo
childrenCategories {
...categoryInfo
}
}
}
}
}
}
}
}
}
${CategoryInfo}`;

View File

@ -5,10 +5,15 @@
// import { definitions } from '../api/definitions/store-content'
import update from './immutability'
import getSlug from './get-slug'
import {PrCategory} from '../schema'
function normalizeProductOption(productOption: any) {
const {
node: { entityId, values: { edges = [] } = {}, ...rest },
node: {
entityId,
values: { edges = [] } = {},
...rest
},
} = productOption
return {
@ -127,11 +132,11 @@ function normalizeLineItem(item: any): any {
}
}
export function normalizeCategory(category: any): any {
export function normalizeCategory(category: PrCategory): any {
return {
id: `${category.entityId}`,
name: category.name,
slug: getSlug(category.path),
path: category.path,
id: category?.categoryCode,
name: category?.content?.name,
slug: category?.content?.slug,
path: `/${category?.content?.slug}`
}
}

14551
package-lock.json generated

File diff suppressed because it is too large Load Diff

11235
yarn.lock

File diff suppressed because it is too large Load Diff