@my-react/react-reconciler-compact 0.0.7 → 0.0.9

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.
@@ -311,6 +311,7 @@ function requireIndex_production_1 () {
311
311
  STATE_TYPE[STATE_TYPE["__retrigger__"] = 512] = "__retrigger__";
312
312
  STATE_TYPE[STATE_TYPE["__reschedule__"] = 1024] = "__reschedule__";
313
313
  STATE_TYPE[STATE_TYPE["__recreate__"] = 2048] = "__recreate__";
314
+ STATE_TYPE[STATE_TYPE["__suspense__"] = 4096] = "__suspense__";
314
315
  })(exports.STATE_TYPE || (exports.STATE_TYPE = {}));
315
316
 
316
317
  exports.PATCH_TYPE = void 0;
@@ -913,7 +914,7 @@ function requireIndex_production_1 () {
913
914
  enableSyncFlush$1.current = stack.pop();
914
915
  };
915
916
 
916
- var currentRunningFiber$5 = react.__my_react_internal__.currentRunningFiber, currentScheduler$g = react.__my_react_internal__.currentScheduler, currentScopeFiber$1 = react.__my_react_internal__.currentScopeFiber, currentError$1 = react.__my_react_internal__.currentError, currentCallingFiber$1 = react.__my_react_internal__.currentCallingFiber;
917
+ var currentRunningFiber$5 = react.__my_react_internal__.currentRunningFiber, currentScheduler$h = react.__my_react_internal__.currentScheduler, currentScopeFiber$1 = react.__my_react_internal__.currentScopeFiber, currentError$1 = react.__my_react_internal__.currentError, currentCallingFiber$1 = react.__my_react_internal__.currentCallingFiber;
917
918
  var safeCall = function (action) {
918
919
  var args = [];
919
920
  for (var _i = 1; _i < arguments.length; _i++) {
@@ -924,7 +925,7 @@ function requireIndex_production_1 () {
924
925
  }
925
926
  catch (e) {
926
927
  var fiber = (currentCallingFiber$1 === null || currentCallingFiber$1 === void 0 ? void 0 : currentCallingFiber$1[(currentCallingFiber$1 === null || currentCallingFiber$1 === void 0 ? void 0 : currentCallingFiber$1.length) - 1]) || currentScopeFiber$1.current || currentRunningFiber$5.current;
927
- var renderScheduler = currentScheduler$g.current;
928
+ var renderScheduler = currentScheduler$h.current;
928
929
  currentError$1.current = currentError$1.current || e;
929
930
  renderScheduler.dispatchError({ fiber: fiber, error: currentError$1.current });
930
931
  }
@@ -944,7 +945,7 @@ function requireIndex_production_1 () {
944
945
  return fallback();
945
946
  }
946
947
  else {
947
- var renderScheduler = currentScheduler$g.current;
948
+ var renderScheduler = currentScheduler$h.current;
948
949
  currentError$1.current = currentError$1.current || e;
949
950
  renderScheduler.dispatchError({ fiber: fiber, error: currentError$1.current });
950
951
  }
@@ -978,7 +979,7 @@ function requireIndex_production_1 () {
978
979
  }
979
980
  catch (e) {
980
981
  var fiber = (currentCallingFiber$1 === null || currentCallingFiber$1 === void 0 ? void 0 : currentCallingFiber$1[(currentCallingFiber$1 === null || currentCallingFiber$1 === void 0 ? void 0 : currentCallingFiber$1.length) - 1]) || currentScopeFiber$1.current || currentRunningFiber$5.current;
981
- var renderScheduler = currentScheduler$g.current;
982
+ var renderScheduler = currentScheduler$h.current;
982
983
  currentError$1.current = currentError$1.current || e;
983
984
  renderScheduler.dispatchError({ fiber: fiber, error: currentError$1.current });
984
985
  }
@@ -987,7 +988,7 @@ function requireIndex_production_1 () {
987
988
  }
988
989
  };
989
990
 
990
- var currentScheduler$f = react.__my_react_internal__.currentScheduler, currentRunningFiber$4 = react.__my_react_internal__.currentRunningFiber, currentScopeFiber = react.__my_react_internal__.currentScopeFiber, currentCallingFiber = react.__my_react_internal__.currentCallingFiber;
991
+ var currentScheduler$g = react.__my_react_internal__.currentScheduler, currentRunningFiber$4 = react.__my_react_internal__.currentRunningFiber, currentScopeFiber = react.__my_react_internal__.currentScopeFiber, currentCallingFiber = react.__my_react_internal__.currentCallingFiber;
991
992
  var enableOptimizeTreeLog = react.__my_react_shared__.enableOptimizeTreeLog;
992
993
  var typeColor = {
993
994
  normal: "rgba(10, 190, 235, 0.8)",
@@ -1042,7 +1043,7 @@ function requireIndex_production_1 () {
1042
1043
  for (var _i = 0; _i < arguments.length; _i++) {
1043
1044
  args[_i] = arguments[_i];
1044
1045
  }
1045
- var renderScheduler = currentScheduler$f.current;
1046
+ var renderScheduler = currentScheduler$g.current;
1046
1047
  var startWithPlain = typeof args[0] === "string";
1047
1048
  var renderFiber = warnFiber || (currentCallingFiber === null || currentCallingFiber === void 0 ? void 0 : currentCallingFiber[(currentCallingFiber === null || currentCallingFiber === void 0 ? void 0 : currentCallingFiber.length) - 1]) || currentScopeFiber.current || currentRunningFiber$4.current;
1048
1049
  renderFiber && fiberWarn.apply(void 0, __spreadArray([renderFiber], args, false));
@@ -1079,7 +1080,7 @@ function requireIndex_production_1 () {
1079
1080
  for (var _i = 0; _i < arguments.length; _i++) {
1080
1081
  args[_i] = arguments[_i];
1081
1082
  }
1082
- var renderScheduler = currentScheduler$f.current;
1083
+ var renderScheduler = currentScheduler$g.current;
1083
1084
  var startWithPlain = typeof args[0] === "string";
1084
1085
  var renderFiber = errorFiber || (currentCallingFiber === null || currentCallingFiber === void 0 ? void 0 : currentCallingFiber[(currentCallingFiber === null || currentCallingFiber === void 0 ? void 0 : currentCallingFiber.length) - 1]) || currentScopeFiber.current || currentRunningFiber$4.current;
1085
1086
  renderFiber && fiberError.apply(void 0, __spreadArray([renderFiber], args, false));
@@ -1283,7 +1284,7 @@ function requireIndex_production_1 () {
1283
1284
  for (var _i = 2; _i < arguments.length; _i++) {
1284
1285
  args[_i - 2] = arguments[_i];
1285
1286
  }
1286
- var renderScheduler = currentScheduler$f.current;
1287
+ var renderScheduler = currentScheduler$g.current;
1287
1288
  var tree = renderScheduler.getFiberTree(fiber);
1288
1289
  if ((_b = warnMap === null || warnMap === void 0 ? void 0 : warnMap[tree]) === null || _b === void 0 ? void 0 : _b[key])
1289
1290
  return;
@@ -1299,7 +1300,7 @@ function requireIndex_production_1 () {
1299
1300
  for (var _i = 2; _i < arguments.length; _i++) {
1300
1301
  args[_i - 2] = arguments[_i];
1301
1302
  }
1302
- var renderScheduler = currentScheduler$f.current;
1303
+ var renderScheduler = currentScheduler$g.current;
1303
1304
  var tree = renderScheduler.getFiberTree(fiber);
1304
1305
  if ((_b = errorMap === null || errorMap === void 0 ? void 0 : errorMap[tree]) === null || _b === void 0 ? void 0 : _b[key])
1305
1306
  return;
@@ -1330,7 +1331,7 @@ function requireIndex_production_1 () {
1330
1331
  if (typeof element === "object" && element !== null) {
1331
1332
  nodeType = myreactSharedExports.merge(nodeType, exports.NODE_TYPE.__empty__);
1332
1333
  }
1333
- else if (element === null || element === undefined || typeof element === "boolean" || typeof element === "function") {
1334
+ else if (element === null || element === undefined || typeof element === "boolean" || typeof element === "function" || element === "") {
1334
1335
  nodeType = myreactSharedExports.merge(nodeType, exports.NODE_TYPE.__null__);
1335
1336
  }
1336
1337
  else {
@@ -1451,7 +1452,7 @@ function requireIndex_production_1 () {
1451
1452
  throw new Error("[@my-react/react] invalid symbol element type \"".concat(elementType === null || elementType === void 0 ? void 0 : elementType.toString(), "\""));
1452
1453
  }
1453
1454
  }
1454
- else if (typeof elementType === "string") {
1455
+ else if (typeof elementType === "string" && elementType !== "") {
1455
1456
  nodeType = myreactSharedExports.merge(nodeType, exports.NODE_TYPE.__plain__);
1456
1457
  }
1457
1458
  else {
@@ -1488,7 +1489,17 @@ function requireIndex_production_1 () {
1488
1489
  return new Set(Array.from(fibers || []).map(function (fiber) { return fiberToDispatchMap.get(fiber); }));
1489
1490
  };
1490
1491
  var getCurrentDispatchFromFiber = function (fiber) {
1491
- return fiberToDispatchMap.get(fiber);
1492
+ var dispatch = fiberToDispatchMap.get(fiber);
1493
+ if (dispatch)
1494
+ return dispatch;
1495
+ var parent = fiber.parent;
1496
+ while (parent) {
1497
+ var typedFiberRoot = parent;
1498
+ if (typedFiberRoot.renderDispatch) {
1499
+ return typedFiberRoot.renderDispatch;
1500
+ }
1501
+ parent = parent.parent;
1502
+ }
1492
1503
  };
1493
1504
  var getElementFromRefreshIfExist = function (element) {
1494
1505
  var _a, _b;
@@ -1508,7 +1519,7 @@ function requireIndex_production_1 () {
1508
1519
  var initHMR = function (env) {
1509
1520
  };
1510
1521
 
1511
- var currentRunningFiber$3 = react.__my_react_internal__.currentRunningFiber, currentScheduler$e = react.__my_react_internal__.currentScheduler;
1522
+ var currentRunningFiber$3 = react.__my_react_internal__.currentRunningFiber, currentScheduler$f = react.__my_react_internal__.currentScheduler;
1512
1523
  var dispatchHook = function (params) {
1513
1524
  var fiber = currentRunningFiber$3.current;
1514
1525
  if (!fiber) {
@@ -1539,10 +1550,10 @@ function requireIndex_production_1 () {
1539
1550
  var dispatchError = function (_params) {
1540
1551
  var fiber = _params.fiber || currentRunningFiber$3.current;
1541
1552
  if (!fiber) {
1542
- throw new Error("No fiber found for dispatching error.");
1553
+ // a normal error
1554
+ throw _params.error;
1543
1555
  }
1544
- if (myreactSharedExports.include(fiber.state, myreactSharedExports.STATE_TYPE.__unmount__))
1545
- return;
1556
+ // if (include(fiber.state, STATE_TYPE.__unmount__)) return;
1546
1557
  var dispatch = getCurrentDispatchFromFiber(fiber);
1547
1558
  if (!dispatch) {
1548
1559
  throw new Error("No dispatch found for the current running fiber.");
@@ -1554,14 +1565,25 @@ function requireIndex_production_1 () {
1554
1565
  if (!fiber) {
1555
1566
  throw new Error("No fiber found for dispatching promise.");
1556
1567
  }
1557
- if (myreactSharedExports.include(fiber.state, myreactSharedExports.STATE_TYPE.__unmount__))
1558
- return;
1568
+ // if (include(fiber.state, STATE_TYPE.__unmount__)) return;
1559
1569
  var dispatch = getCurrentDispatchFromFiber(fiber);
1560
1570
  if (!dispatch) {
1561
1571
  throw new Error("No dispatch found for the current running fiber.");
1562
1572
  }
1563
1573
  return dispatch.dispatchPromise(_params);
1564
1574
  };
1575
+ var dispatchSuspensePromise = function (_params) {
1576
+ var fiber = _params.fiber || currentRunningFiber$3.current;
1577
+ if (!fiber) {
1578
+ throw new Error("No fiber found for dispatching suspense promise.");
1579
+ }
1580
+ // if (include(fiber.state, STATE_TYPE.__unmount__)) return;
1581
+ var dispatch = getCurrentDispatchFromFiber(fiber);
1582
+ if (!dispatch) {
1583
+ throw new Error("No dispatch found for the current running fiber.");
1584
+ }
1585
+ return dispatch.dispatchSuspensePromise(_params);
1586
+ };
1565
1587
  var readContext = function (_params) {
1566
1588
  var fiber = currentRunningFiber$3.current;
1567
1589
  if (!fiber) {
@@ -1598,7 +1620,7 @@ function requireIndex_production_1 () {
1598
1620
  }
1599
1621
  };
1600
1622
  var initScheduler = function () {
1601
- var scheduler = currentScheduler$e.current;
1623
+ var scheduler = currentScheduler$f.current;
1602
1624
  scheduler.getFiberTree = getFiberTree;
1603
1625
  scheduler.readPromise = readPromise;
1604
1626
  scheduler.readContext = readContext;
@@ -1606,6 +1628,7 @@ function requireIndex_production_1 () {
1606
1628
  scheduler.dispatchHook = dispatchHook;
1607
1629
  scheduler.dispatchError = dispatchError;
1608
1630
  scheduler.dispatchPromise = dispatchPromise;
1631
+ scheduler.dispatchSuspensePromise = dispatchSuspensePromise;
1609
1632
  };
1610
1633
 
1611
1634
  react.__my_react_shared__.enableHMRForDev;
@@ -1709,85 +1732,6 @@ function requireIndex_production_1 () {
1709
1732
  return listTree;
1710
1733
  };
1711
1734
 
1712
- var currentRunningFiber$2 = react.__my_react_internal__.currentRunningFiber;
1713
- var mountToNextFiberFromRoot = function (renderDispatch, fiber) {
1714
- if (myreactSharedExports.include(fiber.state, myreactSharedExports.STATE_TYPE.__unmount__) || renderDispatch.isAppCrashed)
1715
- return null;
1716
- if (myreactSharedExports.include(fiber.state, myreactSharedExports.STATE_TYPE.__create__ |
1717
- myreactSharedExports.STATE_TYPE.__inherit__ |
1718
- myreactSharedExports.STATE_TYPE.__triggerSync__ |
1719
- myreactSharedExports.STATE_TYPE.__triggerSyncForce__ |
1720
- myreactSharedExports.STATE_TYPE.__triggerConcurrent__ |
1721
- myreactSharedExports.STATE_TYPE.__triggerConcurrentForce__ |
1722
- myreactSharedExports.STATE_TYPE.__retrigger__ |
1723
- myreactSharedExports.STATE_TYPE.__reschedule__ |
1724
- myreactSharedExports.STATE_TYPE.__recreate__)) {
1725
- fiber.state = myreactSharedExports.remove(fiber.state, myreactSharedExports.STATE_TYPE.__retrigger__);
1726
- currentRunningFiber$2.current = fiber;
1727
- {
1728
- runtimeNextWork(renderDispatch, fiber);
1729
- }
1730
- currentRunningFiber$2.current = null;
1731
- }
1732
- if (!myreactSharedExports.include(fiber.state, myreactSharedExports.STATE_TYPE.__retrigger__)) {
1733
- fiber.state = myreactSharedExports.STATE_TYPE.__stable__;
1734
- }
1735
- else {
1736
- fiber.state = myreactSharedExports.STATE_TYPE.__triggerSync__;
1737
- }
1738
- if (fiber.child)
1739
- return fiber.child;
1740
- var nextFiber = fiber;
1741
- while (nextFiber && nextFiber !== renderDispatch.runtimeFiber.scheduledFiber) {
1742
- renderDispatch.generateCommitList(nextFiber);
1743
- if (nextFiber.sibling)
1744
- return nextFiber.sibling;
1745
- nextFiber = nextFiber.parent;
1746
- }
1747
- if (nextFiber === renderDispatch.runtimeFiber.scheduledFiber)
1748
- renderDispatch.generateCommitList(nextFiber);
1749
- return null;
1750
- };
1751
- var performToNextFiberFromRoot = function (renderDispatch, fiber) {
1752
- if (myreactSharedExports.include(fiber.state, myreactSharedExports.STATE_TYPE.__unmount__) || renderDispatch.isAppCrashed)
1753
- return null;
1754
- if (myreactSharedExports.include(fiber.state, myreactSharedExports.STATE_TYPE.__create__ |
1755
- myreactSharedExports.STATE_TYPE.__inherit__ |
1756
- myreactSharedExports.STATE_TYPE.__triggerSync__ |
1757
- myreactSharedExports.STATE_TYPE.__triggerSyncForce__ |
1758
- myreactSharedExports.STATE_TYPE.__triggerConcurrent__ |
1759
- myreactSharedExports.STATE_TYPE.__triggerConcurrentForce__ |
1760
- myreactSharedExports.STATE_TYPE.__retrigger__ |
1761
- myreactSharedExports.STATE_TYPE.__reschedule__ |
1762
- myreactSharedExports.STATE_TYPE.__recreate__)) {
1763
- fiber.state = myreactSharedExports.remove(fiber.state, myreactSharedExports.STATE_TYPE.__retrigger__);
1764
- currentRunningFiber$2.current = fiber;
1765
- {
1766
- runtimeNextWork(renderDispatch, fiber);
1767
- }
1768
- currentRunningFiber$2.current = null;
1769
- triggerFiberUpdateListener(renderDispatch, fiber);
1770
- }
1771
- if (!myreactSharedExports.include(fiber.state, myreactSharedExports.STATE_TYPE.__retrigger__)) {
1772
- fiber.state = myreactSharedExports.STATE_TYPE.__stable__;
1773
- }
1774
- else {
1775
- fiber.state = myreactSharedExports.STATE_TYPE.__triggerSync__;
1776
- }
1777
- if (fiber.child)
1778
- return fiber.child;
1779
- var nextFiber = fiber;
1780
- while (nextFiber && nextFiber !== renderDispatch.runtimeFiber.scheduledFiber) {
1781
- renderDispatch.generateCommitList(nextFiber);
1782
- if (nextFiber.sibling)
1783
- return nextFiber.sibling;
1784
- nextFiber = nextFiber.parent;
1785
- }
1786
- if (nextFiber === renderDispatch.runtimeFiber.scheduledFiber)
1787
- renderDispatch.generateCommitList(nextFiber);
1788
- return null;
1789
- };
1790
-
1791
1735
  var defaultGenerateEffectMap = function (fiber, effect, map, option) {
1792
1736
  var list = map.get(fiber);
1793
1737
  if (!list) {
@@ -1888,6 +1832,16 @@ function requireIndex_production_1 () {
1888
1832
  child = child.sibling;
1889
1833
  }
1890
1834
  };
1835
+ var effectCallbackList = new myreactSharedExports.ListTree();
1836
+ var addEffectCallback = function (cb) {
1837
+ effectCallbackList.push(cb);
1838
+ };
1839
+ var flushEffectCallback = function () {
1840
+ effectCallbackList.listToFoot(function (cb) {
1841
+ cb();
1842
+ });
1843
+ effectCallbackList.clear();
1844
+ };
1891
1845
  var effect = defaultInvokeEffect;
1892
1846
  var layoutEffect = defaultInvokeLayoutEffect;
1893
1847
  var insertionEffect = defaultInvokeInsertionEffect;
@@ -1934,8 +1888,93 @@ function requireIndex_production_1 () {
1934
1888
  }
1935
1889
  };
1936
1890
 
1937
- var enableSuspenseRoot$2 = react.__my_react_shared__.enableSuspenseRoot;
1938
- var currentScheduler$d = react.__my_react_internal__.currentScheduler;
1891
+ var currentRunningFiber$2 = react.__my_react_internal__.currentRunningFiber;
1892
+ var mountToNextFiberFromRoot = function (renderDispatch, fiber) {
1893
+ if (myreactSharedExports.include(fiber.state, myreactSharedExports.STATE_TYPE.__unmount__) || renderDispatch.isAppCrashed)
1894
+ return null;
1895
+ if (myreactSharedExports.include(fiber.state, myreactSharedExports.STATE_TYPE.__create__ |
1896
+ myreactSharedExports.STATE_TYPE.__inherit__ |
1897
+ myreactSharedExports.STATE_TYPE.__triggerSync__ |
1898
+ myreactSharedExports.STATE_TYPE.__triggerSyncForce__ |
1899
+ myreactSharedExports.STATE_TYPE.__triggerConcurrent__ |
1900
+ myreactSharedExports.STATE_TYPE.__triggerConcurrentForce__ |
1901
+ myreactSharedExports.STATE_TYPE.__retrigger__ |
1902
+ myreactSharedExports.STATE_TYPE.__reschedule__ |
1903
+ myreactSharedExports.STATE_TYPE.__recreate__)) {
1904
+ fiber.state = myreactSharedExports.remove(fiber.state, myreactSharedExports.STATE_TYPE.__retrigger__);
1905
+ currentRunningFiber$2.current = fiber;
1906
+ {
1907
+ runtimeNextWork(renderDispatch, fiber);
1908
+ }
1909
+ currentRunningFiber$2.current = null;
1910
+ }
1911
+ if (myreactSharedExports.include(fiber.state, myreactSharedExports.STATE_TYPE.__suspense__)) {
1912
+ fiber.state = myreactSharedExports.STATE_TYPE.__recreate__;
1913
+ }
1914
+ else if (!myreactSharedExports.include(fiber.state, myreactSharedExports.STATE_TYPE.__retrigger__)) {
1915
+ fiber.state = myreactSharedExports.STATE_TYPE.__stable__;
1916
+ }
1917
+ else {
1918
+ fiber.state = myreactSharedExports.STATE_TYPE.__triggerSync__;
1919
+ }
1920
+ if (fiber.child)
1921
+ return fiber.child;
1922
+ var nextFiber = fiber;
1923
+ while (nextFiber && nextFiber !== renderDispatch.runtimeFiber.scheduledFiber) {
1924
+ renderDispatch.generateCommitList(nextFiber);
1925
+ if (nextFiber.sibling)
1926
+ return nextFiber.sibling;
1927
+ nextFiber = nextFiber.parent;
1928
+ }
1929
+ if (nextFiber === renderDispatch.runtimeFiber.scheduledFiber)
1930
+ renderDispatch.generateCommitList(nextFiber);
1931
+ return null;
1932
+ };
1933
+ var performToNextFiberFromRoot = function (renderDispatch, fiber) {
1934
+ if (myreactSharedExports.include(fiber.state, myreactSharedExports.STATE_TYPE.__unmount__) || renderDispatch.isAppCrashed)
1935
+ return null;
1936
+ if (myreactSharedExports.include(fiber.state, myreactSharedExports.STATE_TYPE.__create__ |
1937
+ myreactSharedExports.STATE_TYPE.__inherit__ |
1938
+ myreactSharedExports.STATE_TYPE.__triggerSync__ |
1939
+ myreactSharedExports.STATE_TYPE.__triggerSyncForce__ |
1940
+ myreactSharedExports.STATE_TYPE.__triggerConcurrent__ |
1941
+ myreactSharedExports.STATE_TYPE.__triggerConcurrentForce__ |
1942
+ myreactSharedExports.STATE_TYPE.__retrigger__ |
1943
+ myreactSharedExports.STATE_TYPE.__reschedule__ |
1944
+ myreactSharedExports.STATE_TYPE.__recreate__)) {
1945
+ fiber.state = myreactSharedExports.remove(fiber.state, myreactSharedExports.STATE_TYPE.__retrigger__);
1946
+ currentRunningFiber$2.current = fiber;
1947
+ {
1948
+ runtimeNextWork(renderDispatch, fiber);
1949
+ }
1950
+ currentRunningFiber$2.current = null;
1951
+ triggerFiberUpdateListener(renderDispatch, fiber);
1952
+ }
1953
+ if (myreactSharedExports.include(fiber.state, myreactSharedExports.STATE_TYPE.__suspense__)) {
1954
+ fiber.state = myreactSharedExports.STATE_TYPE.__recreate__;
1955
+ }
1956
+ else if (!myreactSharedExports.include(fiber.state, myreactSharedExports.STATE_TYPE.__retrigger__)) {
1957
+ fiber.state = myreactSharedExports.STATE_TYPE.__stable__;
1958
+ }
1959
+ else {
1960
+ fiber.state = myreactSharedExports.STATE_TYPE.__triggerSync__;
1961
+ }
1962
+ if (fiber.child)
1963
+ return fiber.child;
1964
+ var nextFiber = fiber;
1965
+ while (nextFiber && nextFiber !== renderDispatch.runtimeFiber.scheduledFiber) {
1966
+ renderDispatch.generateCommitList(nextFiber);
1967
+ if (nextFiber.sibling)
1968
+ return nextFiber.sibling;
1969
+ nextFiber = nextFiber.parent;
1970
+ }
1971
+ if (nextFiber === renderDispatch.runtimeFiber.scheduledFiber)
1972
+ renderDispatch.generateCommitList(nextFiber);
1973
+ return null;
1974
+ };
1975
+
1976
+ var enableSuspenseRoot$3 = react.__my_react_shared__.enableSuspenseRoot;
1977
+ var currentScheduler$e = react.__my_react_internal__.currentScheduler;
1939
1978
  var mountLoopAllFromScheduler = function (renderDispatch) {
1940
1979
  while (renderDispatch.runtimeFiber.nextWorkingFiber) {
1941
1980
  renderDispatch.runtimeFiber.retriggerFiber = null;
@@ -2006,7 +2045,7 @@ function requireIndex_production_1 () {
2006
2045
  _a.sent();
2007
2046
  return [3 /*break*/, 1];
2008
2047
  case 3:
2009
- if (!enableSuspenseRoot$2.current) return [3 /*break*/, 5];
2048
+ if (!enableSuspenseRoot$3.current) return [3 /*break*/, 5];
2010
2049
  suspenseField_1 = getInstanceFieldByInstance(renderDispatch);
2011
2050
  list = suspenseField_1.asyncLoadList.getAll();
2012
2051
  if (list.length === 0)
@@ -2087,7 +2126,7 @@ function requireIndex_production_1 () {
2087
2126
  }); })).then(function () {
2088
2127
  var aliveNode = defaultResolveAliveSuspenseFiber(node) || renderDispatch.rootFiber;
2089
2128
  aliveNode.state = myreactSharedExports.STATE_TYPE.__triggerSyncForce__;
2090
- var renderScheduler = currentScheduler$d.current;
2129
+ var renderScheduler = currentScheduler$e.current;
2091
2130
  var updater = {
2092
2131
  type: myreactSharedExports.UpdateQueueType.suspense,
2093
2132
  trigger: aliveNode,
@@ -2114,15 +2153,12 @@ function requireIndex_production_1 () {
2114
2153
  throw new Error("[@my-react/reconciler] should not process async load list on sync mount without enableAsyncLoad, you may use a wrong renderDispatch instance");
2115
2154
  }
2116
2155
  }
2117
- // TODO update flow
2118
- if (enableSuspenseRoot$2.current) {
2156
+ if (enableSuspenseRoot$3.current) {
2119
2157
  var suspenseField_2 = getInstanceFieldByInstance(renderDispatch);
2120
2158
  var list = suspenseField_2.asyncLoadList.getAll();
2121
2159
  if (list.length === 0)
2122
2160
  return;
2123
2161
  if (renderDispatch.enableAsyncLoad) {
2124
- // defaultDeleteCurrentEffect(renderDispatch, renderDispatch.rootFiber);
2125
- // defaultDeleteChildEffect(renderDispatch, renderDispatch.rootFiber);
2126
2162
  var allPendingLoadArray = list.filter(function (item) {
2127
2163
  if (myreactSharedExports.isPromise(item)) {
2128
2164
  return typeof item.status !== "string";
@@ -2153,7 +2189,7 @@ function requireIndex_production_1 () {
2153
2189
  (_a = item._list) === null || _a === void 0 ? void 0 : _a.clear();
2154
2190
  allFiber.forEach(function (node) {
2155
2191
  node.state = myreactSharedExports.STATE_TYPE.__recreate__;
2156
- var renderScheduler = currentScheduler$d.current;
2192
+ var renderScheduler = currentScheduler$e.current;
2157
2193
  var updater = {
2158
2194
  type: myreactSharedExports.UpdateQueueType.suspense,
2159
2195
  trigger: node,
@@ -2169,13 +2205,6 @@ function requireIndex_production_1 () {
2169
2205
  });
2170
2206
  }); }));
2171
2207
  }
2172
- // suspenseField.isHidden = true;
2173
- // const root = renderDispatch.rootFiber;
2174
- // root.state = remove(root.state, STATE_TYPE.__stable__);
2175
- // root.state = merge(root.state, STATE_TYPE.__retrigger__);
2176
- // // TODO use hide tree to improve
2177
- // mountLoopAll(renderDispatch, root);
2178
- // suspenseField.isHidden = false;
2179
2208
  }
2180
2209
  else {
2181
2210
  throw new Error("[@my-react/reconciler] should not process async load list on sync mount without enableAsyncLoad, you may use a wrong renderDispatch instance");
@@ -2183,6 +2212,8 @@ function requireIndex_production_1 () {
2183
2212
  }
2184
2213
  };
2185
2214
 
2215
+ var enableSuspenseRoot$2 = react.__my_react_shared__.enableSuspenseRoot;
2216
+ var currentScheduler$d = react.__my_react_internal__.currentScheduler;
2186
2217
  exports.updateTypeEnum = void 0;
2187
2218
  (function (updateTypeEnum) {
2188
2219
  updateTypeEnum[updateTypeEnum["syncFromRoot"] = 0] = "syncFromRoot";
@@ -2229,7 +2260,89 @@ function requireIndex_production_1 () {
2229
2260
  }
2230
2261
  return hasSync;
2231
2262
  };
2232
- var processAsyncLoadListOnUpdate = processAsyncLoadListOnSyncMount;
2263
+ var processAsyncLoadListOnUpdate = function (renderDispatch) {
2264
+ var _a;
2265
+ if ((_a = renderDispatch.pendingSuspenseFiberArray) === null || _a === void 0 ? void 0 : _a.length) {
2266
+ var allPendingSuspenseFiberArray = renderDispatch.pendingSuspenseFiberArray.getAll();
2267
+ if (renderDispatch.enableAsyncLoad) {
2268
+ var allField_1 = [];
2269
+ allPendingSuspenseFiberArray.forEach(function (node) {
2270
+ defaultDeleteChildEffect(renderDispatch, node);
2271
+ var field = getInstanceFieldByInstance(node.instance);
2272
+ var allPendingLoadArray = field.asyncLoadList.getAll().filter(function (item) {
2273
+ if (myreactSharedExports.isPromise(item)) {
2274
+ return typeof item.status !== "string";
2275
+ }
2276
+ else {
2277
+ return !item._loading && !item._loaded && !item._error;
2278
+ }
2279
+ });
2280
+ if (allPendingLoadArray.length) {
2281
+ Promise.all(allPendingLoadArray.map(function (item) { return __awaiter(void 0, void 0, void 0, function () {
2282
+ var _a;
2283
+ return __generator(this, function (_b) {
2284
+ switch (_b.label) {
2285
+ case 0:
2286
+ if (!myreactSharedExports.isPromise(item)) return [3 /*break*/, 2];
2287
+ return [4 /*yield*/, renderDispatch.processPromise(item)];
2288
+ case 1:
2289
+ _b.sent();
2290
+ return [3 /*break*/, 4];
2291
+ case 2: return [4 /*yield*/, renderDispatch.processLazy(item)];
2292
+ case 3:
2293
+ _b.sent();
2294
+ _b.label = 4;
2295
+ case 4:
2296
+ (_a = item._list) === null || _a === void 0 ? void 0 : _a.clear();
2297
+ field.asyncLoadList.uniDelete(item);
2298
+ return [2 /*return*/];
2299
+ }
2300
+ });
2301
+ }); })).then(function () {
2302
+ var aliveNode = defaultResolveAliveSuspenseFiber(node) || renderDispatch.rootFiber;
2303
+ aliveNode.state = myreactSharedExports.STATE_TYPE.__triggerSyncForce__;
2304
+ var renderScheduler = currentScheduler$d.current;
2305
+ var updater = {
2306
+ type: myreactSharedExports.UpdateQueueType.suspense,
2307
+ trigger: aliveNode,
2308
+ isSync: true,
2309
+ isForce: true,
2310
+ payLoad: allPendingLoadArray,
2311
+ };
2312
+ renderScheduler.dispatchState(updater);
2313
+ });
2314
+ }
2315
+ // fix hmr
2316
+ node.state = myreactSharedExports.STATE_TYPE.__reschedule__;
2317
+ field.isHidden = true;
2318
+ allField_1.push(field);
2319
+ });
2320
+ var root = renderDispatch.rootFiber;
2321
+ root.state = myreactSharedExports.remove(root.state, myreactSharedExports.STATE_TYPE.__stable__);
2322
+ root.state = myreactSharedExports.merge(root.state, myreactSharedExports.STATE_TYPE.__retrigger__);
2323
+ // TODO use hide tree to improve
2324
+ mountLoopAll(renderDispatch, root);
2325
+ allField_1.forEach(function (field) { return (field.isHidden = false); });
2326
+ renderDispatch.pendingSuspenseFiberArray.clear();
2327
+ }
2328
+ else {
2329
+ throw new Error("[@my-react/reconciler] should not process async load list on sync mount without enableAsyncLoad, you may use a wrong renderDispatch instance");
2330
+ }
2331
+ }
2332
+ // TODO update flow
2333
+ if (enableSuspenseRoot$2.current) {
2334
+ var suspenseField = getInstanceFieldByInstance(renderDispatch);
2335
+ var list = suspenseField.asyncLoadList.getAll();
2336
+ if (list.length === 0)
2337
+ return;
2338
+ if (renderDispatch.enableAsyncLoad) {
2339
+ throw new Error("[@my-react/reconciler] not implemented yet");
2340
+ }
2341
+ else {
2342
+ throw new Error("[@my-react/reconciler] should not process async load list on sync mount without enableAsyncLoad, you may use a wrong renderDispatch instance");
2343
+ }
2344
+ }
2345
+ };
2233
2346
 
2234
2347
  var isErrorBoundariesInstance = function (instance, Component) {
2235
2348
  return typeof instance.componentDidCatch === "function" || typeof Component.getDerivedStateFromError === "function";
@@ -2767,7 +2880,7 @@ function requireIndex_production_1 () {
2767
2880
  var allQueue = fiber.updateQueue;
2768
2881
  var node = allQueue === null || allQueue === void 0 ? void 0 : allQueue.head;
2769
2882
  var needUpdate = true;
2770
- var isSync = false;
2883
+ var isSync = true;
2771
2884
  var isForce = false;
2772
2885
  var isImmediate = false;
2773
2886
  var isRetrigger = false;
@@ -2998,7 +3111,7 @@ function requireIndex_production_1 () {
2998
3111
  var allQueue = fiber.updateQueue;
2999
3112
  var node = allQueue === null || allQueue === void 0 ? void 0 : allQueue.head;
3000
3113
  var needUpdate = false;
3001
- var isSync = false;
3114
+ var isSync = true;
3002
3115
  var isForce = false;
3003
3116
  var isImmediate = false;
3004
3117
  var isRetrigger = false;
@@ -3118,7 +3231,7 @@ function requireIndex_production_1 () {
3118
3231
  var renderScheduler = currentScheduler$c.current;
3119
3232
  var node = allQueue === null || allQueue === void 0 ? void 0 : allQueue.head;
3120
3233
  var needUpdate = true;
3121
- var isSync = false;
3234
+ var isSync = true;
3122
3235
  var isForce = false;
3123
3236
  var isImmediate = false;
3124
3237
  var isRetrigger = false;
@@ -3440,15 +3553,15 @@ function requireIndex_production_1 () {
3440
3553
  };
3441
3554
 
3442
3555
  var globalLoop$2 = react.__my_react_internal__.globalLoop, currentScheduler$a = react.__my_react_internal__.currentScheduler;
3443
- var enableConcurrentMode$1 = react.__my_react_shared__.enableConcurrentMode;
3444
3556
  var scheduleUpdateFromRoot = function (renderDispatch) {
3557
+ flushEffectCallback();
3445
3558
  var allLive = renderDispatch.pendingUpdateFiberArray.getAll().filter(function (f) { return myreactSharedExports.exclude(f.state, myreactSharedExports.STATE_TYPE.__unmount__); });
3446
3559
  renderDispatch.pendingUpdateFiberArray.clear();
3447
3560
  if (allLive.length) {
3448
3561
  renderDispatch.runtimeFiber.scheduledFiber = renderDispatch.rootFiber;
3449
3562
  renderDispatch.runtimeFiber.nextWorkingFiber = renderDispatch.rootFiber;
3450
3563
  allLive.forEach(function (fiber) { return applyTriggerFiberCb(renderDispatch, fiber); });
3451
- if (!enableConcurrentMode$1.current || allLive.some(function (f) { return myreactSharedExports.include(f.state, myreactSharedExports.STATE_TYPE.__triggerSync__ | myreactSharedExports.STATE_TYPE.__triggerSyncForce__); })) {
3564
+ if (!renderDispatch.enableConcurrentMode || allLive.some(function (f) { return myreactSharedExports.include(f.state, myreactSharedExports.STATE_TYPE.__triggerSync__ | myreactSharedExports.STATE_TYPE.__triggerSyncForce__); })) {
3452
3565
  updateSyncFromRoot(renderDispatch);
3453
3566
  }
3454
3567
  else {
@@ -3547,7 +3660,7 @@ function requireIndex_production_1 () {
3547
3660
  return myreactSharedExports.include(renderDispatch.runtimeFiber.nextWorkingFiber.state, myreactSharedExports.STATE_TYPE.__triggerSync__ | myreactSharedExports.STATE_TYPE.__triggerSyncForce__);
3548
3661
  // include(renderDispatch.runtimeFiber.nextWorkingFiber.state, STATE_TYPE.__retrigger__)
3549
3662
  }
3550
- function updateConCurrentNextFrame(renderDispatch) {
3663
+ function updateConcurrentNextFrame(renderDispatch) {
3551
3664
  var renderScheduler = currentScheduler$9.current;
3552
3665
  var hasSync = updateLoopConcurrentFromRoot(renderDispatch);
3553
3666
  if (renderDispatch.runtimeFiber.nextWorkingFiber) {
@@ -3560,7 +3673,7 @@ function requireIndex_production_1 () {
3560
3673
  updateSyncFromRoot(renderDispatch);
3561
3674
  }
3562
3675
  else {
3563
- updateConCurrentNextFrame(renderDispatch);
3676
+ updateConcurrentNextFrame(renderDispatch);
3564
3677
  }
3565
3678
  });
3566
3679
  }
@@ -3568,8 +3681,7 @@ function requireIndex_production_1 () {
3568
3681
  else {
3569
3682
  processAsyncLoadListOnUpdate(renderDispatch);
3570
3683
  finishUpdateConcurrentFromRoot(renderDispatch);
3571
- renderScheduler.microTask(function callScheduleNext() {
3572
- // TODO! flash all effect
3684
+ renderScheduler.macroTask(function callScheduleNext() {
3573
3685
  globalLoop$1.current = false;
3574
3686
  scheduleNext(renderDispatch);
3575
3687
  });
@@ -3589,7 +3701,7 @@ function requireIndex_production_1 () {
3589
3701
  updateSyncFromRoot(renderDispatch);
3590
3702
  }
3591
3703
  else {
3592
- updateConCurrentNextFrame(renderDispatch);
3704
+ updateConcurrentNextFrame(renderDispatch);
3593
3705
  }
3594
3706
  });
3595
3707
  }
@@ -3597,8 +3709,7 @@ function requireIndex_production_1 () {
3597
3709
  else {
3598
3710
  processAsyncLoadListOnUpdate(renderDispatch);
3599
3711
  finishUpdateConcurrentFromRoot(renderDispatch);
3600
- renderScheduler.microTask(function callScheduleNext() {
3601
- // TODO! flash all effect
3712
+ renderScheduler.macroTask(function callScheduleNext() {
3602
3713
  globalLoop$1.current = false;
3603
3714
  scheduleNext(renderDispatch);
3604
3715
  });
@@ -3639,7 +3750,9 @@ function requireIndex_production_1 () {
3639
3750
  if (!field)
3640
3751
  throw new Error("[@my-react/react] hook instance not found, look like a bug for @my-react");
3641
3752
  var typedField = field;
3642
- typedField.dispatch = function (action) { return hookNode._update({ payLoad: action, isForce: false, isSync: enableSyncFlush.current }); };
3753
+ typedField.dispatch = function dispatchAction(action) {
3754
+ hookNode._update({ payLoad: action, isForce: false, isSync: enableSyncFlush.current });
3755
+ };
3643
3756
  };
3644
3757
 
3645
3758
  var currentComponentFiber$3 = react.__my_react_internal__.currentComponentFiber;
@@ -3675,12 +3788,22 @@ function requireIndex_production_1 () {
3675
3788
  };
3676
3789
  var defaultOptimisticReducer = function (state) { return state; };
3677
3790
  var createHookNode = function (renderDispatch, _a, fiber) {
3678
- var _b;
3791
+ var _b, _c;
3679
3792
  var type = _a.type, value = _a.value, reducer = _a.reducer, deps = _a.deps;
3680
3793
  var currentHook = (_b = currentHookTreeNode$2.current) === null || _b === void 0 ? void 0 : _b.value;
3681
3794
  var currentHookIndex = currentHookNodeIndex$2.current;
3795
+ var currentIsReCreate = myreactSharedExports.include(fiber.state, myreactSharedExports.STATE_TYPE.__recreate__);
3682
3796
  if (currentHook) {
3683
- throw new Error("[@my-react/react] should not have a hookList for current node, this is a bug for @my-react");
3797
+ if (currentIsReCreate) {
3798
+ if (currentHookIndex === 0) {
3799
+ defaultDeleteChildEffect(renderDispatch, fiber);
3800
+ defaultDeleteCurrentEffect(renderDispatch, fiber);
3801
+ fiber.hookList.clear();
3802
+ }
3803
+ }
3804
+ else {
3805
+ throw new Error("[@my-react/react] should not have a hookList for current node, this is a bug for @my-react");
3806
+ }
3684
3807
  }
3685
3808
  var hookNode = new MyReactHookNode(type, value, reducer || defaultReducer, deps);
3686
3809
  initInstance(hookNode);
@@ -3704,6 +3827,10 @@ function requireIndex_production_1 () {
3704
3827
  if (hookNode.type === myreactSharedExports.HOOK_TYPE.useRef || hookNode.type === myreactSharedExports.HOOK_TYPE.useCallback || hookNode.type === myreactSharedExports.HOOK_TYPE.useDeferredValue) {
3705
3828
  hookNode.result = hookNode.value;
3706
3829
  }
3830
+ // cache ref state from recreate
3831
+ if (hookNode.type === myreactSharedExports.HOOK_TYPE.useRef && currentHook && currentHook.type === myreactSharedExports.HOOK_TYPE.useRef) {
3832
+ hookNode.result = currentHook.result;
3833
+ }
3707
3834
  if (hookNode.type === myreactSharedExports.HOOK_TYPE.useId) {
3708
3835
  hookNode.result = "\u00AB-".concat(currentHookIndex, "-").concat(renderDispatch.uniqueIdCount++, "-\u00BB");
3709
3836
  hookNode.cancel = function () { return renderDispatch.uniqueIdCount--; };
@@ -3726,12 +3853,13 @@ function requireIndex_production_1 () {
3726
3853
  return safeCallWithCurrentFiber({
3727
3854
  fiber: fiber,
3728
3855
  action: function safeCallGetSnapshot() {
3729
- var _a;
3730
3856
  return renderDispatch.isAppMounted
3731
3857
  ? storeApi_1.getSnapshot.call(null)
3732
- : storeApi_1.getServerSnapshot
3733
- ? (_a = storeApi_1.getServerSnapshot) === null || _a === void 0 ? void 0 : _a.call(null)
3734
- : storeApi_1.getSnapshot.call(null);
3858
+ : // SEE https://github.com/facebook/react/blob/main/packages/use-sync-external-store/src/useSyncExternalStoreShimClient.js#L33
3859
+ // : storeApi.getServerSnapshot
3860
+ // ? storeApi.getServerSnapshot?.call(null)
3861
+ // : storeApi.getSnapshot.call(null);
3862
+ storeApi_1.getSnapshot.call(null);
3735
3863
  },
3736
3864
  });
3737
3865
  };
@@ -3825,6 +3953,7 @@ function requireIndex_production_1 () {
3825
3953
  },
3826
3954
  };
3827
3955
  }
3956
+ currentHookTreeNode$2.current = (_c = currentHookTreeNode$2.current) === null || _c === void 0 ? void 0 : _c.next;
3828
3957
  return hookNode;
3829
3958
  };
3830
3959
 
@@ -4147,11 +4276,10 @@ function requireIndex_production_1 () {
4147
4276
  fiber.constructor.prototype.isMyReactFiberNode);
4148
4277
  };
4149
4278
 
4150
- var enableConcurrentMode = react.__my_react_shared__.enableConcurrentMode;
4151
4279
  var currentScheduler$5 = react.__my_react_internal__.currentScheduler;
4152
4280
  var processUpdateOnFiber = function (renderDispatch, fiber, _isImmediate, _isRetrigger) {
4153
4281
  var renderScheduler = currentScheduler$5.current;
4154
- var flag = enableConcurrentMode.current;
4282
+ var flag = renderDispatch.enableConcurrentMode;
4155
4283
  var updateState = null;
4156
4284
  if (myreactSharedExports.include(fiber.type, exports.NODE_TYPE.__class__)) {
4157
4285
  updateState = flag ? processClassComponentUpdateQueueLatest(renderDispatch, fiber, flag) : processClassComponentUpdateQueueLegacy(renderDispatch, fiber);
@@ -4370,7 +4498,8 @@ function requireIndex_production_1 () {
4370
4498
  renderDispatch.pendingUpdate(fiber);
4371
4499
  }
4372
4500
  }
4373
- if (nextRef && prevRef !== nextRef) {
4501
+ if (prevRef !== nextRef) {
4502
+ fiber.refPrevious = prevRef;
4374
4503
  renderDispatch.pendingRef(fiber);
4375
4504
  }
4376
4505
  if (fiber !== prevFiber) {
@@ -4523,8 +4652,8 @@ function requireIndex_production_1 () {
4523
4652
  return updateFiberNode(renderDispatch, { fiber: draftFiber_1, parent: parentFiber, prevFiber: prevFiberChild }, newElement);
4524
4653
  }
4525
4654
  else {
4526
- renderDispatch.generateChangedList(parentFiber);
4527
- renderDispatch.pendingUnmount(parentFiber, draftFiber_1);
4655
+ draftFiber_1 && renderDispatch.generateChangedList(parentFiber);
4656
+ draftFiber_1 && renderDispatch.pendingUnmount(parentFiber, draftFiber_1);
4528
4657
  return createFragmentWithUpdate(renderDispatch, newChild, parentFiber);
4529
4658
  }
4530
4659
  }
@@ -4541,7 +4670,7 @@ function requireIndex_production_1 () {
4541
4670
  }
4542
4671
  else {
4543
4672
  draftFiber && renderDispatch.pendingUnmount(parentFiber, draftFiber);
4544
- renderDispatch.generateChangedList(parentFiber);
4673
+ draftFiber && renderDispatch.generateChangedList(parentFiber);
4545
4674
  return createFiberNode(renderDispatch, { parent: parentFiber, type: "position" }, newChild);
4546
4675
  }
4547
4676
  };
@@ -4556,9 +4685,13 @@ function requireIndex_production_1 () {
4556
4685
  var isUpdate = myreactSharedExports.exclude(parentFiber.state, myreactSharedExports.STATE_TYPE.__create__);
4557
4686
  var isHMR = myreactSharedExports.include(parentFiber.state, myreactSharedExports.STATE_TYPE.__hmr__);
4558
4687
  var isRetrigger = myreactSharedExports.include(parentFiber.state, myreactSharedExports.STATE_TYPE.__retrigger__);
4688
+ var isSuspense = myreactSharedExports.include(parentFiber.state, myreactSharedExports.STATE_TYPE.__suspense__);
4559
4689
  // is current is retrigger update, skip update children
4560
4690
  if (isRetrigger)
4561
4691
  return;
4692
+ // if is suspense, skip update children
4693
+ if (isSuspense)
4694
+ return;
4562
4695
  if (isUpdate || isHMR) {
4563
4696
  var _a = getExistingChildren(parentFiber), existingChildrenMap = _a.existingChildrenMap, existingChildrenArray = _a.existingChildrenArray;
4564
4697
  parentFiber.child = null;
@@ -4644,6 +4777,11 @@ function requireIndex_production_1 () {
4644
4777
  };
4645
4778
 
4646
4779
  var currentHookTreeNode = react.__my_react_internal__.currentHookTreeNode, currentHookNodeIndex$1 = react.__my_react_internal__.currentHookNodeIndex, currentScheduler$4 = react.__my_react_internal__.currentScheduler;
4780
+ var triggerState = myreactSharedExports.STATE_TYPE.__triggerSync__ |
4781
+ myreactSharedExports.STATE_TYPE.__triggerSyncForce__ |
4782
+ myreactSharedExports.STATE_TYPE.__triggerConcurrent__ |
4783
+ myreactSharedExports.STATE_TYPE.__triggerConcurrentForce__ |
4784
+ myreactSharedExports.STATE_TYPE.__retrigger__;
4647
4785
  var processFunction = function (fiber) {
4648
4786
  var _a;
4649
4787
  currentHookTreeNode.current = (_a = fiber.hookList) === null || _a === void 0 ? void 0 : _a.head;
@@ -4655,14 +4793,20 @@ function requireIndex_production_1 () {
4655
4793
  children = safeCallWithCurrentFiber({
4656
4794
  fiber: fiber,
4657
4795
  action: function safeCallForwardRefFunctionalComponent() {
4658
- var _a, _b;
4796
+ var _a, _b, _c, _d;
4659
4797
  var re = undefined;
4660
4798
  try {
4661
4799
  re = typedElementTypeWithRef_1(fiber.pendingProps, fiber.ref);
4662
4800
  }
4663
4801
  catch (e) {
4664
4802
  if (myreactSharedExports.isPromise(e)) {
4665
- re = (_b = (_a = currentScheduler$4.current) === null || _a === void 0 ? void 0 : _a.dispatchPromise) === null || _b === void 0 ? void 0 : _b.call(_a, { fiber: fiber, promise: e });
4803
+ var currentIsTrigger = myreactSharedExports.include(fiber.state, triggerState);
4804
+ if (currentIsTrigger) {
4805
+ re = (_b = (_a = currentScheduler$4.current) === null || _a === void 0 ? void 0 : _a.dispatchSuspensePromise) === null || _b === void 0 ? void 0 : _b.call(_a, { fiber: fiber, promise: e });
4806
+ }
4807
+ else {
4808
+ re = (_d = (_c = currentScheduler$4.current) === null || _c === void 0 ? void 0 : _c.dispatchPromise) === null || _d === void 0 ? void 0 : _d.call(_c, { fiber: fiber, promise: e });
4809
+ }
4666
4810
  }
4667
4811
  else {
4668
4812
  throw e;
@@ -4676,14 +4820,20 @@ function requireIndex_production_1 () {
4676
4820
  children = safeCallWithCurrentFiber({
4677
4821
  fiber: fiber,
4678
4822
  action: function safeCallFunctionalComponent() {
4679
- var _a, _b;
4823
+ var _a, _b, _c, _d;
4680
4824
  var re = undefined;
4681
4825
  try {
4682
4826
  re = typedElementType(fiber.pendingProps);
4683
4827
  }
4684
4828
  catch (e) {
4685
4829
  if (myreactSharedExports.isPromise(e)) {
4686
- re = (_b = (_a = currentScheduler$4.current) === null || _a === void 0 ? void 0 : _a.dispatchPromise) === null || _b === void 0 ? void 0 : _b.call(_a, { fiber: fiber, promise: e });
4830
+ var currentIsTrigger = myreactSharedExports.include(fiber.state, triggerState);
4831
+ if (currentIsTrigger) {
4832
+ re = (_b = (_a = currentScheduler$4.current) === null || _a === void 0 ? void 0 : _a.dispatchSuspensePromise) === null || _b === void 0 ? void 0 : _b.call(_a, { fiber: fiber, promise: e });
4833
+ }
4834
+ else {
4835
+ re = (_d = (_c = currentScheduler$4.current) === null || _c === void 0 ? void 0 : _c.dispatchPromise) === null || _d === void 0 ? void 0 : _d.call(_c, { fiber: fiber, promise: e });
4836
+ }
4687
4837
  }
4688
4838
  else {
4689
4839
  throw e;
@@ -4769,7 +4919,7 @@ function requireIndex_production_1 () {
4769
4919
  return null;
4770
4920
  }
4771
4921
  else {
4772
- // TODO update flow
4922
+ // TODO update flow
4773
4923
  if (enableSuspenseRoot$1.current && !renderDispatch.isAppMounted) {
4774
4924
  var suspenseField = getInstanceFieldByInstance(renderDispatch);
4775
4925
  suspenseField.asyncLoadList.uniPush(typedElementType);
@@ -5157,6 +5307,9 @@ function requireIndex_production_1 () {
5157
5307
  RenderDispatchEvent.prototype.dispatchPromise = function (_params) {
5158
5308
  throw new Error("Method not implemented.");
5159
5309
  };
5310
+ RenderDispatchEvent.prototype.dispatchSuspensePromise = function (_params) {
5311
+ throw new Error("Method not implemented.");
5312
+ };
5160
5313
  RenderDispatchEvent.prototype.trigger = function (_fiber, _state, cb) {
5161
5314
  return triggerUpdateOnFiber(_fiber, _state, cb);
5162
5315
  };
@@ -5687,12 +5840,23 @@ function requireIndex_production_1 () {
5687
5840
  layoutEffect(_dispatch, _fiber);
5688
5841
  });
5689
5842
  afterSyncUpdate();
5690
- var renderScheduler = currentScheduler$2.current;
5691
- renderScheduler.microTask(function invokeEffectListTask() {
5843
+ function invokeEffectListTask() {
5692
5844
  _list.listToFoot(function invokeEffectList(_fiber) {
5693
5845
  effect(_dispatch, _fiber);
5694
5846
  });
5695
- });
5847
+ }
5848
+ addEffectCallback(invokeEffectListTask);
5849
+ var renderScheduler = currentScheduler$2.current;
5850
+ if (_dispatch.enableConcurrentMode) {
5851
+ renderScheduler.macroTask(function flushEffect() {
5852
+ flushEffectCallback();
5853
+ });
5854
+ }
5855
+ else {
5856
+ renderScheduler.microTask(function flushEffect() {
5857
+ flushEffectCallback();
5858
+ });
5859
+ }
5696
5860
  };
5697
5861
  var defaultDispatchMount = defaultDispatchMountLatest;
5698
5862
 
@@ -5776,15 +5940,25 @@ function requireIndex_production_1 () {
5776
5940
  }
5777
5941
  });
5778
5942
  afterSyncUpdate();
5779
- var renderScheduler = currentScheduler$1.current;
5780
- // TODO before next update flow, make sure all the effect has done
5781
- renderScheduler.microTask(function invokeEffectListTask() {
5943
+ function invokeEffectListTask() {
5782
5944
  _list.listToFoot(function invokeEffectList(_fiber) {
5783
5945
  if (myreactSharedExports.exclude(_fiber.state, myreactSharedExports.STATE_TYPE.__unmount__) && !_dispatch.isAppUnmounted) {
5784
5946
  effect(_dispatch, _fiber);
5785
5947
  }
5786
5948
  });
5787
- });
5949
+ }
5950
+ addEffectCallback(invokeEffectListTask);
5951
+ var renderScheduler = currentScheduler$1.current;
5952
+ if (_dispatch.enableConcurrentMode) {
5953
+ renderScheduler.macroTask(function flushEffect() {
5954
+ flushEffectCallback();
5955
+ });
5956
+ }
5957
+ else {
5958
+ renderScheduler.microTask(function flushEffect() {
5959
+ flushEffectCallback();
5960
+ });
5961
+ }
5788
5962
  };
5789
5963
 
5790
5964
  var enableSuspenseRoot = react.__my_react_shared__.enableSuspenseRoot;
@@ -5845,7 +6019,9 @@ function requireIndex_production_1 () {
5845
6019
  promise._loading = true;
5846
6020
  promise.status = "pending";
5847
6021
  var renderScheduler_1 = currentScheduler.current;
5848
- renderDispatch.processPromise(promise).then(function () {
6022
+ renderDispatch
6023
+ .processPromise(promise)
6024
+ .then(function () {
5849
6025
  fiber.state = myreactSharedExports.STATE_TYPE.__recreate__;
5850
6026
  promise._list.delete(fiber);
5851
6027
  promise._loading = false;
@@ -5857,9 +6033,44 @@ function requireIndex_production_1 () {
5857
6033
  payLoad: promise,
5858
6034
  };
5859
6035
  renderScheduler_1.dispatchState(updater);
5860
- });
6036
+ })
6037
+ .catch(function (e) { return renderScheduler_1.dispatchError({ fiber: fiber, error: e }); });
6038
+ return null;
6039
+ }
6040
+ };
6041
+ var processSuspensePromise = function (renderDispatch, fiber, promise) {
6042
+ var _a, _b;
6043
+ defaultDeleteCurrentEffect(renderDispatch, fiber);
6044
+ fiber.state = myreactSharedExports.STATE_TYPE.__suspense__;
6045
+ if (promise.status === "rejected") {
6046
+ (_b = (_a = currentScheduler.current).dispatchError) === null || _b === void 0 ? void 0 : _b.call(_a, { fiber: fiber, error: promise._reason });
5861
6047
  return null;
5862
6048
  }
6049
+ if (promise.status === "fulfilled") ;
6050
+ promise._list = promise._list || new Set();
6051
+ promise._list.add(fiber);
6052
+ if (promise._loading)
6053
+ return null;
6054
+ promise._loading = true;
6055
+ promise.status = "pending";
6056
+ var renderScheduler = currentScheduler.current;
6057
+ renderDispatch
6058
+ .processPromise(promise)
6059
+ .then(function () {
6060
+ fiber.state = myreactSharedExports.STATE_TYPE.__recreate__;
6061
+ promise._list.delete(fiber);
6062
+ promise._loading = false;
6063
+ var updater = {
6064
+ type: myreactSharedExports.UpdateQueueType.promise,
6065
+ trigger: fiber,
6066
+ isSync: true,
6067
+ isForce: true,
6068
+ payLoad: promise,
6069
+ };
6070
+ renderScheduler.dispatchState(updater);
6071
+ })
6072
+ .catch(function (e) { return renderScheduler.dispatchError({ fiber: fiber, error: e }); });
6073
+ return null;
5863
6074
  };
5864
6075
 
5865
6076
  var CustomRenderDispatch = /** @class */ (function (_super) {
@@ -5871,7 +6082,7 @@ function requireIndex_production_1 () {
5871
6082
  _this.isAppMounted = false;
5872
6083
  _this.isAppCrashed = false;
5873
6084
  _this.isAppUnmounted = false;
5874
- _this.version = "0.3.16";
6085
+ _this.version = "0.3.18";
5875
6086
  _this.mode = "production";
5876
6087
  _this.renderMode = "render";
5877
6088
  _this.pendingCommitFiberList = null;
@@ -6283,7 +6494,7 @@ function requireIndex_production_1 () {
6283
6494
  });
6284
6495
  }); };
6285
6496
 
6286
- var version = "0.3.16";
6497
+ var version = "0.3.18";
6287
6498
 
6288
6499
  exports.CustomRenderDispatch = CustomRenderDispatch;
6289
6500
  exports.MyReactFiberNode = MyReactFiberNode;
@@ -6292,6 +6503,7 @@ function requireIndex_production_1 () {
6292
6503
  exports.RenderDispatchEvent = RenderDispatchEvent;
6293
6504
  exports.WrapperByLazyScope = WrapperByLazyScope;
6294
6505
  exports.WrapperBySuspenseScope = WrapperBySuspenseScope;
6506
+ exports.addEffectCallback = addEffectCallback;
6295
6507
  exports.afterSyncFlush = afterSyncFlush;
6296
6508
  exports.afterSyncUpdate = afterSyncUpdate;
6297
6509
  exports.applyTriggerFiberCb = applyTriggerFiberCb;
@@ -6341,6 +6553,7 @@ function requireIndex_production_1 () {
6341
6553
  exports.enableLogForCurrentFlowIsRunning = enableLogForCurrentFlowIsRunning;
6342
6554
  exports.enableValidMyReactElement = enableValidMyReactElement;
6343
6555
  exports.fiberToDispatchMap = fiberToDispatchMap;
6556
+ exports.flushEffectCallback = flushEffectCallback;
6344
6557
  exports.generateFiberToListWithAction = generateFiberToListWithAction;
6345
6558
  exports.generateFiberToMountList = generateFiberToMountList;
6346
6559
  exports.generateFiberToUnmountList = generateFiberToUnmountList;
@@ -6430,6 +6643,7 @@ function requireIndex_production_1 () {
6430
6643
  exports.processProvider = processProvider;
6431
6644
  exports.processState = processState;
6432
6645
  exports.processSuspense = processSuspense;
6646
+ exports.processSuspensePromise = processSuspensePromise;
6433
6647
  exports.resetLogScope = resetLogScope;
6434
6648
  exports.runtimeNextWork = runtimeNextWork;
6435
6649
  exports.runtimeNextWorkDev = runtimeNextWorkDev;
@@ -6706,6 +6920,7 @@ function requireIndex_production () {
6706
6920
  STATE_TYPE[STATE_TYPE["__retrigger__"] = 512] = "__retrigger__";
6707
6921
  STATE_TYPE[STATE_TYPE["__reschedule__"] = 1024] = "__reschedule__";
6708
6922
  STATE_TYPE[STATE_TYPE["__recreate__"] = 2048] = "__recreate__";
6923
+ STATE_TYPE[STATE_TYPE["__suspense__"] = 4096] = "__suspense__";
6709
6924
  })(exports.STATE_TYPE || (exports.STATE_TYPE = {}));
6710
6925
 
6711
6926
  exports.PATCH_TYPE = void 0;
@@ -7184,27 +7399,51 @@ var delGlobalDispatch = function (dispatch) {
7184
7399
  * @internal
7185
7400
  */
7186
7401
  var setRef = function (_fiber, config) {
7187
- var _a, _b;
7188
7402
  if (myreactSharedExports.include(_fiber.patch, myreactSharedExports.PATCH_TYPE.__ref__)) {
7403
+ var cleanUp = function () {
7404
+ var refPrevious = _fiber.refPrevious;
7405
+ myreactReconcilerExports.safeCallWithCurrentFiber({
7406
+ fiber: _fiber,
7407
+ action: function safeCallRefPrevious() {
7408
+ if (typeof refPrevious === "object" && refPrevious !== null) {
7409
+ refPrevious.current = null;
7410
+ }
7411
+ else if (typeof refPrevious === "function") {
7412
+ refPrevious === null || refPrevious === void 0 ? void 0 : refPrevious(null);
7413
+ }
7414
+ },
7415
+ });
7416
+ _fiber.refPrevious = undefined;
7417
+ var refCleanup = _fiber.refCleanup;
7418
+ myreactReconcilerExports.safeCallWithCurrentFiber({
7419
+ fiber: _fiber,
7420
+ action: function safeCallRefCleanup() {
7421
+ if (typeof refCleanup === "function") {
7422
+ refCleanup();
7423
+ }
7424
+ },
7425
+ });
7426
+ _fiber.refCleanup = undefined;
7427
+ };
7189
7428
  if (myreactSharedExports.include(_fiber.type, myreactReconcilerExports.NODE_TYPE.__plain__)) {
7190
7429
  if (_fiber.nativeNode) {
7430
+ cleanUp();
7191
7431
  var ref_1 = _fiber.ref;
7192
- if (typeof ref_1 === "object" && ref_1 !== null) {
7193
- ref_1.current = (_a = config === null || config === void 0 ? void 0 : config.getPublicInstance) === null || _a === void 0 ? void 0 : _a.call(config, _fiber.nativeNode);
7194
- }
7195
- else if (typeof ref_1 === "function") {
7196
- myreactReconcilerExports.safeCallWithCurrentFiber({
7197
- fiber: _fiber,
7198
- action: function safeCallSetRef() {
7199
- var _a, _b;
7200
- (_a = _fiber.refCleanup) === null || _a === void 0 ? void 0 : _a.call(_fiber);
7432
+ myreactReconcilerExports.safeCallWithCurrentFiber({
7433
+ fiber: _fiber,
7434
+ action: function safeCallSetRef() {
7435
+ var _a, _b;
7436
+ if (typeof ref_1 === "object" && ref_1 !== null) {
7437
+ ref_1.current = (_a = config === null || config === void 0 ? void 0 : config.getPublicInstance) === null || _a === void 0 ? void 0 : _a.call(config, _fiber.nativeNode);
7438
+ }
7439
+ else if (typeof ref_1 === "function") {
7201
7440
  var refCleanUp = ref_1((_b = config === null || config === void 0 ? void 0 : config.getPublicInstance) === null || _b === void 0 ? void 0 : _b.call(config, _fiber.nativeNode));
7202
7441
  if (typeof refCleanUp === "function") {
7203
7442
  _fiber.refCleanup = refCleanUp;
7204
7443
  }
7205
- },
7206
- });
7207
- }
7444
+ }
7445
+ },
7446
+ });
7208
7447
  }
7209
7448
  else {
7210
7449
  throw new Error("[@my-react/react] plain element do not have a native node");
@@ -7212,23 +7451,23 @@ var setRef = function (_fiber, config) {
7212
7451
  }
7213
7452
  else if (myreactSharedExports.include(_fiber.type, myreactReconcilerExports.NODE_TYPE.__class__)) {
7214
7453
  if (_fiber.instance) {
7454
+ cleanUp();
7215
7455
  var ref_2 = _fiber.ref;
7216
- if (typeof ref_2 === "object" && ref_2 !== null) {
7217
- ref_2.current = (_b = config === null || config === void 0 ? void 0 : config.getPublicInstance) === null || _b === void 0 ? void 0 : _b.call(config, _fiber.instance);
7218
- }
7219
- else if (typeof ref_2 === "function") {
7220
- myreactReconcilerExports.safeCallWithCurrentFiber({
7221
- fiber: _fiber,
7222
- action: function safeCallSetRef() {
7223
- var _a, _b;
7224
- (_a = _fiber.refCleanup) === null || _a === void 0 ? void 0 : _a.call(_fiber);
7456
+ myreactReconcilerExports.safeCallWithCurrentFiber({
7457
+ fiber: _fiber,
7458
+ action: function safeCallSetRef() {
7459
+ var _a, _b;
7460
+ if (typeof ref_2 === "object" && ref_2 !== null) {
7461
+ ref_2.current = (_a = config === null || config === void 0 ? void 0 : config.getPublicInstance) === null || _a === void 0 ? void 0 : _a.call(config, _fiber.instance);
7462
+ }
7463
+ else if (typeof ref_2 === "function") {
7225
7464
  var refCleanUp = ref_2((_b = config === null || config === void 0 ? void 0 : config.getPublicInstance) === null || _b === void 0 ? void 0 : _b.call(config, _fiber.instance));
7226
7465
  if (typeof refCleanUp === "function") {
7227
7466
  _fiber.refCleanup = refCleanUp;
7228
7467
  }
7229
- },
7230
- });
7231
- }
7468
+ }
7469
+ },
7470
+ });
7232
7471
  }
7233
7472
  else {
7234
7473
  throw new Error("[@my-react/react-dom] class component do not have a instance");
@@ -7694,11 +7933,15 @@ var ReconcilerDispatchMount = function (_dispatch, _fiber, config) {
7694
7933
  myreactReconcilerExports.layoutEffect(_dispatch, _fiber);
7695
7934
  });
7696
7935
  myreactReconcilerExports.afterSyncUpdate();
7697
- var renderScheduler = currentScheduler$2.current;
7698
- renderScheduler.microTask(function invokeEffectListTask() {
7936
+ function invokeEffectListTask() {
7699
7937
  _list.listToFoot(function invokeEffectList(_fiber) {
7700
7938
  myreactReconcilerExports.effect(_dispatch, _fiber);
7701
7939
  });
7940
+ }
7941
+ myreactReconcilerExports.addEffectCallback(invokeEffectListTask);
7942
+ var renderScheduler = currentScheduler$2.current;
7943
+ renderScheduler.macroTask(function flushEffect() {
7944
+ myreactReconcilerExports.flushEffectCallback();
7702
7945
  });
7703
7946
  };
7704
7947
 
@@ -7717,7 +7960,7 @@ var ReconcilerDispatchUpdate = function (_dispatch, _list, config) {
7717
7960
  }
7718
7961
  });
7719
7962
  myreactReconcilerExports.afterSyncUpdate();
7720
- var pendingCreateFiberArray = [];
7963
+ var pendingFinalizeInitialChildrenFiberSet = new Set();
7721
7964
  var pendingCommitFiberArray = [];
7722
7965
  _list.listToFoot(function invokeCreateAndUpdateList(_fiber) {
7723
7966
  if (myreactSharedExports.exclude(_fiber.state, myreactSharedExports.STATE_TYPE.__unmount__) && !_dispatch.isAppUnmounted) {
@@ -7731,7 +7974,7 @@ var ReconcilerDispatchUpdate = function (_dispatch, _list, config) {
7731
7974
  });
7732
7975
  var afterHasNode = _fiber.nativeNode;
7733
7976
  if (!beforeHasNode && afterHasNode) {
7734
- pendingCreateFiberArray.push(_fiber);
7977
+ pendingFinalizeInitialChildrenFiberSet.add(_fiber);
7735
7978
  }
7736
7979
  }
7737
7980
  });
@@ -7741,6 +7984,8 @@ var ReconcilerDispatchUpdate = function (_dispatch, _list, config) {
7741
7984
  fiber: _fiber,
7742
7985
  action: function safeCallPosition() {
7743
7986
  _dispatch.commitPosition(_fiber);
7987
+ var parentFiber = getValidParentFiberWithNode(_dispatch, _fiber);
7988
+ parentFiber && pendingFinalizeInitialChildrenFiberSet.add(parentFiber);
7744
7989
  },
7745
7990
  });
7746
7991
  }
@@ -7751,6 +7996,8 @@ var ReconcilerDispatchUpdate = function (_dispatch, _list, config) {
7751
7996
  fiber: _fiber,
7752
7997
  action: function safeCallAppendList() {
7753
7998
  _dispatch.commitAppend(_fiber);
7999
+ var parentFiber = getValidParentFiberWithNode(_dispatch, _fiber);
8000
+ parentFiber && pendingFinalizeInitialChildrenFiberSet.add(parentFiber);
7754
8001
  },
7755
8002
  });
7756
8003
  }
@@ -7765,7 +8012,7 @@ var ReconcilerDispatchUpdate = function (_dispatch, _list, config) {
7765
8012
  });
7766
8013
  }
7767
8014
  });
7768
- pendingCreateFiberArray.forEach(function invokeFinalizeInitialChildren(_fiber) {
8015
+ pendingFinalizeInitialChildrenFiberSet.forEach(function invokeFinalizeInitialChildren(_fiber) {
7769
8016
  if (_fiber.nativeNode) {
7770
8017
  var node = config.getPublicInstance(_fiber.nativeNode);
7771
8018
  var type = _fiber.elementType;
@@ -7791,15 +8038,25 @@ var ReconcilerDispatchUpdate = function (_dispatch, _list, config) {
7791
8038
  }
7792
8039
  });
7793
8040
  myreactReconcilerExports.afterSyncUpdate();
7794
- var renderScheduler = currentScheduler$1.current;
7795
- // TODO before next update flow, make sure all the effect has done
7796
- renderScheduler.microTask(function invokeEffectListTask() {
8041
+ function invokeEffectListTask() {
7797
8042
  _list.listToFoot(function invokeEffectList(_fiber) {
7798
8043
  if (myreactSharedExports.exclude(_fiber.state, myreactSharedExports.STATE_TYPE.__unmount__) && !_dispatch.isAppUnmounted) {
7799
8044
  myreactReconcilerExports.effect(_dispatch, _fiber);
7800
8045
  }
7801
8046
  });
7802
- });
8047
+ }
8048
+ myreactReconcilerExports.addEffectCallback(invokeEffectListTask);
8049
+ var renderScheduler = currentScheduler$1.current;
8050
+ if (_dispatch.enableConcurrentMode) {
8051
+ renderScheduler.macroTask(function flushEffect() {
8052
+ myreactReconcilerExports.flushEffectCallback();
8053
+ });
8054
+ }
8055
+ else {
8056
+ renderScheduler.microTask(function flushEffect() {
8057
+ myreactReconcilerExports.flushEffectCallback();
8058
+ });
8059
+ }
7803
8060
  };
7804
8061
 
7805
8062
  require$$0.__my_react_internal__.currentComponentFiber;
@@ -7810,7 +8067,7 @@ var initialRef = {
7810
8067
  typeForAppend: myreactReconcilerExports.NODE_TYPE.__text__ | myreactReconcilerExports.NODE_TYPE.__plain__,
7811
8068
  typeForNativeNode: myreactReconcilerExports.NODE_TYPE.__text__ | myreactReconcilerExports.NODE_TYPE.__plain__ | myreactReconcilerExports.NODE_TYPE.__portal__,
7812
8069
  };
7813
- var createDispatch = function (rootNode, rootFiber, rootElement, config) {
8070
+ var createDispatch = function (rootNode, rootFiber, rootElement, config, flag) {
7814
8071
  var ReconcilerDispatch = /** @class */ (function (_super) {
7815
8072
  __extends(ReconcilerDispatch, _super);
7816
8073
  function ReconcilerDispatch() {
@@ -7905,13 +8162,19 @@ var createDispatch = function (rootNode, rootFiber, rootElement, config) {
7905
8162
  ReconcilerDispatch.prototype.dispatchPromise = function (_params) {
7906
8163
  return myreactReconcilerExports.processPromise(this, _params.fiber, _params.promise);
7907
8164
  };
8165
+ ReconcilerDispatch.prototype.dispatchSuspensePromise = function (_params) {
8166
+ return myreactReconcilerExports.processSuspensePromise(this, _params.fiber, _params.promise);
8167
+ };
7908
8168
  ReconcilerDispatch.prototype.dispatchError = function (_params) {
7909
8169
  myreactReconcilerExports.triggerError(this, _params.fiber, _params.error);
7910
8170
  return void 0;
7911
8171
  };
7912
8172
  return ReconcilerDispatch;
7913
8173
  }(myreactReconcilerExports.CustomRenderDispatch));
7914
- return new ReconcilerDispatch(rootNode, rootFiber, rootElement);
8174
+ var dispatch = new ReconcilerDispatch(rootNode, rootFiber, rootElement);
8175
+ dispatch.enableConcurrentMode = flag !== 0;
8176
+ dispatch.renderMode = flag !== 0 ? "concurrent" : "legacy";
8177
+ return dispatch;
7915
8178
  };
7916
8179
 
7917
8180
  /* eslint-disable @typescript-eslint/no-require-imports */
@@ -7973,12 +8236,11 @@ var loadScript = function (url) {
7973
8236
  }
7974
8237
  };
7975
8238
 
7976
- var enableDebugFiled$1 = require$$0.__my_react_shared__.enableDebugFiled, enableScopeTreeLog$1 = require$$0.__my_react_shared__.enableScopeTreeLog /* enableConcurrentMode */;
8239
+ var enableDebugFiled$1 = require$$0.__my_react_shared__.enableDebugFiled, enableScopeTreeLog$1 = require$$0.__my_react_shared__.enableScopeTreeLog;
7977
8240
  /**
7978
8241
  * @internal
7979
8242
  */
7980
8243
  var prepareScheduler = function () {
7981
- // enableConcurrentMode.current = false;
7982
8244
  enableDebugFiled$1.current = true;
7983
8245
  enableScopeTreeLog$1.current = true;
7984
8246
  myreactReconcilerExports.enableFiberForLog.current = true;
@@ -7992,11 +8254,19 @@ var currentScheduler = require$$0.__my_react_internal__.currentScheduler;
7992
8254
  var Reconciler = function (_config) {
7993
8255
  var rendererPackageName = "@my-react";
7994
8256
  var ReconcilerSet = new Set();
7995
- var createContainer = function (_container) {
8257
+ var createContainer = function (_container, flag) {
7996
8258
  prepareScheduler();
8259
+ if (flag === 0) {
8260
+ // legacy mode
8261
+ _container.__flag__ = 0;
8262
+ }
8263
+ else {
8264
+ // concurrent mode
8265
+ _container.__flag__ = 1;
8266
+ }
7997
8267
  enableDebugFiled.current = false;
7998
8268
  enableScopeTreeLog.current = false;
7999
- // enableFiberForLog.current = false;
8269
+ myreactReconcilerExports.enableFiberForLog.current = false;
8000
8270
  return _container;
8001
8271
  };
8002
8272
  var updateContainer = function (_element, _container, _ignore, _cb) {
@@ -8022,7 +8292,7 @@ var Reconciler = function (_config) {
8022
8292
  delGlobalDispatch(renderDispatch);
8023
8293
  }
8024
8294
  var _fiber = new myreactReconcilerExports.MyReactFiberNode(_element);
8025
- var _renderDispatch = createDispatch(_container, _fiber, _element, _config);
8295
+ var _renderDispatch = createDispatch(_container, _fiber, _element, _config, _container.__flag__);
8026
8296
  _cb && _renderDispatch.pendingEffect(_fiber, _cb);
8027
8297
  ReconcilerSet.add(_renderDispatch);
8028
8298
  renderScheduler.dispatchSet.uniPush(_renderDispatch);
@@ -8089,7 +8359,7 @@ var Reconciler = function (_config) {
8089
8359
  };
8090
8360
  };
8091
8361
 
8092
- var version = "0.0.7";
8362
+ var version = "0.0.9";
8093
8363
  var createReconciler = Reconciler;
8094
8364
 
8095
8365
  exports.createReconciler = createReconciler;