merge main (#1)

* Update README.md to include information on how to add a custom provider (#250)

* Update README.md

* Updated commerce readme

Co-authored-by: Luis Alvarez D <luis@vercel.com>

* Remove unused provider config (#459)

* Updated core types for commerce provider

* Updated bigcommerce provider

* Added util method for provider creation

* Removed unrequired code from saleor

* Updated shopify provider

* Updated providers and local setup

* Updated saleor setup

* Updated swell

* Updated vendure

* Updated swell-js usage

* Removed unrequired import from saleor

Co-authored-by: Isiko Saidiali <54436062+SaidiAli@users.noreply.github.com>
Co-authored-by: Luis Alvarez D <luis@vercel.com>
This commit is contained in:
Kasper Fabricius Kristensen
2021-09-03 16:36:22 +02:00
committed by GitHub
parent 0e7e7b7d5f
commit abaf7220dc
21 changed files with 99 additions and 265 deletions

View File

@@ -1,5 +1,5 @@
import type { CommerceAPIConfig } from '@commerce/api'
import { CommerceAPI, CommerceAPIConfig, getCommerceApi as commerceApi } from '@commerce/api'
import * as operations from './operations'
import * as Const from '../const'
if (!Const.API_URL) {
@@ -27,23 +27,12 @@ const config: SaleorConfig = {
storeChannel: Const.API_CHANNEL,
}
import {
CommerceAPI,
getCommerceApi as commerceApi,
} from '@commerce/api'
import * as operations from './operations'
export interface ShopifyConfig extends CommerceAPIConfig {}
export const provider = { config, operations }
export type Provider = typeof provider
export type SaleorAPI<P extends Provider = Provider> = CommerceAPI<P>
export function getCommerceApi<P extends Provider>(
customProvider: P = provider as any
): SaleorAPI<P> {
export function getCommerceApi<P extends Provider>(customProvider: P = provider as any): SaleorAPI<P> {
return commerceApi(customProvider)
}

View File

@@ -1,10 +1,6 @@
import type { OperationContext } from '@commerce/api/operations'
import {
GetAllProductPathsQuery,
GetAllProductPathsQueryVariables,
ProductCountableEdge,
} from '../../schema'
import type { ShopifyConfig, Provider, SaleorConfig } from '..'
import { ProductCountableEdge } from '../../schema'
import type { Provider, SaleorConfig } from '..'
import { getAllProductsPathsQuery } from '../../utils/queries'
import fetchAllProducts from '../utils/fetch-all-products'
@@ -13,10 +9,7 @@ export type GetAllProductPathsResult = {
products: Array<{ path: string }>
}
export default function getAllProductPathsOperation({
commerce,
}: OperationContext<Provider>) {
export default function getAllProductPathsOperation({ commerce }: OperationContext<Provider>) {
async function getAllProductPaths({
query,
config,
@@ -24,7 +17,7 @@ export default function getAllProductPathsOperation({
}: {
query?: string
config?: SaleorConfig
variables?: any
variables?: any
} = {}): Promise<GetAllProductPathsResult> {
config = commerce.getConfig(config)
@@ -39,7 +32,6 @@ export default function getAllProductPathsOperation({
path: `/${slug}`,
})),
}
}
return getAllProductPaths

View File

@@ -1,32 +1,9 @@
import * as React from 'react'
import { ReactNode } from 'react'
import { CommerceConfig, CommerceProvider as CoreCommerceProvider, useCommerce as useCoreCommerce } from '@commerce'
import { getCommerceProvider, useCommerce as useCoreCommerce } from '@commerce'
import { saleorProvider, SaleorProvider } from './provider'
import * as Const from './const'
export { saleorProvider }
export type { SaleorProvider }
export const saleorConfig: CommerceConfig = {
locale: 'en-us',
cartCookie: Const.CHECKOUT_ID_COOKIE,
}
export const CommerceProvider = getCommerceProvider(saleorProvider)
export type SaleorConfig = Partial<CommerceConfig>
export type SaleorProps = {
children?: ReactNode
locale: string
} & SaleorConfig
export function CommerceProvider({ children, ...config }: SaleorProps) {
return (
<CoreCommerceProvider provider={saleorProvider} config={{ ...saleorConfig, ...config }}>
{children}
</CoreCommerceProvider>
)
}
export const useCommerce = () => useCoreCommerce()
export const useCommerce = () => useCoreCommerce<SaleorProvider>()

View File

@@ -1,3 +1,4 @@
import { CHECKOUT_ID_COOKIE } from './const'
import { handler as useCart } from './cart/use-cart'
import { handler as useAddItem } from './cart/use-add-item'
import { handler as useUpdateItem } from './cart/use-update-item'
@@ -14,8 +15,7 @@ import fetcher from './fetcher'
export const saleorProvider = {
locale: 'en-us',
cartCookie: '',
cartCookieToken: '',
cartCookie: CHECKOUT_ID_COOKIE,
fetcher,
cart: { useCart, useAddItem, useUpdateItem, useRemoveItem },
customer: { useCustomer },