diff --git a/.gitignore b/.gitignore index bcbf6047a..50d4285ba 100644 --- a/.gitignore +++ b/.gitignore @@ -25,6 +25,7 @@ yarn-debug.log* yarn-error.log* # local env files +.env .env.local .env.development.local .env.test.local diff --git a/README.md b/README.md index 54f021f74..e944c7569 100644 --- a/README.md +++ b/README.md @@ -124,3 +124,11 @@ Main folder and its exposed functions - `config.json` - README.md + +#### Example of correct usage of Commece Framework + +```js +import { useUI } from '@components/ui' +import { useCustomer } from '@framework/customer' +import { useAddItem, useWishlist, useRemoveItem } from '@framework/wishlist' +``` diff --git a/components/ui/index.ts b/components/ui/index.ts index 581c12d53..f2a293200 100644 --- a/components/ui/index.ts +++ b/components/ui/index.ts @@ -10,3 +10,4 @@ export { default as Skeleton } from './Skeleton' export { default as Modal } from './Modal' export { default as Text } from './Text' export { default as Input } from './Input' +export { useUI } from './context' diff --git a/components/wishlist/WishlistButton/WishlistButton.tsx b/components/wishlist/WishlistButton/WishlistButton.tsx index ea4abbb51..db9ca4b67 100644 --- a/components/wishlist/WishlistButton/WishlistButton.tsx +++ b/components/wishlist/WishlistButton/WishlistButton.tsx @@ -1,13 +1,10 @@ import React, { FC, useState } from 'react' import cn from 'classnames' import { Heart } from '@components/icons' -import { useUI } from '@components/ui/context' -import type { ProductNode } from '@framework/api/operations/get-all-products' -import useCustomer from '@framework/customer/use-customer' -import useAddItem from '@framework/wishlist/use-add-item' -import useWishlist from '@framework/wishlist/use-wishlist' -import useRemoveItem from '@framework/wishlist/use-remove-item' +import { useUI } from '@components/ui' +import { useCustomer } from '@framework/customer' +import { useAddItem, useWishlist, useRemoveItem } from '@framework/wishlist' type Props = { productId: Product['id'] diff --git a/framework/bigcommerce/api/wishlist/index.ts b/framework/bigcommerce/api/wishlist/index.ts index e78f0d9b9..b50c5e97f 100644 --- a/framework/bigcommerce/api/wishlist/index.ts +++ b/framework/bigcommerce/api/wishlist/index.ts @@ -21,10 +21,10 @@ export type ItemBody = { export type AddItemBody = { item: ItemBody } -export type RemoveItemBody = { itemId: string } +export type RemoveItemBody = { itemId: Product['id'] } export type WishlistBody = { - customer_id: number + customer_id: Customer['id'] is_public: number name: string items: any[] diff --git a/framework/bigcommerce/scripts/generate-definitions.js b/framework/bigcommerce/lib/generate-definitions.js similarity index 100% rename from framework/bigcommerce/scripts/generate-definitions.js rename to framework/bigcommerce/lib/generate-definitions.js diff --git a/framework/bigcommerce/wishlist/use-wishlist.tsx b/framework/bigcommerce/wishlist/use-wishlist.tsx index 6ebc8459d..455fdc9ff 100644 --- a/framework/bigcommerce/wishlist/use-wishlist.tsx +++ b/framework/bigcommerce/wishlist/use-wishlist.tsx @@ -16,7 +16,7 @@ export interface UseWishlistOptions { } export interface UseWishlistInput extends UseWishlistOptions { - customerId?: number + customerId?: Customer['id'] } export const fetcher: HookFetcher = ( diff --git a/framework/types.d.ts b/framework/types.d.ts index 2f1329071..881218ca8 100644 --- a/framework/types.d.ts +++ b/framework/types.d.ts @@ -2,11 +2,11 @@ interface Product { id: string | number name: string description: string + slug: string + path?: string images: ProductImage[] variants: ProductVariant[] prices: ProductPrice[] - slug: string - path?: string } interface ProductImage { url: string diff --git a/package.json b/package.json index 1030e8479..35e8d5cb5 100644 --- a/package.json +++ b/package.json @@ -8,7 +8,7 @@ "analyze": "BUNDLE_ANALYZE=both yarn build", "find:unused": "next-unused", "generate": "graphql-codegen", - "generate:definitions": "node framework/bigcommerce/scripts/generate-definitions.js" + "generate:definitions": "node framework/bigcommerce/lib/generate-definitions.js" }, "prettier": { "semi": false, diff --git a/pages/index.tsx b/pages/index.tsx index 76299673d..e194366c4 100644 --- a/pages/index.tsx +++ b/pages/index.tsx @@ -9,8 +9,6 @@ import getAllProducts from '@framework/api/operations/get-all-products' import getSiteInfo from '@framework/api/operations/get-site-info' import getAllPages from '@framework/api/operations/get-all-pages' -// Outputs from providers should already be normalized - export async function getStaticProps({ preview, locale, diff --git a/tsconfig.json b/tsconfig.json index 98639f61e..43dfd2a27 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -26,6 +26,6 @@ "@framework": ["framework/bigcommerce"] } }, - "include": ["next-env.d.ts", "**/*.ts", "**/*.tsx", "**/*.js"], + "include": ["next-env.d.ts", "**/*.d.ts", "**/*.ts", "**/*.tsx", "**/*.js"], "exclude": ["node_modules"] }