@graphcommerce/docs 4.12.0-canary.1 → 4.12.0-canary.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,11 @@
1
1
  # Change Log
2
2
 
3
+ ## 4.12.0-canary.2
4
+
5
+ ### Patch Changes
6
+
7
+ - [#1733](https://github.com/graphcommerce-org/graphcommerce/pull/1733) [`b2d73c726`](https://github.com/graphcommerce-org/graphcommerce/commit/b2d73c726fa123435fa6c54b4e0fd0db2df7c4ab) - Move to <Prev/> instead of <Component/> to call the plugin component ([@paales](https://github.com/paales))
8
+
3
9
  ## 4.12.0-canary.1
4
10
 
5
11
  ### Minor Changes
@@ -74,11 +74,11 @@ export const exported = '@graphcommerce/magento-cart-payment-method'
74
74
  function AddPaymentMethodEnhancer(
75
75
  props: PluginProps<PaymentMethodContextProviderProps>,
76
76
  ) {
77
- const { Component, modules, ...rest } = props
78
- return <Component {...rest} modules={{ ...modules, purchaseorder }} />
77
+ const { Prev, modules, ...rest } = props
78
+ return <Prev {...rest} modules={{ ...modules, purchaseorder }} />
79
79
  }
80
80
 
81
- /** The export must be named `Plugin` and must accept a Component to render */
81
+ /** The export must be named `Plugin` and must accept a Prev component to render */
82
82
  export const Plugin = AddIncludedMethods
83
83
  ```
84
84
 
@@ -97,37 +97,59 @@ export const Plugin = AddIncludedMethods
97
97
  Example of generated interceptor with additional comments:
98
98
 
99
99
  ```tsx
100
- // All plugins are imported, which will be used to enhance the original component.
101
- import { Plugin as AddIncludedMethods } from '@graphcommerce/magento-payment-included/plugins/AddIncludedMethods'
102
- import { Plugin as AddPaypalMethods } from '@graphcommerce/magento-payment-paypal/plugins/AddPaypalMethods'
103
-
104
- // This file is placed next to the original component, so it is imported with a relative path, in the Webpack plugin we
105
- // load the original file if it is loaded from the interceptor.
106
- import { PaymentMethodContextProvider as PaymentMethodContextProviderBase } from './PaymentMethodContext'
107
-
108
- // All original exports are exported, if the original file exports more than we're intercepting, it will still work.
109
- export * from './PaymentMethodContext'
100
+ /* This file is automatically generated for @graphcommerce/magento-cart-payment-method */
110
101
 
111
- type PaymentMethodContextProviderBaseProps = React.ComponentProps<
102
+ export * from '.'
103
+ import { Plugin as GaPaymentMethodButton } from '@graphcommerce/googleanalytics/plugins/GaPaymentMethodButton'
104
+ import { Plugin as GaPaymentMethodContextProvider } from '@graphcommerce/googleanalytics/plugins/GaPaymentMethodContextProvider'
105
+ import { Plugin as AddIncludedMethods } from '@graphcommerce/magento-payment-included/plugins/AddIncludedMethods'
106
+ import { ComponentProps } from 'react'
107
+ import {
108
+ PaymentMethodButton as PaymentMethodButtonBase,
109
+ PaymentMethodContextProvider as PaymentMethodContextProviderBase,
110
+ } from '.'
111
+
112
+ /**
113
+ * Interceptor for `<PaymentMethodButton/>` with these plugins:
114
+ *
115
+ * - `@graphcommerce/googleanalytics/plugins/GaPaymentMethodButton`
116
+ */
117
+ type PaymentMethodButtonProps = ComponentProps<typeof PaymentMethodButtonBase>
118
+
119
+ function GaPaymentMethodButtonInterceptor(props: PaymentMethodButtonProps) {
120
+ return <GaPaymentMethodButton {...props} Prev={PaymentMethodButtonBase} />
121
+ }
122
+ export const PaymentMethodButton = GaPaymentMethodButtonInterceptor
123
+
124
+ /**
125
+ * Interceptor for `<PaymentMethodContextProvider/>` with these plugins:
126
+ *
127
+ * - `@graphcommerce/magento-payment-included/plugins/AddIncludedMethods`
128
+ * - `@graphcommerce/googleanalytics/plugins/GaPaymentMethodContextProvider`
129
+ */
130
+ type PaymentMethodContextProviderProps = ComponentProps<
112
131
  typeof PaymentMethodContextProviderBase
113
132
  >
114
133
 
115
- // We create new Interceptor components here, which allows us to wrap multiple plugins around the original component.
116
- const AddIncludedMethodsInterceptor = (
117
- props: PaymentMethodContextProviderBaseProps,
118
- ) => (
119
- //For the first plugin we use the original component.
120
- <AddIncludedMethods {...props} Component={PaymentMethodContextProviderBase} />
121
- )
122
- const AddPaypalMethodsInterceptor = (
123
- props: PaymentMethodContextProviderBaseProps,
124
- ) => (
125
- // For the next components we use the previous Interceptor component.
126
- <AddPaypalMethods {...props} Component={AddIncludedMethodsInterceptor} />
127
- )
128
-
129
- // Finally we return the resulting interceptor component.
130
- export const PaymentMethodContextProvider = AddPaypalMethodsInterceptor
134
+ function AddIncludedMethodsInterceptor(
135
+ props: PaymentMethodContextProviderProps,
136
+ ) {
137
+ return (
138
+ <AddIncludedMethods {...props} Prev={PaymentMethodContextProviderBase} />
139
+ )
140
+ }
141
+ function GaPaymentMethodContextProviderInterceptor(
142
+ props: PaymentMethodContextProviderProps,
143
+ ) {
144
+ return (
145
+ <GaPaymentMethodContextProvider
146
+ {...props}
147
+ Prev={AddIncludedMethodsInterceptor}
148
+ />
149
+ )
150
+ }
151
+ export const PaymentMethodContextProvider =
152
+ GaPaymentMethodContextProviderInterceptor
131
153
  ```
132
154
 
133
155
  React profile will show that all components are nested:
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "@graphcommerce/docs",
3
3
  "homepage": "https://www.graphcommerce.org/docs",
4
4
  "repository": "github:graphcommerce-org/graphcommerce/docs",
5
- "version": "4.12.0-canary.1",
5
+ "version": "4.12.0-canary.2",
6
6
  "sideEffects": true,
7
7
  "devDependencies": {
8
8
  "@graphcommerce/prettier-config-pwa": "^4.0.7"