@webiny/react-composition 5.41.4 → 5.42.0-beta.1

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/Compose.js CHANGED
@@ -18,7 +18,7 @@ var Compose = exports.Compose = function Compose(props) {
18
18
  return;
19
19
  }
20
20
  var decorators = Array.isArray(props.with) ? props.with : [props.with];
21
- return composeComponent(targetFn.original, decorators, scope[scope.length - 1]);
21
+ return composeComponent(targetFn.original, decorators, scope);
22
22
  }, [props.with]);
23
23
  return null;
24
24
  };
package/Compose.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"names":["_react","require","_Context","_CompositionScope","Compose","exports","props","_useComposition","useComposition","composeComponent","scope","useCompositionScope","targetFn","function","component","useEffect","original","console","warn","concat","originalName","name","decorators","Array","isArray","with","length"],"sources":["Compose.tsx"],"sourcesContent":["import { useEffect } from \"react\";\nimport { DecoratableTypes, useComposition } from \"./Context\";\nimport { useCompositionScope } from \"~/CompositionScope\";\nimport { ComposeWith, Decoratable, Enumerable } from \"./types\";\n\nexport interface ComposeProps {\n function?: DecoratableTypes;\n component?: DecoratableTypes;\n with: ComposeWith;\n}\n\nexport const Compose = (props: ComposeProps) => {\n const { composeComponent } = useComposition();\n const scope = useCompositionScope();\n\n const targetFn = (props.function ?? props.component) as Decoratable;\n\n useEffect(() => {\n if (typeof targetFn.original === \"undefined\") {\n console.warn(\n `You must make your function \"${\n targetFn.originalName ?? targetFn.name\n }\" composable, by using the makeDecoratable() function!`\n );\n\n return;\n }\n\n const decorators = Array.isArray(props.with) ? props.with : [props.with];\n return composeComponent(\n targetFn.original,\n decorators as Enumerable<ComposeWith>,\n scope[scope.length - 1]\n );\n }, [props.with]);\n\n return null;\n};\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,QAAA,GAAAD,OAAA;AACA,IAAAE,iBAAA,GAAAF,OAAA;AASO,IAAMG,OAAO,GAAAC,OAAA,CAAAD,OAAA,GAAG,SAAVA,OAAOA,CAAIE,KAAmB,EAAK;EAC5C,IAAAC,eAAA,GAA6B,IAAAC,uBAAc,EAAC,CAAC;IAArCC,gBAAgB,GAAAF,eAAA,CAAhBE,gBAAgB;EACxB,IAAMC,KAAK,GAAG,IAAAC,qCAAmB,EAAC,CAAC;EAEnC,IAAMC,QAAQ,GAAIN,KAAK,CAACO,QAAQ,IAAIP,KAAK,CAACQ,SAAyB;EAEnE,IAAAC,gBAAS,EAAC,YAAM;IACZ,IAAI,OAAOH,QAAQ,CAACI,QAAQ,KAAK,WAAW,EAAE;MAC1CC,OAAO,CAACC,IAAI,kCAAAC,MAAA,CAEJP,QAAQ,CAACQ,YAAY,IAAIR,QAAQ,CAACS,IAAI,4DAE9C,CAAC;MAED;IACJ;IAEA,IAAMC,UAAU,GAAGC,KAAK,CAACC,OAAO,CAAClB,KAAK,CAACmB,IAAI,CAAC,GAAGnB,KAAK,CAACmB,IAAI,GAAG,CAACnB,KAAK,CAACmB,IAAI,CAAC;IACxE,OAAOhB,gBAAgB,CACnBG,QAAQ,CAACI,QAAQ,EACjBM,UAAU,EACVZ,KAAK,CAACA,KAAK,CAACgB,MAAM,GAAG,CAAC,CAC1B,CAAC;EACL,CAAC,EAAE,CAACpB,KAAK,CAACmB,IAAI,CAAC,CAAC;EAEhB,OAAO,IAAI;AACf,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["_react","require","_Context","_CompositionScope","Compose","exports","props","_useComposition","useComposition","composeComponent","scope","useCompositionScope","targetFn","function","component","useEffect","original","console","warn","concat","originalName","name","decorators","Array","isArray","with"],"sources":["Compose.tsx"],"sourcesContent":["import { useEffect } from \"react\";\nimport { DecoratableTypes, useComposition } from \"./Context\";\nimport { useCompositionScope } from \"~/CompositionScope\";\nimport { ComposeWith, Decoratable, Enumerable } from \"./types\";\n\nexport interface ComposeProps {\n function?: DecoratableTypes;\n component?: DecoratableTypes;\n with: ComposeWith;\n}\n\nexport const Compose = (props: ComposeProps) => {\n const { composeComponent } = useComposition();\n const scope = useCompositionScope();\n\n const targetFn = (props.function ?? props.component) as Decoratable;\n\n useEffect(() => {\n if (typeof targetFn.original === \"undefined\") {\n console.warn(\n `You must make your function \"${\n targetFn.originalName ?? targetFn.name\n }\" composable, by using the makeDecoratable() function!`\n );\n\n return;\n }\n\n const decorators = Array.isArray(props.with) ? props.with : [props.with];\n return composeComponent(targetFn.original, decorators as Enumerable<ComposeWith>, scope);\n }, [props.with]);\n\n return null;\n};\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,QAAA,GAAAD,OAAA;AACA,IAAAE,iBAAA,GAAAF,OAAA;AASO,IAAMG,OAAO,GAAAC,OAAA,CAAAD,OAAA,GAAG,SAAVA,OAAOA,CAAIE,KAAmB,EAAK;EAC5C,IAAAC,eAAA,GAA6B,IAAAC,uBAAc,EAAC,CAAC;IAArCC,gBAAgB,GAAAF,eAAA,CAAhBE,gBAAgB;EACxB,IAAMC,KAAK,GAAG,IAAAC,qCAAmB,EAAC,CAAC;EAEnC,IAAMC,QAAQ,GAAIN,KAAK,CAACO,QAAQ,IAAIP,KAAK,CAACQ,SAAyB;EAEnE,IAAAC,gBAAS,EAAC,YAAM;IACZ,IAAI,OAAOH,QAAQ,CAACI,QAAQ,KAAK,WAAW,EAAE;MAC1CC,OAAO,CAACC,IAAI,kCAAAC,MAAA,CAEJP,QAAQ,CAACQ,YAAY,IAAIR,QAAQ,CAACS,IAAI,4DAE9C,CAAC;MAED;IACJ;IAEA,IAAMC,UAAU,GAAGC,KAAK,CAACC,OAAO,CAAClB,KAAK,CAACmB,IAAI,CAAC,GAAGnB,KAAK,CAACmB,IAAI,GAAG,CAACnB,KAAK,CAACmB,IAAI,CAAC;IACxE,OAAOhB,gBAAgB,CAACG,QAAQ,CAACI,QAAQ,EAAEM,UAAU,EAA6BZ,KAAK,CAAC;EAC5F,CAAC,EAAE,CAACJ,KAAK,CAACmB,IAAI,CAAC,CAAC;EAEhB,OAAO,IAAI;AACf,CAAC","ignoreList":[]}
package/Context.d.ts CHANGED
@@ -30,7 +30,7 @@ interface CompositionContextGetComponentCallable {
30
30
  interface CompositionContext {
31
31
  components: ComponentScopes;
32
32
  getComponent: CompositionContextGetComponentCallable;
33
- composeComponent(component: ComponentType<unknown>, hocs: Enumerable<ComposeWith>, scope?: string): void;
33
+ composeComponent(component: ComponentType<unknown>, hocs: Enumerable<ComposeWith>, scope?: string[]): void;
34
34
  }
35
35
  declare const CompositionContext: React.Context<CompositionContext | undefined>;
36
36
  export type DecoratorsTuple = [Decoratable, Decorator<any>[]];
package/Context.js CHANGED
@@ -31,31 +31,56 @@ function compose() {
31
31
  */
32
32
 
33
33
  var CompositionContext = /*#__PURE__*/(0, _react.createContext)(undefined);
34
- var composeComponents = function composeComponents(components, decorators) {
35
- var scope = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : "*";
36
- var scopeMap = components.get(scope) || new Map();
37
- var _iterator = (0, _createForOfIteratorHelper2.default)(decorators),
34
+ /**
35
+ * Scopes are ordered in reverse, to go from child to parent. As we iterate over scopes, we try to find the latest component
36
+ * recipe (a "recipe" is a base component + all decorators registered so far). If none exist, we return an empty recipe.
37
+ */
38
+ var findComponentRecipe = function findComponentRecipe(component, lookupScopes, components) {
39
+ var _iterator = (0, _createForOfIteratorHelper2.default)(lookupScopes),
38
40
  _step;
39
41
  try {
40
42
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
41
- var _step$value = (0, _slicedToArray2.default)(_step.value, 2),
42
- _component = _step$value[0],
43
- _hocs = _step$value[1];
44
- var recipe = scopeMap.get(_component) || {
45
- component: null,
46
- hocs: []
47
- };
43
+ var _scope = _step.value;
44
+ var scopeMap = components.get(_scope) || new Map();
45
+ var recipe = scopeMap.get(component);
46
+ if (recipe) {
47
+ return recipe;
48
+ }
49
+ }
50
+ } catch (err) {
51
+ _iterator.e(err);
52
+ } finally {
53
+ _iterator.f();
54
+ }
55
+ return {
56
+ component: null,
57
+ hocs: []
58
+ };
59
+ };
60
+ var composeComponents = function composeComponents(components, decorators) {
61
+ var scopes = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];
62
+ var targetScope = scopes[scopes.length - 1];
63
+ var targetComponents = components.get(targetScope) || new Map();
64
+ var lookupScopes = scopes.reverse();
65
+ var _iterator2 = (0, _createForOfIteratorHelper2.default)(decorators),
66
+ _step2;
67
+ try {
68
+ for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
69
+ var _step2$value = (0, _slicedToArray2.default)(_step2.value, 2),
70
+ _component = _step2$value[0],
71
+ _hocs = _step2$value[1];
72
+ var recipe = findComponentRecipe(_component, lookupScopes, components);
48
73
  var newHocs = [].concat((0, _toConsumableArray2.default)(recipe.hocs || []), (0, _toConsumableArray2.default)(_hocs));
49
- scopeMap.set(_component, {
74
+ targetComponents.set(_component, {
50
75
  component: compose.apply(void 0, (0, _toConsumableArray2.default)((0, _toConsumableArray2.default)(newHocs).reverse()))(_component),
51
76
  hocs: newHocs
52
77
  });
53
- components.set(scope, scopeMap);
78
+ components.set(targetScope, targetComponents);
54
79
  }
55
80
  } catch (err) {
56
- _iterator.e(err);
81
+ _iterator2.e(err);
57
82
  } finally {
58
- _iterator.f();
83
+ _iterator2.f();
59
84
  }
60
85
  return components;
61
86
  };
@@ -66,19 +91,20 @@ var CompositionProvider = exports.CompositionProvider = function CompositionProv
66
91
  var _useState = (0, _react.useState)(function () {
67
92
  return composeComponents(new Map(), decorators.map(function (tuple) {
68
93
  return [tuple[0].original, tuple[1]];
69
- }));
94
+ }), ["*"]);
70
95
  }),
71
96
  _useState2 = (0, _slicedToArray2.default)(_useState, 2),
72
97
  components = _useState2[0],
73
98
  setComponents = _useState2[1];
74
99
  var composeComponent = (0, _react.useCallback)(function (component, hocs) {
75
- var scope = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : "*";
100
+ var scopes = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];
76
101
  setComponents(function (prevComponents) {
77
- return composeComponents(new Map(prevComponents), [[component, hocs]], scope);
102
+ return composeComponents(new Map(prevComponents), [[component, hocs]], ["*"].concat((0, _toConsumableArray2.default)(scopes)));
78
103
  });
79
104
 
80
105
  // Return a function that will remove the added HOCs.
81
106
  return function () {
107
+ var scope = scopes[scopes.length - 1];
82
108
  setComponents(function (prevComponents) {
83
109
  var components = new Map(prevComponents);
84
110
  var scopeMap = components.get(scope) || new Map();
@@ -102,21 +128,21 @@ var CompositionProvider = exports.CompositionProvider = function CompositionProv
102
128
  var getComponent = (0, _react.useCallback)(function (Component) {
103
129
  var scope = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
104
130
  var scopesToResolve = ["*"].concat((0, _toConsumableArray2.default)(scope)).reverse();
105
- var _iterator2 = (0, _createForOfIteratorHelper2.default)(scopesToResolve),
106
- _step2;
131
+ var _iterator3 = (0, _createForOfIteratorHelper2.default)(scopesToResolve),
132
+ _step3;
107
133
  try {
108
- for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
109
- var _scope = _step2.value;
110
- var scopeMap = components.get(_scope) || new Map();
134
+ for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
135
+ var _scope2 = _step3.value;
136
+ var scopeMap = components.get(_scope2) || new Map();
111
137
  var composedComponent = scopeMap.get(Component);
112
138
  if (composedComponent) {
113
139
  return composedComponent.component;
114
140
  }
115
141
  }
116
142
  } catch (err) {
117
- _iterator2.e(err);
143
+ _iterator3.e(err);
118
144
  } finally {
119
- _iterator2.f();
145
+ _iterator3.f();
120
146
  }
121
147
  return undefined;
122
148
  }, [components]);
package/Context.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireWildcard","require","_CompositionScope","compose","_len","arguments","length","fns","Array","_key","decoratee","reduceRight","decorator","CompositionContext","createContext","undefined","composeComponents","components","decorators","scope","scopeMap","get","Map","_iterator","_createForOfIteratorHelper2","default","_step","s","n","done","_step$value","_slicedToArray2","value","component","hocs","recipe","newHocs","concat","_toConsumableArray2","set","apply","reverse","err","e","f","CompositionProvider","exports","_ref","_ref$decorators","children","_useState","useState","map","tuple","original","_useState2","setComponents","composeComponent","useCallback","prevComponents","newHOCs","filter","hoc","includes","NewComponent","getComponent","Component","scopesToResolve","_iterator2","_step2","composedComponent","context","useMemo","createElement","Provider","useComponent","baseFunction","useOptionalComposition","useCompositionScope","useComposition","useContext","Error"],"sources":["Context.tsx"],"sourcesContent":["import React, {\n ComponentType,\n createContext,\n useCallback,\n useContext,\n useMemo,\n useState\n} from \"react\";\nimport { useCompositionScope } from \"~/CompositionScope\";\nimport {\n ComposedFunction,\n ComposeWith,\n Decoratable,\n DecoratableComponent,\n DecoratableHook,\n Decorator,\n Enumerable,\n GenericComponent,\n GenericHook\n} from \"~/types\";\n\nexport function compose<T>(...fns: Decorator<T>[]) {\n return (decoratee: T): T => {\n return fns.reduceRight((decoratee, decorator) => decorator(decoratee), decoratee) as T;\n };\n}\n\ninterface ComposedComponent {\n /**\n * Ready to use React component.\n */\n component: GenericHook | GenericComponent;\n /**\n * HOCs used to compose the original component.\n */\n hocs: Decorator<GenericComponent | GenericHook>[];\n /**\n * Component composition can be scoped.\n */\n scope?: string;\n}\n\n/**\n * @deprecated Use `Decorator` instead.\n */\nexport interface HigherOrderComponent<TProps = any, TOutput = TProps> {\n (Component: GenericComponent<TProps>): GenericComponent<TOutput>;\n}\n\ntype ComposedComponents = Map<ComponentType<unknown>, ComposedComponent>;\ntype ComponentScopes = Map<string, ComposedComponents>;\n\nexport type DecoratableTypes = DecoratableComponent | DecoratableHook;\n\ninterface CompositionContextGetComponentCallable {\n (component: ComponentType<unknown>, scope: string[]):\n | ComposedFunction\n | GenericComponent\n | undefined;\n}\n\ninterface CompositionContext {\n components: ComponentScopes;\n getComponent: CompositionContextGetComponentCallable;\n composeComponent(\n component: ComponentType<unknown>,\n hocs: Enumerable<ComposeWith>,\n scope?: string\n ): void;\n}\n\nconst CompositionContext = createContext<CompositionContext | undefined>(undefined);\n\nexport type DecoratorsTuple = [Decoratable, Decorator<any>[]];\nexport type DecoratorsCollection = Array<DecoratorsTuple>;\n\ninterface CompositionProviderProps {\n decorators?: DecoratorsCollection;\n children: React.ReactNode;\n}\n\nconst composeComponents = (\n components: ComponentScopes,\n decorators: Array<[GenericComponent | GenericHook, Decorator<any>[]]>,\n scope = \"*\"\n) => {\n const scopeMap: ComposedComponents = components.get(scope) || new Map();\n for (const [component, hocs] of decorators) {\n const recipe = scopeMap.get(component) || { component: null, hocs: [] };\n\n const newHocs = [...(recipe.hocs || []), ...hocs] as Decorator<\n GenericHook | GenericComponent\n >[];\n\n scopeMap.set(component, {\n component: compose(...[...newHocs].reverse())(component),\n hocs: newHocs\n });\n\n components.set(scope, scopeMap);\n }\n\n return components;\n};\n\nexport const CompositionProvider = ({ decorators = [], children }: CompositionProviderProps) => {\n const [components, setComponents] = useState<ComponentScopes>(() => {\n return composeComponents(\n new Map(),\n decorators.map(tuple => {\n return [tuple[0].original, tuple[1]];\n })\n );\n });\n\n const composeComponent = useCallback(\n (\n component: GenericComponent | GenericHook,\n hocs: HigherOrderComponent<any, any>[],\n scope: string | undefined = \"*\"\n ) => {\n setComponents(prevComponents => {\n return composeComponents(new Map(prevComponents), [[component, hocs]], scope);\n });\n\n // Return a function that will remove the added HOCs.\n return () => {\n setComponents(prevComponents => {\n const components = new Map(prevComponents);\n const scopeMap: ComposedComponents = components.get(scope) || new Map();\n const recipe = scopeMap.get(component) || {\n component: null,\n hocs: []\n };\n\n const newHOCs = [...recipe.hocs].filter(hoc => !hocs.includes(hoc));\n const NewComponent = compose(...[...newHOCs].reverse())(component);\n\n scopeMap.set(component, {\n component: NewComponent,\n hocs: newHOCs\n });\n\n components.set(scope, scopeMap);\n return components;\n });\n };\n },\n [setComponents]\n );\n\n const getComponent = useCallback<CompositionContextGetComponentCallable>(\n (Component, scope = []) => {\n const scopesToResolve = [\"*\", ...scope].reverse();\n for (const scope of scopesToResolve) {\n const scopeMap: ComposedComponents = components.get(scope) || new Map();\n const composedComponent = scopeMap.get(Component);\n if (composedComponent) {\n return composedComponent.component;\n }\n }\n\n return undefined;\n },\n [components]\n );\n\n const context: CompositionContext = useMemo(\n () => ({\n getComponent,\n composeComponent,\n components\n }),\n [components, composeComponent]\n );\n\n return <CompositionContext.Provider value={context}>{children}</CompositionContext.Provider>;\n};\n\nexport function useComponent<T>(baseFunction: T) {\n const context = useOptionalComposition();\n const scope = useCompositionScope();\n\n if (!context) {\n return baseFunction;\n }\n\n return (context.getComponent(baseFunction as any, scope) || baseFunction) as T;\n}\n\n/**\n * This hook will throw an error if composition context doesn't exist.\n */\nexport function useComposition() {\n const context = useContext(CompositionContext);\n if (!context) {\n throw new Error(\n `You're missing a <CompositionProvider> higher up in your component hierarchy!`\n );\n }\n\n return context;\n}\n\n/**\n * This hook will not throw an error if composition context doesn't exist.\n */\nexport function useOptionalComposition() {\n return useContext(CompositionContext);\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_react","_interopRequireWildcard","require","_CompositionScope","compose","_len","arguments","length","fns","Array","_key","decoratee","reduceRight","decorator","CompositionContext","createContext","undefined","findComponentRecipe","component","lookupScopes","components","_iterator","_createForOfIteratorHelper2","default","_step","s","n","done","scope","value","scopeMap","get","Map","recipe","err","e","f","hocs","composeComponents","decorators","scopes","targetScope","targetComponents","reverse","_iterator2","_step2","_step2$value","_slicedToArray2","newHocs","concat","_toConsumableArray2","set","apply","CompositionProvider","exports","_ref","_ref$decorators","children","_useState","useState","map","tuple","original","_useState2","setComponents","composeComponent","useCallback","prevComponents","newHOCs","filter","hoc","includes","NewComponent","getComponent","Component","scopesToResolve","_iterator3","_step3","composedComponent","context","useMemo","createElement","Provider","useComponent","baseFunction","useOptionalComposition","useCompositionScope","useComposition","useContext","Error"],"sources":["Context.tsx"],"sourcesContent":["import React, {\n ComponentType,\n createContext,\n useCallback,\n useContext,\n useMemo,\n useState\n} from \"react\";\nimport { useCompositionScope } from \"~/CompositionScope\";\nimport {\n ComposedFunction,\n ComposeWith,\n Decoratable,\n DecoratableComponent,\n DecoratableHook,\n Decorator,\n Enumerable,\n GenericComponent,\n GenericHook\n} from \"~/types\";\n\nexport function compose<T>(...fns: Decorator<T>[]) {\n return (decoratee: T): T => {\n return fns.reduceRight((decoratee, decorator) => decorator(decoratee), decoratee) as T;\n };\n}\n\ninterface ComposedComponent {\n /**\n * Ready to use React component.\n */\n component: GenericHook | GenericComponent;\n /**\n * HOCs used to compose the original component.\n */\n hocs: Decorator<GenericComponent | GenericHook>[];\n /**\n * Component composition can be scoped.\n */\n scope?: string;\n}\n\n/**\n * @deprecated Use `Decorator` instead.\n */\nexport interface HigherOrderComponent<TProps = any, TOutput = TProps> {\n (Component: GenericComponent<TProps>): GenericComponent<TOutput>;\n}\n\ntype ComposedComponents = Map<ComponentType<unknown>, ComposedComponent>;\ntype ComponentScopes = Map<string, ComposedComponents>;\n\nexport type DecoratableTypes = DecoratableComponent | DecoratableHook;\n\ninterface CompositionContextGetComponentCallable {\n (component: ComponentType<unknown>, scope: string[]):\n | ComposedFunction\n | GenericComponent\n | undefined;\n}\n\ninterface CompositionContext {\n components: ComponentScopes;\n getComponent: CompositionContextGetComponentCallable;\n composeComponent(\n component: ComponentType<unknown>,\n hocs: Enumerable<ComposeWith>,\n scope?: string[]\n ): void;\n}\n\nconst CompositionContext = createContext<CompositionContext | undefined>(undefined);\n\nexport type DecoratorsTuple = [Decoratable, Decorator<any>[]];\nexport type DecoratorsCollection = Array<DecoratorsTuple>;\n\ninterface CompositionProviderProps {\n decorators?: DecoratorsCollection;\n children: React.ReactNode;\n}\n\n/**\n * Scopes are ordered in reverse, to go from child to parent. As we iterate over scopes, we try to find the latest component\n * recipe (a \"recipe\" is a base component + all decorators registered so far). If none exist, we return an empty recipe.\n */\nconst findComponentRecipe = (\n component: GenericComponent | GenericHook,\n lookupScopes: string[],\n components: ComponentScopes\n) => {\n for (const scope of lookupScopes) {\n const scopeMap: ComposedComponents = components.get(scope) || new Map();\n const recipe = scopeMap.get(component);\n if (recipe) {\n return recipe;\n }\n }\n\n return { component: null, hocs: [] };\n};\n\nconst composeComponents = (\n components: ComponentScopes,\n decorators: Array<[GenericComponent | GenericHook, Decorator<any>[]]>,\n scopes: string[] = []\n) => {\n const targetScope = scopes[scopes.length - 1];\n const targetComponents = components.get(targetScope) || new Map();\n const lookupScopes = scopes.reverse();\n\n for (const [component, hocs] of decorators) {\n const recipe = findComponentRecipe(component, lookupScopes, components);\n\n const newHocs = [...(recipe.hocs || []), ...hocs] as Decorator<\n GenericHook | GenericComponent\n >[];\n\n targetComponents.set(component, {\n component: compose(...[...newHocs].reverse())(component),\n hocs: newHocs\n });\n\n components.set(targetScope, targetComponents);\n }\n\n return components;\n};\n\nexport const CompositionProvider = ({ decorators = [], children }: CompositionProviderProps) => {\n const [components, setComponents] = useState<ComponentScopes>(() => {\n return composeComponents(\n new Map(),\n decorators.map(tuple => {\n return [tuple[0].original, tuple[1]];\n }),\n [\"*\"]\n );\n });\n\n const composeComponent = useCallback(\n (\n component: GenericComponent | GenericHook,\n hocs: HigherOrderComponent<any, any>[],\n scopes: string[] = []\n ) => {\n setComponents(prevComponents => {\n return composeComponents(\n new Map(prevComponents),\n [[component, hocs]],\n [\"*\", ...scopes]\n );\n });\n\n // Return a function that will remove the added HOCs.\n return () => {\n const scope = scopes[scopes.length - 1];\n setComponents(prevComponents => {\n const components = new Map(prevComponents);\n const scopeMap: ComposedComponents = components.get(scope) || new Map();\n const recipe = scopeMap.get(component) || {\n component: null,\n hocs: []\n };\n\n const newHOCs = [...recipe.hocs].filter(hoc => !hocs.includes(hoc));\n const NewComponent = compose(...[...newHOCs].reverse())(component);\n\n scopeMap.set(component, {\n component: NewComponent,\n hocs: newHOCs\n });\n\n components.set(scope, scopeMap);\n return components;\n });\n };\n },\n [setComponents]\n );\n\n const getComponent = useCallback<CompositionContextGetComponentCallable>(\n (Component, scope = []) => {\n const scopesToResolve = [\"*\", ...scope].reverse();\n for (const scope of scopesToResolve) {\n const scopeMap: ComposedComponents = components.get(scope) || new Map();\n const composedComponent = scopeMap.get(Component);\n if (composedComponent) {\n return composedComponent.component;\n }\n }\n\n return undefined;\n },\n [components]\n );\n\n const context: CompositionContext = useMemo(\n () => ({\n getComponent,\n composeComponent,\n components\n }),\n [components, composeComponent]\n );\n\n return <CompositionContext.Provider value={context}>{children}</CompositionContext.Provider>;\n};\n\nexport function useComponent<T>(baseFunction: T) {\n const context = useOptionalComposition();\n const scope = useCompositionScope();\n\n if (!context) {\n return baseFunction;\n }\n\n return (context.getComponent(baseFunction as any, scope) || baseFunction) as T;\n}\n\n/**\n * This hook will throw an error if composition context doesn't exist.\n */\nexport function useComposition() {\n const context = useContext(CompositionContext);\n if (!context) {\n throw new Error(\n `You're missing a <CompositionProvider> higher up in your component hierarchy!`\n );\n }\n\n return context;\n}\n\n/**\n * This hook will not throw an error if composition context doesn't exist.\n */\nexport function useOptionalComposition() {\n return useContext(CompositionContext);\n}\n"],"mappings":"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","ignoreList":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@webiny/react-composition",
3
- "version": "5.41.4",
3
+ "version": "5.42.0-beta.1",
4
4
  "main": "index.js",
5
5
  "repository": {
6
6
  "type": "git",
@@ -14,19 +14,14 @@
14
14
  ],
15
15
  "license": "MIT",
16
16
  "dependencies": {
17
- "@babel/runtime": "7.24.1",
18
17
  "@types/react": "18.2.79",
19
18
  "react": "18.2.0",
20
19
  "react-dom": "18.2.0"
21
20
  },
22
21
  "devDependencies": {
23
- "@babel/cli": "7.24.1",
24
- "@babel/core": "7.24.3",
25
- "@babel/preset-env": "7.24.3",
26
- "@babel/preset-typescript": "7.24.1",
27
22
  "@testing-library/react": "15.0.7",
28
- "@webiny/cli": "5.41.4",
29
- "@webiny/project-utils": "5.41.4",
23
+ "@webiny/cli": "5.42.0-beta.1",
24
+ "@webiny/project-utils": "5.42.0-beta.1",
30
25
  "ttypescript": "1.5.15",
31
26
  "typescript": "4.9.5"
32
27
  },
@@ -38,5 +33,5 @@
38
33
  "build": "yarn webiny run build",
39
34
  "watch": "yarn webiny run watch"
40
35
  },
41
- "gitHead": "94922b33af59db5afe75127bb07443ce7f1448c4"
36
+ "gitHead": "5e69da579efa4f2c8268e0c97ac6407ddc3f5f07"
42
37
  }