@sheinx/hooks 3.10.2-beta.1 → 3.10.2-beta.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.
@@ -8,7 +8,7 @@ declare const useButton: (props?: BaseButtonProps) => {
8
8
  text?: boolean | undefined;
9
9
  outline?: boolean | undefined;
10
10
  type?: import("./use-button.type").ButtonType | undefined;
11
- size?: "small" | "large" | "default" | undefined;
11
+ size?: "small" | "default" | "large" | undefined;
12
12
  space?: boolean | undefined;
13
13
  shape?: import("./use-button.type").ButtonShape | undefined;
14
14
  buttonRef?: React.Ref<HTMLButtonElement> | undefined;
@@ -22,7 +22,7 @@ declare const useButton: (props?: BaseButtonProps) => {
22
22
  text?: boolean | undefined;
23
23
  outline?: boolean | undefined;
24
24
  type?: import("./use-button.type").ButtonType | undefined;
25
- size?: "small" | "large" | "default" | undefined;
25
+ size?: "small" | "default" | "large" | undefined;
26
26
  space?: boolean | undefined;
27
27
  shape?: import("./use-button.type").ButtonShape | undefined;
28
28
  buttonRef?: React.Ref<HTMLButtonElement> | undefined;
@@ -1,8 +1,11 @@
1
1
  import type * as React from 'react';
2
- import type { Root } from 'react-dom/client';
2
+ type RootType = {
3
+ render: (node: React.ReactElement) => void;
4
+ unmount: () => void;
5
+ };
3
6
  declare const MARK = "__rc_react_root__";
4
7
  type ContainerType = (Element | DocumentFragment) & {
5
- [MARK]?: Root;
8
+ [MARK]?: RootType;
6
9
  };
7
10
  export declare function ReactRender(node: React.ReactElement, container: ContainerType): void;
8
11
  export declare function ReactUnmount(container: ContainerType): Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"react-render.d.ts","sourceRoot":"","sources":["react-render.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,KAAK,MAAM,OAAO,CAAC;AAEpC,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAqC7C,QAAA,MAAM,IAAI,sBAAsB,CAAC;AAGjC,KAAK,aAAa,GAAG,CAAC,OAAO,GAAG,gBAAgB,CAAC,GAAG;IAClD,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC;CACf,CAAC;AAuBF,wBAAgB,WAAW,CAAC,IAAI,EAAE,KAAK,CAAC,YAAY,EAAE,SAAS,EAAE,aAAa,QAQ7E;AAuBD,wBAAsB,YAAY,CAAC,SAAS,EAAE,aAAa,iBAO1D"}
1
+ {"version":3,"file":"react-render.d.ts","sourceRoot":"","sources":["react-render.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,KAAK,MAAM,OAAO,CAAC;AAGpC,KAAK,QAAQ,GAAG;IACd,MAAM,EAAE,CAAC,IAAI,EAAE,KAAK,CAAC,YAAY,KAAK,IAAI,CAAC;IAC3C,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB,CAAC;AA6DF,QAAA,MAAM,IAAI,sBAAsB,CAAC;AAGjC,KAAK,aAAa,GAAG,CAAC,OAAO,GAAG,gBAAgB,CAAC,GAAG;IAClD,CAAC,IAAI,CAAC,CAAC,EAAE,QAAQ,CAAC;CACnB,CAAC;AAgBF,wBAAgB,WAAW,CAAC,IAAI,EAAE,KAAK,CAAC,YAAY,EAAE,SAAS,EAAE,aAAa,QAa7E;AAgBD,wBAAsB,YAAY,CAAC,SAAS,EAAE,aAAa,iBAY1D"}
@@ -6,12 +6,12 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports.ReactRender = ReactRender;
7
7
  exports.ReactUnmount = ReactUnmount;
8
8
  var ReactDOM = _interopRequireWildcard(require("react-dom"));
9
- function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
10
- function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
11
9
  function _regeneratorRuntime() { "use strict"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ _regeneratorRuntime = function _regeneratorRuntime() { return e; }; var t, e = {}, r = Object.prototype, n = r.hasOwnProperty, o = Object.defineProperty || function (t, e, r) { t[e] = r.value; }, i = "function" == typeof Symbol ? Symbol : {}, a = i.iterator || "@@iterator", c = i.asyncIterator || "@@asyncIterator", u = i.toStringTag || "@@toStringTag"; function define(t, e, r) { return Object.defineProperty(t, e, { value: r, enumerable: !0, configurable: !0, writable: !0 }), t[e]; } try { define({}, ""); } catch (t) { define = function define(t, e, r) { return t[e] = r; }; } function wrap(t, e, r, n) { var i = e && e.prototype instanceof Generator ? e : Generator, a = Object.create(i.prototype), c = new Context(n || []); return o(a, "_invoke", { value: makeInvokeMethod(t, r, c) }), a; } function tryCatch(t, e, r) { try { return { type: "normal", arg: t.call(e, r) }; } catch (t) { return { type: "throw", arg: t }; } } e.wrap = wrap; var h = "suspendedStart", l = "suspendedYield", f = "executing", s = "completed", y = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var p = {}; define(p, a, function () { return this; }); var d = Object.getPrototypeOf, v = d && d(d(values([]))); v && v !== r && n.call(v, a) && (p = v); var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p); function defineIteratorMethods(t) { ["next", "throw", "return"].forEach(function (e) { define(t, e, function (t) { return this._invoke(e, t); }); }); } function AsyncIterator(t, e) { function invoke(r, o, i, a) { var c = tryCatch(t[r], t, o); if ("throw" !== c.type) { var u = c.arg, h = u.value; return h && "object" == _typeof(h) && n.call(h, "__await") ? e.resolve(h.__await).then(function (t) { invoke("next", t, i, a); }, function (t) { invoke("throw", t, i, a); }) : e.resolve(h).then(function (t) { u.value = t, i(u); }, function (t) { return invoke("throw", t, i, a); }); } a(c.arg); } var r; o(this, "_invoke", { value: function value(t, n) { function callInvokeWithMethodAndArg() { return new e(function (e, r) { invoke(t, n, e, r); }); } return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(e, r, n) { var o = h; return function (i, a) { if (o === f) throw new Error("Generator is already running"); if (o === s) { if ("throw" === i) throw a; return { value: t, done: !0 }; } for (n.method = i, n.arg = a;;) { var c = n.delegate; if (c) { var u = maybeInvokeDelegate(c, n); if (u) { if (u === y) continue; return u; } } if ("next" === n.method) n.sent = n._sent = n.arg;else if ("throw" === n.method) { if (o === h) throw o = s, n.arg; n.dispatchException(n.arg); } else "return" === n.method && n.abrupt("return", n.arg); o = f; var p = tryCatch(e, r, n); if ("normal" === p.type) { if (o = n.done ? s : l, p.arg === y) continue; return { value: p.arg, done: n.done }; } "throw" === p.type && (o = s, n.method = "throw", n.arg = p.arg); } }; } function maybeInvokeDelegate(e, r) { var n = r.method, o = e.iterator[n]; if (o === t) return r.delegate = null, "throw" === n && e.iterator.return && (r.method = "return", r.arg = t, maybeInvokeDelegate(e, r), "throw" === r.method) || "return" !== n && (r.method = "throw", r.arg = new TypeError("The iterator does not provide a '" + n + "' method")), y; var i = tryCatch(o, e.iterator, r.arg); if ("throw" === i.type) return r.method = "throw", r.arg = i.arg, r.delegate = null, y; var a = i.arg; return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, "return" !== r.method && (r.method = "next", r.arg = t), r.delegate = null, y) : a : (r.method = "throw", r.arg = new TypeError("iterator result is not an object"), r.delegate = null, y); } function pushTryEntry(t) { var e = { tryLoc: t[0] }; 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e); } function resetTryEntry(t) { var e = t.completion || {}; e.type = "normal", delete e.arg, t.completion = e; } function Context(t) { this.tryEntries = [{ tryLoc: "root" }], t.forEach(pushTryEntry, this), this.reset(!0); } function values(e) { if (e || "" === e) { var r = e[a]; if (r) return r.call(e); if ("function" == typeof e.next) return e; if (!isNaN(e.length)) { var o = -1, i = function next() { for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next; return next.value = t, next.done = !0, next; }; return i.next = i; } } throw new TypeError(_typeof(e) + " is not iterable"); } return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, "constructor", { value: GeneratorFunctionPrototype, configurable: !0 }), o(GeneratorFunctionPrototype, "constructor", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, "GeneratorFunction"), e.isGeneratorFunction = function (t) { var e = "function" == typeof t && t.constructor; return !!e && (e === GeneratorFunction || "GeneratorFunction" === (e.displayName || e.name)); }, e.mark = function (t) { return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, "GeneratorFunction")), t.prototype = Object.create(g), t; }, e.awrap = function (t) { return { __await: t }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () { return this; }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) { void 0 === i && (i = Promise); var a = new AsyncIterator(wrap(t, r, n, o), i); return e.isGeneratorFunction(r) ? a : a.next().then(function (t) { return t.done ? t.value : a.next(); }); }, defineIteratorMethods(g), define(g, u, "Generator"), define(g, a, function () { return this; }), define(g, "toString", function () { return "[object Generator]"; }), e.keys = function (t) { var e = Object(t), r = []; for (var n in e) r.push(n); return r.reverse(), function next() { for (; r.length;) { var t = r.pop(); if (t in e) return next.value = t, next.done = !1, next; } return next.done = !0, next; }; }, e.values = values, Context.prototype = { constructor: Context, reset: function reset(e) { if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = "next", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) "t" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t); }, stop: function stop() { this.done = !0; var t = this.tryEntries[0].completion; if ("throw" === t.type) throw t.arg; return this.rval; }, dispatchException: function dispatchException(e) { if (this.done) throw e; var r = this; function handle(n, o) { return a.type = "throw", a.arg = e, r.next = n, o && (r.method = "next", r.arg = t), !!o; } for (var o = this.tryEntries.length - 1; o >= 0; --o) { var i = this.tryEntries[o], a = i.completion; if ("root" === i.tryLoc) return handle("end"); if (i.tryLoc <= this.prev) { var c = n.call(i, "catchLoc"), u = n.call(i, "finallyLoc"); if (c && u) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } else if (c) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); } else { if (!u) throw new Error("try statement without catch or finally"); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } } } }, abrupt: function abrupt(t, e) { for (var r = this.tryEntries.length - 1; r >= 0; --r) { var o = this.tryEntries[r]; if (o.tryLoc <= this.prev && n.call(o, "finallyLoc") && this.prev < o.finallyLoc) { var i = o; break; } } i && ("break" === t || "continue" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null); var a = i ? i.completion : {}; return a.type = t, a.arg = e, i ? (this.method = "next", this.next = i.finallyLoc, y) : this.complete(a); }, complete: function complete(t, e) { if ("throw" === t.type) throw t.arg; return "break" === t.type || "continue" === t.type ? this.next = t.arg : "return" === t.type ? (this.rval = this.arg = t.arg, this.method = "return", this.next = "end") : "normal" === t.type && e && (this.next = e), y; }, finish: function finish(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y; } }, catch: function _catch(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.tryLoc === t) { var n = r.completion; if ("throw" === n.type) { var o = n.arg; resetTryEntry(r); } return o; } } throw new Error("illegal catch attempt"); }, delegateYield: function delegateYield(e, r, n) { return this.delegate = { iterator: values(e), resultName: r, nextLoc: n }, "next" === this.method && (this.arg = t), y; } }, e; }
12
10
  function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
13
11
  function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
14
12
  function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
13
+ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
14
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
15
15
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
16
16
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
17
17
  function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
@@ -23,13 +23,36 @@ var version = fullClone.version,
23
23
  reactRender = fullClone.render,
24
24
  unmountComponentAtNode = fullClone.unmountComponentAtNode;
25
25
  var createRoot;
26
- try {
27
- var mainVersion = Number((version || '').split('.')[0]);
28
- if (mainVersion >= 18) {
29
- createRoot = fullClone.createRoot;
30
- }
31
- } catch (e) {
32
- // Do nothing;
26
+ var mainVersion = Number((version || '').split('.')[0]);
27
+
28
+ // React 18: createRoot 在 react-dom 主入口上可获取
29
+ if (mainVersion >= 18 && typeof fullClone.createRoot === 'function') {
30
+ createRoot = fullClone.createRoot;
31
+ }
32
+
33
+ // React 19+: createRoot 已从主入口移除,仅在 react-dom/client 导出
34
+ // 用 import() 动态加载,CJS/ESM 产物均可用
35
+ // 使用 pendingQueue 保证 import() resolve 之前的调用不会丢失
36
+
37
+ var pendingQueue = null;
38
+ if (!createRoot && mainVersion >= 18) {
39
+ pendingQueue = [];
40
+ Promise.resolve().then(function () {
41
+ return _interopRequireWildcard(require('react-dom/client'));
42
+ }).then(function (client) {
43
+ createRoot = client.createRoot;
44
+ }).catch(function () {
45
+ // 不应走到这里,但安全降级
46
+ }).finally(function () {
47
+ var queue = pendingQueue;
48
+ pendingQueue = null;
49
+ // 回放等待期间的调用
50
+ queue === null || queue === void 0 || queue.forEach(function (_ref) {
51
+ var node = _ref.node,
52
+ container = _ref.container;
53
+ return ReactRender(node, container);
54
+ });
55
+ });
33
56
  }
34
57
  function toggleWarning(skip) {
35
58
  var __SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED = fullClone.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;
@@ -49,17 +72,17 @@ function modernRender(node, container) {
49
72
  container[MARK] = root;
50
73
  }
51
74
  function legacyRender(node, container) {
52
- reactRender(node, container);
53
- }
54
-
55
- /** @private Test usage. Not work in prod */
56
- function _r(node, container) {
57
- if (process.env.NODE_ENV !== 'production') {
58
- return legacyRender(node, container);
59
- }
75
+ reactRender === null || reactRender === void 0 || reactRender(node, container);
60
76
  }
61
77
  function ReactRender(node, container) {
62
- // @ts-ignore
78
+ // import() 尚未 resolve,入队等待回放
79
+ if (pendingQueue !== null) {
80
+ pendingQueue.push({
81
+ node: node,
82
+ container: container
83
+ });
84
+ return;
85
+ }
63
86
  if (createRoot) {
64
87
  modernRender(node, container);
65
88
  return;
@@ -90,14 +113,7 @@ function _modernUnmount() {
90
113
  return _modernUnmount.apply(this, arguments);
91
114
  }
92
115
  function legacyUnmount(container) {
93
- unmountComponentAtNode(container);
94
- }
95
-
96
- /** @private Test usage. Not work in prod */
97
- function _u(container) {
98
- if (process.env.NODE_ENV !== 'production') {
99
- return legacyUnmount(container);
100
- }
116
+ unmountComponentAtNode === null || unmountComponentAtNode === void 0 || unmountComponentAtNode(container);
101
117
  }
102
118
  function ReactUnmount(_x2) {
103
119
  return _ReactUnmount.apply(this, arguments);
@@ -107,14 +123,23 @@ function _ReactUnmount() {
107
123
  return _regeneratorRuntime().wrap(function _callee2$(_context2) {
108
124
  while (1) switch (_context2.prev = _context2.next) {
109
125
  case 0:
126
+ if (!(pendingQueue !== null)) {
127
+ _context2.next = 3;
128
+ break;
129
+ }
130
+ pendingQueue = pendingQueue.filter(function (item) {
131
+ return item.container !== container;
132
+ });
133
+ return _context2.abrupt("return");
134
+ case 3:
110
135
  if (!(createRoot !== undefined)) {
111
- _context2.next = 2;
136
+ _context2.next = 5;
112
137
  break;
113
138
  }
114
139
  return _context2.abrupt("return", modernUnmount(container));
115
- case 2:
140
+ case 5:
116
141
  legacyUnmount(container);
117
- case 3:
142
+ case 6:
118
143
  case "end":
119
144
  return _context2.stop();
120
145
  }
@@ -8,7 +8,7 @@ declare const useButton: (props?: BaseButtonProps) => {
8
8
  text?: boolean | undefined;
9
9
  outline?: boolean | undefined;
10
10
  type?: import("./use-button.type").ButtonType | undefined;
11
- size?: "small" | "large" | "default" | undefined;
11
+ size?: "small" | "default" | "large" | undefined;
12
12
  space?: boolean | undefined;
13
13
  shape?: import("./use-button.type").ButtonShape | undefined;
14
14
  buttonRef?: React.Ref<HTMLButtonElement> | undefined;
@@ -22,7 +22,7 @@ declare const useButton: (props?: BaseButtonProps) => {
22
22
  text?: boolean | undefined;
23
23
  outline?: boolean | undefined;
24
24
  type?: import("./use-button.type").ButtonType | undefined;
25
- size?: "small" | "large" | "default" | undefined;
25
+ size?: "small" | "default" | "large" | undefined;
26
26
  space?: boolean | undefined;
27
27
  shape?: import("./use-button.type").ButtonShape | undefined;
28
28
  buttonRef?: React.Ref<HTMLButtonElement> | undefined;
@@ -1,8 +1,11 @@
1
1
  import type * as React from 'react';
2
- import type { Root } from 'react-dom/client';
2
+ type RootType = {
3
+ render: (node: React.ReactElement) => void;
4
+ unmount: () => void;
5
+ };
3
6
  declare const MARK = "__rc_react_root__";
4
7
  type ContainerType = (Element | DocumentFragment) & {
5
- [MARK]?: Root;
8
+ [MARK]?: RootType;
6
9
  };
7
10
  export declare function ReactRender(node: React.ReactElement, container: ContainerType): void;
8
11
  export declare function ReactUnmount(container: ContainerType): Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"react-render.d.ts","sourceRoot":"","sources":["react-render.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,KAAK,MAAM,OAAO,CAAC;AAEpC,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAqC7C,QAAA,MAAM,IAAI,sBAAsB,CAAC;AAGjC,KAAK,aAAa,GAAG,CAAC,OAAO,GAAG,gBAAgB,CAAC,GAAG;IAClD,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC;CACf,CAAC;AAuBF,wBAAgB,WAAW,CAAC,IAAI,EAAE,KAAK,CAAC,YAAY,EAAE,SAAS,EAAE,aAAa,QAQ7E;AAuBD,wBAAsB,YAAY,CAAC,SAAS,EAAE,aAAa,iBAO1D"}
1
+ {"version":3,"file":"react-render.d.ts","sourceRoot":"","sources":["react-render.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,KAAK,MAAM,OAAO,CAAC;AAGpC,KAAK,QAAQ,GAAG;IACd,MAAM,EAAE,CAAC,IAAI,EAAE,KAAK,CAAC,YAAY,KAAK,IAAI,CAAC;IAC3C,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB,CAAC;AA6DF,QAAA,MAAM,IAAI,sBAAsB,CAAC;AAGjC,KAAK,aAAa,GAAG,CAAC,OAAO,GAAG,gBAAgB,CAAC,GAAG;IAClD,CAAC,IAAI,CAAC,CAAC,EAAE,QAAQ,CAAC;CACnB,CAAC;AAgBF,wBAAgB,WAAW,CAAC,IAAI,EAAE,KAAK,CAAC,YAAY,EAAE,SAAS,EAAE,aAAa,QAa7E;AAgBD,wBAAsB,YAAY,CAAC,SAAS,EAAE,aAAa,iBAY1D"}
@@ -16,13 +16,34 @@ var version = fullClone.version,
16
16
  reactRender = fullClone.render,
17
17
  unmountComponentAtNode = fullClone.unmountComponentAtNode;
18
18
  var createRoot;
19
- try {
20
- var mainVersion = Number((version || '').split('.')[0]);
21
- if (mainVersion >= 18) {
22
- createRoot = fullClone.createRoot;
23
- }
24
- } catch (e) {
25
- // Do nothing;
19
+ var mainVersion = Number((version || '').split('.')[0]);
20
+
21
+ // React 18: createRoot 在 react-dom 主入口上可获取
22
+ if (mainVersion >= 18 && typeof fullClone.createRoot === 'function') {
23
+ createRoot = fullClone.createRoot;
24
+ }
25
+
26
+ // React 19+: createRoot 已从主入口移除,仅在 react-dom/client 导出
27
+ // 用 import() 动态加载,CJS/ESM 产物均可用
28
+ // 使用 pendingQueue 保证 import() resolve 之前的调用不会丢失
29
+
30
+ var pendingQueue = null;
31
+ if (!createRoot && mainVersion >= 18) {
32
+ pendingQueue = [];
33
+ import('react-dom/client').then(function (client) {
34
+ createRoot = client.createRoot;
35
+ }).catch(function () {
36
+ // 不应走到这里,但安全降级
37
+ }).finally(function () {
38
+ var queue = pendingQueue;
39
+ pendingQueue = null;
40
+ // 回放等待期间的调用
41
+ queue === null || queue === void 0 || queue.forEach(function (_ref) {
42
+ var node = _ref.node,
43
+ container = _ref.container;
44
+ return ReactRender(node, container);
45
+ });
46
+ });
26
47
  }
27
48
  function toggleWarning(skip) {
28
49
  var __SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED = fullClone.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;
@@ -42,17 +63,17 @@ function modernRender(node, container) {
42
63
  container[MARK] = root;
43
64
  }
44
65
  function legacyRender(node, container) {
45
- reactRender(node, container);
46
- }
47
-
48
- /** @private Test usage. Not work in prod */
49
- function _r(node, container) {
50
- if (process.env.NODE_ENV !== 'production') {
51
- return legacyRender(node, container);
52
- }
66
+ reactRender === null || reactRender === void 0 || reactRender(node, container);
53
67
  }
54
68
  export function ReactRender(node, container) {
55
- // @ts-ignore
69
+ // import() 尚未 resolve,入队等待回放
70
+ if (pendingQueue !== null) {
71
+ pendingQueue.push({
72
+ node: node,
73
+ container: container
74
+ });
75
+ return;
76
+ }
56
77
  if (createRoot) {
57
78
  modernRender(node, container);
58
79
  return;
@@ -83,14 +104,7 @@ function _modernUnmount() {
83
104
  return _modernUnmount.apply(this, arguments);
84
105
  }
85
106
  function legacyUnmount(container) {
86
- unmountComponentAtNode(container);
87
- }
88
-
89
- /** @private Test usage. Not work in prod */
90
- function _u(container) {
91
- if (process.env.NODE_ENV !== 'production') {
92
- return legacyUnmount(container);
93
- }
107
+ unmountComponentAtNode === null || unmountComponentAtNode === void 0 || unmountComponentAtNode(container);
94
108
  }
95
109
  export function ReactUnmount(_x2) {
96
110
  return _ReactUnmount.apply(this, arguments);
@@ -100,14 +114,23 @@ function _ReactUnmount() {
100
114
  return _regeneratorRuntime().wrap(function _callee2$(_context2) {
101
115
  while (1) switch (_context2.prev = _context2.next) {
102
116
  case 0:
117
+ if (!(pendingQueue !== null)) {
118
+ _context2.next = 3;
119
+ break;
120
+ }
121
+ pendingQueue = pendingQueue.filter(function (item) {
122
+ return item.container !== container;
123
+ });
124
+ return _context2.abrupt("return");
125
+ case 3:
103
126
  if (!(createRoot !== undefined)) {
104
- _context2.next = 2;
127
+ _context2.next = 5;
105
128
  break;
106
129
  }
107
130
  return _context2.abrupt("return", modernUnmount(container));
108
- case 2:
131
+ case 5:
109
132
  legacyUnmount(container);
110
- case 3:
133
+ case 6:
111
134
  case "end":
112
135
  return _context2.stop();
113
136
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sheinx/hooks",
3
- "version": "3.10.2-beta.1",
3
+ "version": "3.10.2-beta.2",
4
4
  "description": "",
5
5
  "keywords": [],
6
6
  "license": "MIT",