@ptolemy2002/react-proxy-context 1.1.0 → 1.2.0
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/index.js +31 -8
- package/package.json +3 -3
package/index.js
CHANGED
|
@@ -711,19 +711,42 @@ var require_react_utils = __commonJS({
|
|
|
711
711
|
}
|
|
712
712
|
var clsx_default = clsx;
|
|
713
713
|
var import_is_callable2 = __toESM2(require_is_callable2());
|
|
714
|
-
var partialMemo2 = (
|
|
715
|
-
|
|
716
|
-
|
|
717
|
-
return
|
|
718
|
-
|
|
719
|
-
|
|
720
|
-
|
|
721
|
-
|
|
714
|
+
var partialMemo2 = (E, deps = [], displayName) => {
|
|
715
|
+
const MemoWrapper = ({ ...props }) => {
|
|
716
|
+
delete props.renderDeps;
|
|
717
|
+
return /* @__PURE__ */ import_react2.default.createElement(E, { ...props });
|
|
718
|
+
};
|
|
719
|
+
MemoWrapper.displayName = "MemoWrapper";
|
|
720
|
+
const result = (0, import_react2.memo)(
|
|
721
|
+
MemoWrapper,
|
|
722
|
+
({ renderDeps: prevRenderDeps = [], ...prevProps }, { renderDeps: nextRenderDeps = [], ...nextProps }) => {
|
|
723
|
+
if (!nextRenderDeps) return false;
|
|
724
|
+
if (prevRenderDeps.length !== nextRenderDeps.length) console.warn("Render deps length changed. This should not happen.");
|
|
725
|
+
if (prevRenderDeps === nextRenderDeps) console.warn("Render deps are the same object across parent renders. This should not happen.");
|
|
726
|
+
if (!nextRenderDeps.every((dep, i) => dep === prevRenderDeps[i])) return false;
|
|
727
|
+
if (deps.length === 0) return true;
|
|
728
|
+
const defaultBehavior = (prop) => {
|
|
729
|
+
if (prop === "children") return true;
|
|
730
|
+
return prevProps[prop] === nextProps[prop];
|
|
731
|
+
};
|
|
732
|
+
return deps.every((dep) => {
|
|
733
|
+
if ((0, import_is_callable2.default)(dep)) return dep(prevProps, nextProps, defaultBehavior);
|
|
734
|
+
return defaultBehavior(dep);
|
|
735
|
+
});
|
|
736
|
+
}
|
|
737
|
+
);
|
|
738
|
+
if (!displayName) {
|
|
739
|
+
result.displayName = (E.displayName ?? E.name) + " (Memo)";
|
|
740
|
+
} else {
|
|
741
|
+
result.displayName = displayName;
|
|
742
|
+
}
|
|
743
|
+
return result;
|
|
722
744
|
};
|
|
723
745
|
var Spacer = (0, import_react2.memo)(function({ size = "1rem", horizontal = false, style = {}, className = null, ...props } = {}) {
|
|
724
746
|
const keyName = horizontal ? "width" : "height";
|
|
725
747
|
return /* @__PURE__ */ import_react2.default.createElement("div", { className: clsx_default("spacer", className), style: { ...style, [keyName]: size }, ...props });
|
|
726
748
|
});
|
|
749
|
+
Spacer.displayName = "Spacer";
|
|
727
750
|
}
|
|
728
751
|
});
|
|
729
752
|
|
package/package.json
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ptolemy2002/react-proxy-context",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.2.0",
|
|
4
4
|
"main": "index.js",
|
|
5
5
|
"files": [
|
|
6
6
|
"index.js"
|
|
7
7
|
],
|
|
8
8
|
"scripts": {
|
|
9
|
-
"build": "esbuild src/index.js --bundle --format=cjs --outfile=index.js --loader:.js=jsx --external:react --external:react-dom",
|
|
9
|
+
"build": "esbuild src/index.js --bundle --format=cjs --outfile=index.js --loader:.js=jsx --external:react --external:react-dom --external:@types/react --external:@types/react-dom",
|
|
10
10
|
"postinstall": "npx typesync",
|
|
11
11
|
"uninstall": "bash ./scripts/uninstall.sh",
|
|
12
12
|
"reinstall": "bash ./scripts/reinstall.sh",
|
|
@@ -43,6 +43,6 @@
|
|
|
43
43
|
},
|
|
44
44
|
"dependencies": {
|
|
45
45
|
"@ptolemy2002/react-hook-result": "^1.0.2",
|
|
46
|
-
"@ptolemy2002/react-utils": "^
|
|
46
|
+
"@ptolemy2002/react-utils": "^2.0.0"
|
|
47
47
|
}
|
|
48
48
|
}
|