@my-react/react-reconciler-compact 0.0.3 → 0.0.5

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.
@@ -281,6 +281,7 @@ function requireIndex_production_1 () {
281
281
  HOOK_TYPE[HOOK_TYPE["useInsertionEffect"] = 13] = "useInsertionEffect";
282
282
  HOOK_TYPE[HOOK_TYPE["useImperativeHandle"] = 14] = "useImperativeHandle";
283
283
  HOOK_TYPE[HOOK_TYPE["useSyncExternalStore"] = 15] = "useSyncExternalStore";
284
+ HOOK_TYPE[HOOK_TYPE["useOptimistic"] = 16] = "useOptimistic";
284
285
  })(exports.HOOK_TYPE || (exports.HOOK_TYPE = {}));
285
286
 
286
287
  exports.UpdateQueueType = void 0;
@@ -309,6 +310,7 @@ function requireIndex_production_1 () {
309
310
  STATE_TYPE[STATE_TYPE["__hmr__"] = 256] = "__hmr__";
310
311
  STATE_TYPE[STATE_TYPE["__retrigger__"] = 512] = "__retrigger__";
311
312
  STATE_TYPE[STATE_TYPE["__reschedule__"] = 1024] = "__reschedule__";
313
+ STATE_TYPE[STATE_TYPE["__recreate__"] = 2048] = "__recreate__";
312
314
  })(exports.STATE_TYPE || (exports.STATE_TYPE = {}));
313
315
 
314
316
  exports.PATCH_TYPE = void 0;
@@ -1674,7 +1676,8 @@ function requireIndex_production_1 () {
1674
1676
  myreactSharedExports.STATE_TYPE.__triggerConcurrent__ |
1675
1677
  myreactSharedExports.STATE_TYPE.__triggerConcurrentForce__ |
1676
1678
  myreactSharedExports.STATE_TYPE.__retrigger__ |
1677
- myreactSharedExports.STATE_TYPE.__reschedule__)) {
1679
+ myreactSharedExports.STATE_TYPE.__reschedule__ |
1680
+ myreactSharedExports.STATE_TYPE.__recreate__)) {
1678
1681
  fiber.state = myreactSharedExports.remove(fiber.state, myreactSharedExports.STATE_TYPE.__retrigger__);
1679
1682
  currentRunningFiber$2.current = fiber;
1680
1683
  {
@@ -1711,7 +1714,8 @@ function requireIndex_production_1 () {
1711
1714
  myreactSharedExports.STATE_TYPE.__triggerConcurrent__ |
1712
1715
  myreactSharedExports.STATE_TYPE.__triggerConcurrentForce__ |
1713
1716
  myreactSharedExports.STATE_TYPE.__retrigger__ |
1714
- myreactSharedExports.STATE_TYPE.__reschedule__)) {
1717
+ myreactSharedExports.STATE_TYPE.__reschedule__ |
1718
+ myreactSharedExports.STATE_TYPE.__recreate__)) {
1715
1719
  fiber.state = myreactSharedExports.remove(fiber.state, myreactSharedExports.STATE_TYPE.__retrigger__);
1716
1720
  currentRunningFiber$2.current = fiber;
1717
1721
  {
@@ -2064,58 +2068,72 @@ function requireIndex_production_1 () {
2064
2068
  }
2065
2069
  }
2066
2070
  // TODO update flow
2067
- // if (enableSuspenseRoot.current) {
2068
- // const suspenseField = getInstanceFieldByInstance(renderDispatch) as SuspenseInstanceField;
2069
- // const list = suspenseField.asyncLoadList.getAll();
2070
- // if (list.length === 0) return;
2071
- // if (renderDispatch.enableAsyncLoad) {
2072
- // defaultDeleteCurrentEffect(renderDispatch, renderDispatch.rootFiber);
2073
- // defaultDeleteChildEffect(renderDispatch, renderDispatch.rootFiber);
2074
- // const allPendingLoadArray = list.filter((item) => {
2075
- // if (isPromise(item)) {
2076
- // return typeof item.status !== "string";
2077
- // } else {
2078
- // return !item._loading && !item._loaded && !item._error;
2079
- // }
2080
- // });
2081
- // if (allPendingLoadArray.length) {
2082
- // Promise.all(
2083
- // allPendingLoadArray.map(async (item) => {
2084
- // if (isPromise(item)) {
2085
- // await renderDispatch.processPromise(item);
2086
- // } else {
2087
- // await renderDispatch.processLazy(item);
2088
- // }
2089
- // item._list?.clear();
2090
- // suspenseField.asyncLoadList.uniDelete(item);
2091
- // })
2092
- // ).then(() => {
2093
- // const aliveNode = defaultResolveAliveSuspenseFiber(node);
2094
- // aliveNode.state = STATE_TYPE.__triggerSyncForce__;
2095
- // const renderScheduler = currentScheduler.current;
2096
- // const updater: SuspenseUpdateQueue = {
2097
- // type: UpdateQueueType.suspense,
2098
- // trigger: aliveNode,
2099
- // isSync: true,
2100
- // isForce: true,
2101
- // payLoad: allPendingLoadArray,
2102
- // };
2103
- // renderScheduler.dispatchState(updater);
2104
- // });
2105
- // }
2106
- // suspenseField.isHidden = true;
2107
- // const root = renderDispatch.rootFiber;
2108
- // root.state = remove(root.state, STATE_TYPE.__stable__);
2109
- // root.state = merge(root.state, STATE_TYPE.__retrigger__);
2110
- // // TODO use hide tree to improve
2111
- // mountLoopAll(renderDispatch, root);
2112
- // suspenseField.isHidden = false;
2113
- // } else {
2114
- // throw new Error(
2115
- // "[@my-react/reconciler] should not process async load list on sync mount without enableAsyncLoad, you may use a wrong renderDispatch instance"
2116
- // );
2117
- // }
2118
- // }
2071
+ if (enableSuspenseRoot$2.current) {
2072
+ var suspenseField_2 = getInstanceFieldByInstance(renderDispatch);
2073
+ var list = suspenseField_2.asyncLoadList.getAll();
2074
+ if (list.length === 0)
2075
+ return;
2076
+ if (renderDispatch.enableAsyncLoad) {
2077
+ // defaultDeleteCurrentEffect(renderDispatch, renderDispatch.rootFiber);
2078
+ // defaultDeleteChildEffect(renderDispatch, renderDispatch.rootFiber);
2079
+ var allPendingLoadArray = list.filter(function (item) {
2080
+ if (myreactSharedExports.isPromise(item)) {
2081
+ return typeof item.status !== "string";
2082
+ }
2083
+ else {
2084
+ return !item._loading && !item._loaded && !item._error;
2085
+ }
2086
+ });
2087
+ if (allPendingLoadArray.length) {
2088
+ allPendingLoadArray.forEach(function (item) { var _a; return (_a = item._list) === null || _a === void 0 ? void 0 : _a.forEach(function (node) { return defaultDeleteCurrentEffect(renderDispatch, node); }); });
2089
+ Promise.all(allPendingLoadArray.map(function (item) { return __awaiter(void 0, void 0, void 0, function () {
2090
+ var allFiber;
2091
+ var _a;
2092
+ return __generator(this, function (_b) {
2093
+ switch (_b.label) {
2094
+ case 0:
2095
+ if (!myreactSharedExports.isPromise(item)) return [3 /*break*/, 2];
2096
+ return [4 /*yield*/, renderDispatch.processPromise(item)];
2097
+ case 1:
2098
+ _b.sent();
2099
+ return [3 /*break*/, 4];
2100
+ case 2: return [4 /*yield*/, renderDispatch.processLazy(item)];
2101
+ case 3:
2102
+ _b.sent();
2103
+ _b.label = 4;
2104
+ case 4:
2105
+ allFiber = new Set(item._list);
2106
+ (_a = item._list) === null || _a === void 0 ? void 0 : _a.clear();
2107
+ allFiber.forEach(function (node) {
2108
+ node.state = myreactSharedExports.STATE_TYPE.__recreate__;
2109
+ var renderScheduler = currentScheduler$d.current;
2110
+ var updater = {
2111
+ type: myreactSharedExports.UpdateQueueType.suspense,
2112
+ trigger: node,
2113
+ isSync: true,
2114
+ isForce: true,
2115
+ payLoad: [item],
2116
+ };
2117
+ renderScheduler.dispatchState(updater);
2118
+ });
2119
+ suspenseField_2.asyncLoadList.uniDelete(item);
2120
+ return [2 /*return*/];
2121
+ }
2122
+ });
2123
+ }); }));
2124
+ }
2125
+ // suspenseField.isHidden = true;
2126
+ // const root = renderDispatch.rootFiber;
2127
+ // root.state = remove(root.state, STATE_TYPE.__stable__);
2128
+ // root.state = merge(root.state, STATE_TYPE.__retrigger__);
2129
+ // // TODO use hide tree to improve
2130
+ // mountLoopAll(renderDispatch, root);
2131
+ // suspenseField.isHidden = false;
2132
+ }
2133
+ else {
2134
+ throw new Error("[@my-react/reconciler] should not process async load list on sync mount without enableAsyncLoad, you may use a wrong renderDispatch instance");
2135
+ }
2136
+ }
2119
2137
  };
2120
2138
 
2121
2139
  exports.updateTypeEnum = void 0;
@@ -2564,7 +2582,7 @@ function requireIndex_production_1 () {
2564
2582
  react.__my_react_shared__.enableDebugFiled;
2565
2583
  var currentScheduler$c = react.__my_react_internal__.currentScheduler;
2566
2584
  // TODO 整合
2567
- var processClassComponentUpdateQueue = function (renderDispatch, fiber, enableTaskPriority) {
2585
+ var processClassComponentUpdateQueueLatest = function (renderDispatch, fiber, enableTaskPriority) {
2568
2586
  if (myreactSharedExports.include(fiber.state, myreactSharedExports.STATE_TYPE.__unmount__))
2569
2587
  return;
2570
2588
  if (myreactSharedExports.exclude(fiber.type, exports.NODE_TYPE.__class__))
@@ -2690,7 +2708,75 @@ function requireIndex_production_1 () {
2690
2708
  }
2691
2709
  }
2692
2710
  };
2693
- var processFunctionComponentUpdateQueue = function (renderDispatch, fiber, enableTaskPriority) {
2711
+ var processClassComponentUpdateQueueLegacy = function (renderDispatch, fiber) {
2712
+ if (myreactSharedExports.include(fiber.state, myreactSharedExports.STATE_TYPE.__unmount__))
2713
+ return;
2714
+ if (myreactSharedExports.exclude(fiber.type, exports.NODE_TYPE.__class__))
2715
+ throw new Error("[@my-react/react] current fiber is not a class component, look like a bug for @my-react");
2716
+ var renderScheduler = currentScheduler$c.current;
2717
+ var allQueue = fiber.updateQueue;
2718
+ var node = allQueue === null || allQueue === void 0 ? void 0 : allQueue.head;
2719
+ var needUpdate = true;
2720
+ var isSync = false;
2721
+ var isForce = false;
2722
+ var isImmediate = false;
2723
+ var isRetrigger = false;
2724
+ var callbacks = [];
2725
+ var typedInstance = fiber.instance;
2726
+ var baseState = Object.assign({}, fiber.pendingState);
2727
+ var baseProps = Object.assign({}, typedInstance.props);
2728
+ var pendingState = Object.assign({}, fiber.pendingState);
2729
+ if (node) {
2730
+ var updater = node.value;
2731
+ if (updater.type === myreactSharedExports.UpdateQueueType.component) {
2732
+ allQueue.delete(node);
2733
+ var payLoad_3 = updater.payLoad;
2734
+ fiber.pendingState = safeCallWithCurrentFiber({
2735
+ fiber: fiber,
2736
+ fallback: function safeFallbackForState() {
2737
+ return pendingState;
2738
+ },
2739
+ action: function safeGetNextState() {
2740
+ return Object.assign({}, fiber.pendingState, typeof payLoad_3 === "function" ? payLoad_3(baseState, baseProps) : payLoad_3);
2741
+ },
2742
+ });
2743
+ isSync = isSync || updater.isSync;
2744
+ isForce = isForce || updater.isForce;
2745
+ isImmediate = isImmediate || updater.isImmediate;
2746
+ isRetrigger = isRetrigger || updater.isRetrigger;
2747
+ updater.callback && callbacks.push(updater.callback);
2748
+ }
2749
+ else {
2750
+ allQueue.delete(node);
2751
+ isSync = isSync || updater.isSync;
2752
+ isForce = isForce || updater.isForce;
2753
+ isImmediate = isImmediate || updater.isImmediate;
2754
+ isRetrigger = isRetrigger || updater.isRetrigger;
2755
+ updater.callback && callbacks.push(updater.callback);
2756
+ }
2757
+ }
2758
+ if (allQueue.length) {
2759
+ renderScheduler.microTask(function prepareUpdateOnFiberTask() {
2760
+ prepareUpdateOnFiber(renderDispatch, fiber, true);
2761
+ });
2762
+ }
2763
+ var invokeCallbackArray = callbacks.length
2764
+ ? function invokeCallbackArray() {
2765
+ return callbacks.forEach(function (cb) { return cb === null || cb === void 0 ? void 0 : cb(); });
2766
+ }
2767
+ : void 0;
2768
+ {
2769
+ return {
2770
+ needUpdate: needUpdate,
2771
+ isSync: isSync,
2772
+ isForce: isForce,
2773
+ isImmediate: isImmediate,
2774
+ isRetrigger: isRetrigger,
2775
+ callback: invokeCallbackArray,
2776
+ };
2777
+ }
2778
+ };
2779
+ var processFunctionComponentUpdateQueueLatest = function (renderDispatch, fiber, enableTaskPriority) {
2694
2780
  var _a, _b;
2695
2781
  if (myreactSharedExports.include(fiber.state, myreactSharedExports.STATE_TYPE.__unmount__))
2696
2782
  return;
@@ -2712,7 +2798,7 @@ function requireIndex_production_1 () {
2712
2798
  var nextNode = node.next;
2713
2799
  if (updater.type === myreactSharedExports.UpdateQueueType.hook && updater.isSync) {
2714
2800
  allQueue.delete(node);
2715
- var trigger = updater.trigger, payLoad_3 = updater.payLoad, reducer_1 = updater.reducer;
2801
+ var trigger = updater.trigger, payLoad_4 = updater.payLoad, reducer_1 = updater.reducer;
2716
2802
  var typedTrigger_1 = trigger;
2717
2803
  var lastResult_1 = typedTrigger_1.result;
2718
2804
  if (typedTrigger_1.type === myreactSharedExports.HOOK_TYPE.useSyncExternalStore) {
@@ -2727,10 +2813,10 @@ function requireIndex_production_1 () {
2727
2813
  },
2728
2814
  action: function safeGetNextState() {
2729
2815
  if (reducer_1 && typeof reducer_1 === "function") {
2730
- return reducer_1(lastResult_1, payLoad_3);
2816
+ return reducer_1(lastResult_1, payLoad_4);
2731
2817
  }
2732
2818
  else {
2733
- return typedTrigger_1.reducer(lastResult_1, payLoad_3);
2819
+ return typedTrigger_1.reducer(lastResult_1, payLoad_4);
2734
2820
  }
2735
2821
  },
2736
2822
  });
@@ -2784,7 +2870,7 @@ function requireIndex_production_1 () {
2784
2870
  var nextNode = node.next;
2785
2871
  if (updater.type === myreactSharedExports.UpdateQueueType.hook) {
2786
2872
  allQueue.delete(node);
2787
- var trigger = updater.trigger, payLoad_4 = updater.payLoad, reducer_2 = updater.reducer;
2873
+ var trigger = updater.trigger, payLoad_5 = updater.payLoad, reducer_2 = updater.reducer;
2788
2874
  var typedTrigger_2 = trigger;
2789
2875
  var lastResult_2 = typedTrigger_2.result;
2790
2876
  if (typedTrigger_2.type === myreactSharedExports.HOOK_TYPE.useSyncExternalStore) {
@@ -2799,10 +2885,10 @@ function requireIndex_production_1 () {
2799
2885
  },
2800
2886
  action: function safeGetNextState() {
2801
2887
  if (reducer_2 && typeof reducer_2 === "function") {
2802
- return reducer_2(lastResult_2, payLoad_4);
2888
+ return reducer_2(lastResult_2, payLoad_5);
2803
2889
  }
2804
2890
  else {
2805
- return typedTrigger_2.reducer(lastResult_2, payLoad_4);
2891
+ return typedTrigger_2.reducer(lastResult_2, payLoad_5);
2806
2892
  }
2807
2893
  },
2808
2894
  });
@@ -2846,7 +2932,89 @@ function requireIndex_production_1 () {
2846
2932
  }
2847
2933
  }
2848
2934
  };
2849
- var processNormalComponentUpdate = function (fiber) {
2935
+ var processFunctionComponentUpdateQueueLegacy = function (renderDispatch, fiber) {
2936
+ var _a;
2937
+ if (myreactSharedExports.include(fiber.state, myreactSharedExports.STATE_TYPE.__unmount__))
2938
+ return;
2939
+ if (myreactSharedExports.exclude(fiber.type, exports.NODE_TYPE.__function__)) {
2940
+ throw new Error("[@my-react/react] current fiber is not a function component, look like a bug for @my-react");
2941
+ }
2942
+ var renderScheduler = currentScheduler$c.current;
2943
+ var allQueue = fiber.updateQueue;
2944
+ var node = allQueue === null || allQueue === void 0 ? void 0 : allQueue.head;
2945
+ var needUpdate = false;
2946
+ var isSync = false;
2947
+ var isForce = false;
2948
+ var isImmediate = false;
2949
+ var isRetrigger = false;
2950
+ var callbacks = [];
2951
+ if (node) {
2952
+ var updater = node.value;
2953
+ if (updater.type === myreactSharedExports.UpdateQueueType.hook) {
2954
+ allQueue.delete(node);
2955
+ var trigger = updater.trigger, payLoad_6 = updater.payLoad, reducer_3 = updater.reducer;
2956
+ var typedTrigger_3 = trigger;
2957
+ var lastResult_3 = typedTrigger_3.result;
2958
+ if (typedTrigger_3.type === myreactSharedExports.HOOK_TYPE.useSyncExternalStore) {
2959
+ lastResult_3 = (_a = trigger.value) === null || _a === void 0 ? void 0 : _a.result;
2960
+ }
2961
+ var hasError_3 = false;
2962
+ typedTrigger_3.result = safeCallWithCurrentFiber({
2963
+ fiber: fiber,
2964
+ fallback: function safeFallbackForState() {
2965
+ hasError_3 = true;
2966
+ return lastResult_3;
2967
+ },
2968
+ action: function safeGetNextState() {
2969
+ if (reducer_3 && typeof reducer_3 === "function") {
2970
+ return reducer_3(lastResult_3, payLoad_6);
2971
+ }
2972
+ else {
2973
+ return typedTrigger_3.reducer(lastResult_3, payLoad_6);
2974
+ }
2975
+ },
2976
+ });
2977
+ isSync = isSync || updater.isSync;
2978
+ isForce = isForce || updater.isForce;
2979
+ isImmediate = isImmediate || updater.isImmediate;
2980
+ isRetrigger = isRetrigger || updater.isRetrigger;
2981
+ updater.callback && callbacks.push(updater.callback);
2982
+ if (!needUpdate && (isForce || hasError_3 || callbacks.length || !Object.is(lastResult_3, typedTrigger_3.result)))
2983
+ needUpdate = true;
2984
+ }
2985
+ else {
2986
+ allQueue.delete(node);
2987
+ updater.payLoad;
2988
+ isSync = isSync || updater.isSync;
2989
+ isForce = isForce || updater.isForce;
2990
+ isImmediate = isImmediate || updater.isImmediate;
2991
+ isRetrigger = isRetrigger || updater.isRetrigger;
2992
+ updater.callback && callbacks.push(updater.callback);
2993
+ needUpdate = true;
2994
+ }
2995
+ }
2996
+ if (allQueue.length) {
2997
+ renderScheduler.microTask(function prepareUpdateOnFiberTask() {
2998
+ prepareUpdateOnFiber(renderDispatch, fiber, true);
2999
+ });
3000
+ }
3001
+ var invokeCallbackArray = callbacks.length
3002
+ ? function invokeCallbackArray() {
3003
+ return callbacks.forEach(function (cb) { return cb === null || cb === void 0 ? void 0 : cb(); });
3004
+ }
3005
+ : void 0;
3006
+ {
3007
+ return {
3008
+ needUpdate: needUpdate,
3009
+ isSync: isSync,
3010
+ isForce: isForce,
3011
+ isImmediate: isImmediate,
3012
+ isRetrigger: isRetrigger,
3013
+ callback: invokeCallbackArray,
3014
+ };
3015
+ }
3016
+ };
3017
+ var processNormalComponentUpdateLatest = function (renderDispatch, fiber) {
2850
3018
  if (myreactSharedExports.include(fiber.state, myreactSharedExports.STATE_TYPE.__unmount__))
2851
3019
  return;
2852
3020
  var allQueue = fiber.updateQueue;
@@ -2885,6 +3053,49 @@ function requireIndex_production_1 () {
2885
3053
  };
2886
3054
  }
2887
3055
  };
3056
+ var processNormalComponentUpdateLegacy = function (renderDispatch, fiber) {
3057
+ if (myreactSharedExports.include(fiber.state, myreactSharedExports.STATE_TYPE.__unmount__))
3058
+ return;
3059
+ var allQueue = fiber.updateQueue;
3060
+ var renderScheduler = currentScheduler$c.current;
3061
+ var node = allQueue === null || allQueue === void 0 ? void 0 : allQueue.head;
3062
+ var needUpdate = true;
3063
+ var isSync = false;
3064
+ var isForce = false;
3065
+ var isImmediate = false;
3066
+ var isRetrigger = false;
3067
+ var callbacks = [];
3068
+ if (node) {
3069
+ var updater = node.value;
3070
+ allQueue.delete(node);
3071
+ updater.payLoad;
3072
+ isSync = isSync || updater.isSync;
3073
+ isForce = isForce || updater.isForce;
3074
+ isImmediate = isImmediate || updater.isImmediate;
3075
+ isRetrigger = isRetrigger || updater.isRetrigger;
3076
+ updater.callback && callbacks.push(updater.callback);
3077
+ }
3078
+ if (allQueue.length) {
3079
+ renderScheduler.microTask(function prepareUpdateOnFiberTask() {
3080
+ prepareUpdateOnFiber(renderDispatch, fiber, true);
3081
+ });
3082
+ }
3083
+ var invokeCallbackArray = callbacks.length
3084
+ ? function invokeCallbackArray() {
3085
+ return callbacks.forEach(function (cb) { return cb === null || cb === void 0 ? void 0 : cb(); });
3086
+ }
3087
+ : void 0;
3088
+ {
3089
+ return {
3090
+ needUpdate: needUpdate,
3091
+ isSync: isSync,
3092
+ isForce: isForce,
3093
+ isImmediate: isImmediate,
3094
+ isRetrigger: isRetrigger,
3095
+ callback: invokeCallbackArray,
3096
+ };
3097
+ }
3098
+ };
2888
3099
  /**
2889
3100
  * @deprecated
2890
3101
  */
@@ -2898,7 +3109,7 @@ function requireIndex_production_1 () {
2898
3109
  * @deprecated
2899
3110
  */
2900
3111
  var syncFlushComponentQueue = function (renderDispatch, fiber) {
2901
- var _a = processClassComponentUpdateQueue(renderDispatch, fiber), needUpdate = _a.needUpdate, callback = _a.callback;
3112
+ var _a = processClassComponentUpdateQueueLatest(renderDispatch, fiber), needUpdate = _a.needUpdate, callback = _a.callback;
2902
3113
  needUpdate && syncFiberStateToComponent(renderDispatch, fiber, callback);
2903
3114
  syncComponentStateToFiber(fiber);
2904
3115
  };
@@ -3355,6 +3566,7 @@ function requireIndex_production_1 () {
3355
3566
  var defaultReducer = function (state, action) {
3356
3567
  return typeof action === "function" ? action(state) : action;
3357
3568
  };
3569
+ var defaultOptimisticReducer = function (state) { return state; };
3358
3570
  var createHookNode = function (renderDispatch, _a, fiber) {
3359
3571
  var _b;
3360
3572
  var type = _a.type, value = _a.value, reducer = _a.reducer, deps = _a.deps;
@@ -3386,7 +3598,7 @@ function requireIndex_production_1 () {
3386
3598
  hookNode.result = hookNode.value;
3387
3599
  }
3388
3600
  if (hookNode.type === myreactSharedExports.HOOK_TYPE.useId) {
3389
- hookNode.result = "_-".concat(currentHookIndex, "-").concat(renderDispatch.uniqueIdCount++, "-_");
3601
+ hookNode.result = "\u00AB-".concat(currentHookIndex, "-").concat(renderDispatch.uniqueIdCount++, "-\u00BB");
3390
3602
  hookNode.cancel = function () { return renderDispatch.uniqueIdCount--; };
3391
3603
  }
3392
3604
  if (hookNode.type === myreactSharedExports.HOOK_TYPE.useDebugValue) {
@@ -3471,20 +3683,17 @@ function requireIndex_production_1 () {
3471
3683
  hookNode.result = new MyReactSignal(hookNode.value.call(null), renderDispatch);
3472
3684
  }
3473
3685
  if (hookNode.type === myreactSharedExports.HOOK_TYPE.useTransition) {
3474
- hookNode.result = [
3475
- false,
3476
- // TODO
3477
- function startTransitionByHook(cb) {
3686
+ hookNode.result = {
3687
+ value: false,
3688
+ start: function startTransitionByHook(cb) {
3478
3689
  var loadingCallback = function (cb) {
3479
3690
  react.startTransition(function () {
3480
- hookNode.result[0] = true;
3481
- hookNode._update({ isForce: true, isSync: true, callback: cb });
3691
+ hookNode._update({ isForce: true, isSync: true, callback: cb, payLoad: function (last) { return ({ value: true, start: last.start }); } });
3482
3692
  });
3483
3693
  };
3484
3694
  var loadedCallback = function () {
3485
3695
  react.startTransition(function () {
3486
- hookNode.result[0] = false;
3487
- hookNode._update({ isForce: true, isSync: true });
3696
+ hookNode._update({ isForce: true, isSync: true, payLoad: function (last) { return ({ value: false, start: last.start }); } });
3488
3697
  });
3489
3698
  };
3490
3699
  var taskCallback = function () {
@@ -3495,7 +3704,19 @@ function requireIndex_production_1 () {
3495
3704
  };
3496
3705
  loadingCallback(taskCallback);
3497
3706
  },
3498
- ];
3707
+ };
3708
+ }
3709
+ if (hookNode.type === myreactSharedExports.HOOK_TYPE.useOptimistic) {
3710
+ hookNode.result = {
3711
+ value: value.value,
3712
+ start: function startOptimisticByHook(newValue) {
3713
+ var mergeFunc = hookNode.value.reducer || defaultOptimisticReducer;
3714
+ var nextValue = mergeFunc(newValue, hookNode.result.value.value);
3715
+ var payloadRef = { current: function (last) { return ({ value: nextValue, start: last.start }); } };
3716
+ hookNode._update({ isForce: true, isSync: true, payLoad: function (last) { return payloadRef.current(last); } });
3717
+ hookNode.cancel = function () { return payloadRef.current = function (last) { return last; }; };
3718
+ },
3719
+ };
3499
3720
  }
3500
3721
  return hookNode;
3501
3722
  };
@@ -3562,7 +3783,7 @@ function requireIndex_production_1 () {
3562
3783
  var enableDebugLog = react.__my_react_shared__.enableDebugLog;
3563
3784
  var currentHookTreeNode$1 = react.__my_react_internal__.currentHookTreeNode, currentScheduler$7 = react.__my_react_internal__.currentScheduler;
3564
3785
  var updateHookNode = function (renderDispatch, _a, fiber, isHMR) {
3565
- var _b, _c;
3786
+ var _b, _c, _d;
3566
3787
  var type = _a.type, value = _a.value, reducer = _a.reducer, deps = _a.deps;
3567
3788
  var renderScheduler = currentScheduler$7.current;
3568
3789
  var currentHook = (_b = currentHookTreeNode$1.current) === null || _b === void 0 ? void 0 : _b.value;
@@ -3725,12 +3946,19 @@ function requireIndex_production_1 () {
3725
3946
  currentHook.value = value;
3726
3947
  if (!Object.is(currentHook.value, currentHook.result)) {
3727
3948
  currentHook.cancel = renderScheduler.yieldTask(function triggerHookUpdate() {
3728
- currentHook.result = currentHook.value;
3729
- currentHook._update({ isForce: true });
3949
+ currentHook._update({ isForce: true, payLoad: function () { return currentHook.value; } });
3730
3950
  currentHook.cancel = null;
3731
3951
  });
3732
3952
  }
3733
3953
  }
3954
+ if (currentHook.type === myreactSharedExports.HOOK_TYPE.useOptimistic) {
3955
+ (_d = currentHook.cancel) === null || _d === void 0 ? void 0 : _d.call(currentHook);
3956
+ currentHook.value = value;
3957
+ if (!Object.is(currentHook.result.value, value.value)) {
3958
+ currentHook.result.value = value.value;
3959
+ // currentHook._update({ isForce: true, payLoad: (last) => ({ value: value.value, start: last.start }) });
3960
+ }
3961
+ }
3734
3962
  if (currentHook.type === myreactSharedExports.HOOK_TYPE.useDebugValue) {
3735
3963
  if (!myreactSharedExports.isArrayEquals(currentHook.value, value)) {
3736
3964
  currentHook.value = value;
@@ -3819,13 +4047,15 @@ function requireIndex_production_1 () {
3819
4047
  var flag = enableConcurrentMode.current;
3820
4048
  var updateState = null;
3821
4049
  if (myreactSharedExports.include(fiber.type, exports.NODE_TYPE.__class__)) {
3822
- updateState = processClassComponentUpdateQueue(renderDispatch, fiber, flag);
4050
+ updateState = flag ? processClassComponentUpdateQueueLatest(renderDispatch, fiber, flag) : processClassComponentUpdateQueueLegacy(renderDispatch, fiber);
3823
4051
  }
3824
4052
  else if (myreactSharedExports.include(fiber.type, exports.NODE_TYPE.__function__)) {
3825
- updateState = processFunctionComponentUpdateQueue(renderDispatch, fiber, flag);
4053
+ updateState = flag
4054
+ ? processFunctionComponentUpdateQueueLatest(renderDispatch, fiber, flag)
4055
+ : processFunctionComponentUpdateQueueLegacy(renderDispatch, fiber);
3826
4056
  }
3827
4057
  else {
3828
- updateState = processNormalComponentUpdate(fiber);
4058
+ updateState = flag ? processNormalComponentUpdateLatest(renderDispatch, fiber) : processNormalComponentUpdateLegacy(renderDispatch, fiber);
3829
4059
  }
3830
4060
  if (updateState === null || updateState === void 0 ? void 0 : updateState.needUpdate) {
3831
4061
  safeCallWithCurrentFiber({
@@ -4216,7 +4446,7 @@ function requireIndex_production_1 () {
4216
4446
  return createFiberNode(renderDispatch, { parent: parentFiber }, newChild);
4217
4447
  };
4218
4448
  var transformChildrenFiber = function (renderDispatch, parentFiber, children) {
4219
- var isUpdate = myreactSharedExports.exclude(parentFiber.state, myreactSharedExports.STATE_TYPE.__create__);
4449
+ var isUpdate = myreactSharedExports.exclude(parentFiber.state, myreactSharedExports.STATE_TYPE.__create__) && renderDispatch.isAppMounted;
4220
4450
  var isHMR = myreactSharedExports.include(parentFiber.state, myreactSharedExports.STATE_TYPE.__hmr__);
4221
4451
  var isRetrigger = myreactSharedExports.include(parentFiber.state, myreactSharedExports.STATE_TYPE.__retrigger__);
4222
4452
  // is current is retrigger update, skip update children
@@ -4444,7 +4674,7 @@ function requireIndex_production_1 () {
4444
4674
  typedElementType._loading = true;
4445
4675
  var renderScheduler_1 = currentScheduler$3.current;
4446
4676
  renderDispatch.processLazy(typedElementType).then(function () {
4447
- fiber.state = myreactSharedExports.STATE_TYPE.__create__;
4677
+ fiber.state = myreactSharedExports.STATE_TYPE.__recreate__;
4448
4678
  typedElementType._list.delete(fiber);
4449
4679
  var updater = {
4450
4680
  type: myreactSharedExports.UpdateQueueType.lazy,
@@ -5262,67 +5492,12 @@ function requireIndex_production_1 () {
5262
5492
 
5263
5493
  var currentScheduler$2 = react.__my_react_internal__.currentScheduler;
5264
5494
  react.__my_react_shared__.enableScopeTreeLog;
5265
- var defaultDispatchMountLegacy = function (_dispatch, _fiber) {
5266
- var mountInsertionEffectList = function (_fiber) {
5267
- if (_fiber.child)
5268
- mountInsertionEffectList(_fiber.child);
5269
- insertionEffect(_dispatch, _fiber);
5270
- if (_fiber.sibling)
5271
- mountInsertionEffectList(_fiber.sibling);
5272
- };
5273
- var mountCommit = function (_fiber) {
5274
- safeCallWithCurrentFiber({
5275
- fiber: _fiber,
5276
- action: function safeCallCreateAndUpdate() {
5277
- _dispatch.commitCreate(_fiber);
5278
- _dispatch.commitUpdate(_fiber);
5279
- },
5280
- });
5281
- if (_fiber.child)
5282
- mountCommit(_fiber.child);
5283
- safeCallWithCurrentFiber({
5284
- fiber: _fiber,
5285
- action: function safeCallAppendAndSetRef() {
5286
- _dispatch.commitAppend(_fiber);
5287
- _dispatch.commitSetRef(_fiber);
5288
- },
5289
- });
5290
- if (_fiber.sibling) {
5291
- mountCommit(_fiber.sibling);
5292
- }
5293
- };
5294
- var mountLayoutEffectList = function (_fiber) {
5295
- if (_fiber.child)
5296
- mountLayoutEffectList(_fiber.child);
5297
- layoutEffect(_dispatch, _fiber);
5298
- if (_fiber.sibling)
5299
- mountLayoutEffectList(_fiber.sibling);
5300
- };
5301
- var mountEffectList = function (_fiber) {
5302
- if (_fiber.child)
5303
- mountEffectList(_fiber.child);
5304
- effect(_dispatch, _fiber);
5305
- if (_fiber.sibling)
5306
- mountEffectList(_fiber.sibling);
5307
- };
5308
- var mountLoop = function (_fiber) {
5309
- beforeSyncUpdate();
5310
- mountInsertionEffectList(_fiber);
5311
- afterSyncUpdate();
5312
- mountCommit(_fiber);
5313
- beforeSyncUpdate();
5314
- mountLayoutEffectList(_fiber);
5315
- afterSyncUpdate();
5316
- var renderScheduler = currentScheduler$2.current;
5317
- renderScheduler.microTask(function invokeEffectList() {
5318
- mountEffectList(_fiber);
5319
- });
5320
- };
5321
- mountLoop(_fiber);
5322
- };
5323
5495
  var defaultDispatchMountLatest = function (_dispatch, _fiber) {
5324
5496
  var _list = generateFiberToMountList(_fiber);
5325
5497
  beforeSyncUpdate();
5498
+ _list.listToFoot(function invokeUnmountPendingAndInsertionEffectList(_fiber) {
5499
+ defaultInvokeUnmountList(_dispatch, _fiber);
5500
+ });
5326
5501
  _list.listToFoot(function invokeInsertionEffectList(_fiber) {
5327
5502
  insertionEffect(_dispatch, _fiber);
5328
5503
  });
@@ -5516,7 +5691,7 @@ function requireIndex_production_1 () {
5516
5691
  promise.status = "pending";
5517
5692
  var renderScheduler_1 = currentScheduler.current;
5518
5693
  renderDispatch.processPromise(promise).then(function () {
5519
- fiber.state = myreactSharedExports.STATE_TYPE.__create__;
5694
+ fiber.state = myreactSharedExports.STATE_TYPE.__recreate__;
5520
5695
  promise._list.delete(fiber);
5521
5696
  promise._loading = false;
5522
5697
  var updater = {
@@ -5541,7 +5716,7 @@ function requireIndex_production_1 () {
5541
5716
  _this.isAppMounted = false;
5542
5717
  _this.isAppCrashed = false;
5543
5718
  _this.isAppUnmounted = false;
5544
- _this.version = "0.3.12";
5719
+ _this.version = "0.3.14";
5545
5720
  _this.mode = "production";
5546
5721
  _this.renderMode = "render";
5547
5722
  _this.pendingCommitFiberList = null;
@@ -5844,10 +6019,12 @@ function requireIndex_production_1 () {
5844
6019
  case myreactSharedExports.HOOK_TYPE.useMemo:
5845
6020
  case myreactSharedExports.HOOK_TYPE.useContext:
5846
6021
  case myreactSharedExports.HOOK_TYPE.useCallback:
5847
- case myreactSharedExports.HOOK_TYPE.useTransition:
5848
6022
  case myreactSharedExports.HOOK_TYPE.useDeferredValue:
5849
6023
  case myreactSharedExports.HOOK_TYPE.useSyncExternalStore:
5850
6024
  return hookNode.result;
6025
+ case myreactSharedExports.HOOK_TYPE.useOptimistic:
6026
+ case myreactSharedExports.HOOK_TYPE.useTransition:
6027
+ return [hookNode.result.value, hookNode.result.start];
5851
6028
  case myreactSharedExports.HOOK_TYPE.useSignal:
5852
6029
  return [hookNode.result.getValue, hookNode.result.setValue];
5853
6030
  }
@@ -5863,7 +6040,7 @@ function requireIndex_production_1 () {
5863
6040
  fiber.hookList = fiber.hookList || new myreactSharedExports.ListTree();
5864
6041
  var currentHook = null;
5865
6042
  // initial
5866
- if (myreactSharedExports.include(fiber.state, myreactSharedExports.STATE_TYPE.__create__)) {
6043
+ if (myreactSharedExports.include(fiber.state, myreactSharedExports.STATE_TYPE.__create__ | myreactSharedExports.STATE_TYPE.__recreate__)) {
5867
6044
  currentHook = createHookNode(renderDispatch, { type: type, reducer: reducer, value: value, deps: deps }, fiber);
5868
6045
  safeCall(function safeCallHookInitialListener() {
5869
6046
  var _a, _b;
@@ -5892,12 +6069,10 @@ function requireIndex_production_1 () {
5892
6069
  processAsyncLoadListOnSyncMount(renderDispatch);
5893
6070
  (function finishMount() {
5894
6071
  renderDispatch.reconcileCommit(fiber);
5895
- var commitList = renderDispatch.pendingCommitFiberList;
5896
6072
  var changedList = renderDispatch.pendingChangedFiberList;
5897
6073
  renderDispatch.resetUpdateFlowRuntimeFiber();
5898
6074
  renderDispatch.pendingCommitFiberList = null;
5899
6075
  renderDispatch.pendingChangedFiberList = null;
5900
- (commitList === null || commitList === void 0 ? void 0 : commitList.length) && renderDispatch.reconcileUpdate(commitList);
5901
6076
  (changedList === null || changedList === void 0 ? void 0 : changedList.length) &&
5902
6077
  safeCallWithCurrentFiber({
5903
6078
  fiber: fiber,
@@ -5920,12 +6095,10 @@ function requireIndex_production_1 () {
5920
6095
  _a.sent();
5921
6096
  (function finishMount() {
5922
6097
  renderDispatch.reconcileCommit(fiber);
5923
- var commitList = renderDispatch.pendingCommitFiberList;
5924
6098
  var changedList = renderDispatch.pendingChangedFiberList;
5925
6099
  renderDispatch.resetUpdateFlowRuntimeFiber();
5926
6100
  renderDispatch.pendingCommitFiberList = null;
5927
6101
  renderDispatch.pendingChangedFiberList = null;
5928
- (commitList === null || commitList === void 0 ? void 0 : commitList.length) && renderDispatch.reconcileUpdate(commitList);
5929
6102
  (changedList === null || changedList === void 0 ? void 0 : changedList.length) &&
5930
6103
  safeCallWithCurrentFiber({
5931
6104
  fiber: fiber,
@@ -5941,7 +6114,7 @@ function requireIndex_production_1 () {
5941
6114
  });
5942
6115
  }); };
5943
6116
 
5944
- var version = "0.3.12";
6117
+ var version = "0.3.14";
5945
6118
 
5946
6119
  exports.CustomRenderDispatch = CustomRenderDispatch;
5947
6120
  exports.MyReactFiberNode = MyReactFiberNode;
@@ -5969,7 +6142,6 @@ function requireIndex_production_1 () {
5969
6142
  exports.defaultDeleteCurrentEffect = defaultDeleteCurrentEffect;
5970
6143
  exports.defaultDispatchMount = defaultDispatchMount;
5971
6144
  exports.defaultDispatchMountLatest = defaultDispatchMountLatest;
5972
- exports.defaultDispatchMountLegacy = defaultDispatchMountLegacy;
5973
6145
  exports.defaultDispatchUnmount = defaultDispatchUnmount;
5974
6146
  exports.defaultDispatchUpdate = defaultDispatchUpdate;
5975
6147
  exports.defaultGenerateEffectMap = defaultGenerateEffectMap;
@@ -6074,13 +6246,16 @@ function requireIndex_production_1 () {
6074
6246
  exports.processClassComponentMount = processClassComponentMount;
6075
6247
  exports.processClassComponentUnmount = processClassComponentUnmount;
6076
6248
  exports.processClassComponentUpdate = processClassComponentUpdate;
6077
- exports.processClassComponentUpdateQueue = processClassComponentUpdateQueue;
6249
+ exports.processClassComponentUpdateQueueLatest = processClassComponentUpdateQueueLatest;
6250
+ exports.processClassComponentUpdateQueueLegacy = processClassComponentUpdateQueueLegacy;
6078
6251
  exports.processConsumer = processConsumer;
6079
6252
  exports.processFunction = processFunction;
6080
- exports.processFunctionComponentUpdateQueue = processFunctionComponentUpdateQueue;
6253
+ exports.processFunctionComponentUpdateQueueLatest = processFunctionComponentUpdateQueueLatest;
6254
+ exports.processFunctionComponentUpdateQueueLegacy = processFunctionComponentUpdateQueueLegacy;
6081
6255
  exports.processHook = processHook;
6082
6256
  exports.processLazy = processLazy;
6083
- exports.processNormalComponentUpdate = processNormalComponentUpdate;
6257
+ exports.processNormalComponentUpdateLatest = processNormalComponentUpdateLatest;
6258
+ exports.processNormalComponentUpdateLegacy = processNormalComponentUpdateLegacy;
6084
6259
  exports.processPromise = processPromise;
6085
6260
  exports.processProvider = processProvider;
6086
6261
  exports.processState = processState;
@@ -6332,6 +6507,7 @@ function requireIndex_production () {
6332
6507
  HOOK_TYPE[HOOK_TYPE["useInsertionEffect"] = 13] = "useInsertionEffect";
6333
6508
  HOOK_TYPE[HOOK_TYPE["useImperativeHandle"] = 14] = "useImperativeHandle";
6334
6509
  HOOK_TYPE[HOOK_TYPE["useSyncExternalStore"] = 15] = "useSyncExternalStore";
6510
+ HOOK_TYPE[HOOK_TYPE["useOptimistic"] = 16] = "useOptimistic";
6335
6511
  })(exports.HOOK_TYPE || (exports.HOOK_TYPE = {}));
6336
6512
 
6337
6513
  exports.UpdateQueueType = void 0;
@@ -6360,6 +6536,7 @@ function requireIndex_production () {
6360
6536
  STATE_TYPE[STATE_TYPE["__hmr__"] = 256] = "__hmr__";
6361
6537
  STATE_TYPE[STATE_TYPE["__retrigger__"] = 512] = "__retrigger__";
6362
6538
  STATE_TYPE[STATE_TYPE["__reschedule__"] = 1024] = "__reschedule__";
6539
+ STATE_TYPE[STATE_TYPE["__recreate__"] = 2048] = "__recreate__";
6363
6540
  })(exports.STATE_TYPE || (exports.STATE_TYPE = {}));
6364
6541
 
6365
6542
  exports.PATCH_TYPE = void 0;
@@ -7287,12 +7464,15 @@ var ReconcilerDispatchFiber = function (renderDispatch, fiber) {
7287
7464
  }
7288
7465
  };
7289
7466
 
7290
- var currentScheduler$1 = require$$0.__my_react_internal__.currentScheduler;
7467
+ var currentScheduler$2 = require$$0.__my_react_internal__.currentScheduler;
7291
7468
  require$$0.__my_react_shared__.enableScopeTreeLog;
7292
7469
  var ReconcilerDispatchMount = function (_dispatch, _fiber, config) {
7293
7470
  var _list = myreactReconcilerExports.generateFiberToMountList(_fiber);
7294
7471
  var pendingCommitFiberArray = [];
7295
7472
  myreactReconcilerExports.beforeSyncUpdate();
7473
+ _list.listToFoot(function invokeUnmountPendingAndInsertionEffectList(_fiber) {
7474
+ myreactReconcilerExports.defaultInvokeUnmountList(_dispatch, _fiber);
7475
+ });
7296
7476
  _list.listToFoot(function invokeInsertionEffectList(_fiber) {
7297
7477
  myreactReconcilerExports.insertionEffect(_dispatch, _fiber);
7298
7478
  });
@@ -7346,7 +7526,7 @@ var ReconcilerDispatchMount = function (_dispatch, _fiber, config) {
7346
7526
  myreactReconcilerExports.layoutEffect(_dispatch, _fiber);
7347
7527
  });
7348
7528
  myreactReconcilerExports.afterSyncUpdate();
7349
- var renderScheduler = currentScheduler$1.current;
7529
+ var renderScheduler = currentScheduler$2.current;
7350
7530
  renderScheduler.microTask(function invokeEffectListTask() {
7351
7531
  _list.listToFoot(function invokeEffectList(_fiber) {
7352
7532
  myreactReconcilerExports.effect(_dispatch, _fiber);
@@ -7354,6 +7534,106 @@ var ReconcilerDispatchMount = function (_dispatch, _fiber, config) {
7354
7534
  });
7355
7535
  };
7356
7536
 
7537
+ var currentScheduler$1 = require$$0.__my_react_internal__.currentScheduler;
7538
+ require$$0.__my_react_shared__.enableScopeTreeLog;
7539
+ var ReconcilerDispatchUpdate = function (_dispatch, _list, config) {
7540
+ myreactReconcilerExports.beforeSyncUpdate();
7541
+ _list.listToFoot(function invokeUnmountPendingAndInsertionEffectList(_fiber) {
7542
+ if (myreactSharedExports.exclude(_fiber.state, myreactSharedExports.STATE_TYPE.__unmount__) && !_dispatch.isAppUnmounted) {
7543
+ myreactReconcilerExports.defaultInvokeUnmountList(_dispatch, _fiber);
7544
+ }
7545
+ });
7546
+ _list.listToFoot(function invokeUnmountPendingAndInsertionEffectList(_fiber) {
7547
+ if (myreactSharedExports.exclude(_fiber.state, myreactSharedExports.STATE_TYPE.__unmount__) && !_dispatch.isAppUnmounted) {
7548
+ myreactReconcilerExports.insertionEffect(_dispatch, _fiber);
7549
+ }
7550
+ });
7551
+ myreactReconcilerExports.afterSyncUpdate();
7552
+ var pendingCreateFiberArray = [];
7553
+ var pendingCommitFiberArray = [];
7554
+ _list.listToFoot(function invokeCreateAndUpdateList(_fiber) {
7555
+ if (myreactSharedExports.exclude(_fiber.state, myreactSharedExports.STATE_TYPE.__unmount__) && !_dispatch.isAppUnmounted) {
7556
+ var beforeHasNode = _fiber.nativeNode;
7557
+ myreactReconcilerExports.safeCallWithCurrentFiber({
7558
+ fiber: _fiber,
7559
+ action: function safeCallCreateAndUpdate() {
7560
+ _dispatch.commitCreate(_fiber);
7561
+ _dispatch.commitUpdate(_fiber);
7562
+ },
7563
+ });
7564
+ var afterHasNode = _fiber.nativeNode;
7565
+ if (!beforeHasNode && afterHasNode) {
7566
+ pendingCreateFiberArray.push(_fiber);
7567
+ }
7568
+ }
7569
+ });
7570
+ _list.listToHead(function invokePositionList(_fiber) {
7571
+ if (myreactSharedExports.exclude(_fiber.state, myreactSharedExports.STATE_TYPE.__unmount__) && !_dispatch.isAppUnmounted) {
7572
+ myreactReconcilerExports.safeCallWithCurrentFiber({
7573
+ fiber: _fiber,
7574
+ action: function safeCallPosition() {
7575
+ _dispatch.commitPosition(_fiber);
7576
+ },
7577
+ });
7578
+ }
7579
+ });
7580
+ _list.listToFoot(function invokeAppendList(_fiber) {
7581
+ if (myreactSharedExports.exclude(_fiber.state, myreactSharedExports.STATE_TYPE.__unmount__) && !_dispatch.isAppUnmounted) {
7582
+ myreactReconcilerExports.safeCallWithCurrentFiber({
7583
+ fiber: _fiber,
7584
+ action: function safeCallAppendList() {
7585
+ _dispatch.commitAppend(_fiber);
7586
+ },
7587
+ });
7588
+ }
7589
+ });
7590
+ _list.listToFoot(function invokeSetRefList(_fiber) {
7591
+ if (myreactSharedExports.exclude(_fiber.state, myreactSharedExports.STATE_TYPE.__unmount__) && !_dispatch.isAppUnmounted) {
7592
+ myreactReconcilerExports.safeCallWithCurrentFiber({
7593
+ fiber: _fiber,
7594
+ action: function safeCallSetRefList() {
7595
+ _dispatch.commitSetRef(_fiber);
7596
+ },
7597
+ });
7598
+ }
7599
+ });
7600
+ pendingCreateFiberArray.forEach(function invokeFinalizeInitialChildren(_fiber) {
7601
+ if (_fiber.nativeNode) {
7602
+ var node = config.getPublicInstance(_fiber.nativeNode);
7603
+ var type = _fiber.elementType;
7604
+ var props = _fiber.pendingProps;
7605
+ var rootContainerInstance = config.getPublicInstance(_dispatch.rootNode);
7606
+ var hostContext = _dispatch.runtimeDom.hostContextMap.get(_fiber.parent || _fiber);
7607
+ if (config.finalizeInitialChildren(node, type, props, rootContainerInstance, hostContext)) {
7608
+ pendingCommitFiberArray.push(_fiber);
7609
+ }
7610
+ }
7611
+ });
7612
+ pendingCommitFiberArray.forEach(function invokeCommitMount(_fiber) {
7613
+ var _a;
7614
+ var node = config.getPublicInstance(_fiber.nativeNode);
7615
+ var type = _fiber.elementType;
7616
+ var props = _fiber.pendingProps;
7617
+ (_a = config.commitMount) === null || _a === void 0 ? void 0 : _a.call(config, node, type, props, _fiber);
7618
+ });
7619
+ myreactReconcilerExports.beforeSyncUpdate();
7620
+ _list.listToFoot(function invokeLayoutEffectList(_fiber) {
7621
+ if (myreactSharedExports.exclude(_fiber.state, myreactSharedExports.STATE_TYPE.__unmount__) && !_dispatch.isAppUnmounted) {
7622
+ myreactReconcilerExports.layoutEffect(_dispatch, _fiber);
7623
+ }
7624
+ });
7625
+ myreactReconcilerExports.afterSyncUpdate();
7626
+ var renderScheduler = currentScheduler$1.current;
7627
+ // TODO before next update flow, make sure all the effect has done
7628
+ renderScheduler.microTask(function invokeEffectListTask() {
7629
+ _list.listToFoot(function invokeEffectList(_fiber) {
7630
+ if (myreactSharedExports.exclude(_fiber.state, myreactSharedExports.STATE_TYPE.__unmount__) && !_dispatch.isAppUnmounted) {
7631
+ myreactReconcilerExports.effect(_dispatch, _fiber);
7632
+ }
7633
+ });
7634
+ });
7635
+ };
7636
+
7357
7637
  require$$0.__my_react_internal__.currentComponentFiber;
7358
7638
  var initialRef = {
7359
7639
  typeForRef: myreactReconcilerExports.NODE_TYPE.__plain__ | myreactReconcilerExports.NODE_TYPE.__class__,
@@ -7424,7 +7704,22 @@ var createDispatch = function (rootNode, rootFiber, rootElement, config) {
7424
7704
  ReconcilerDispatch.prototype.reconcileUpdate = function (_list) {
7425
7705
  var _a, _b;
7426
7706
  (_a = config.prepareForCommit) === null || _a === void 0 ? void 0 : _a.call(config, rootNode);
7427
- _super.prototype.reconcileUpdate.call(this, _list);
7707
+ var instance = this;
7708
+ myreactReconcilerExports.safeCall(function safeCallBeforeUpdate() {
7709
+ var _a;
7710
+ (_a = instance.beforeUpdate) === null || _a === void 0 ? void 0 : _a.call(instance);
7711
+ });
7712
+ myreactReconcilerExports.safeCall(function safeCallBeforeUpdateListener() {
7713
+ myreactReconcilerExports.listenerMap.get(instance).beforeUpdate.forEach(function (cb) { return cb(); });
7714
+ });
7715
+ ReconcilerDispatchUpdate(this, _list, config);
7716
+ myreactReconcilerExports.safeCall(function safeCallAfterUpdateListener() {
7717
+ myreactReconcilerExports.listenerMap.get(instance).afterUpdate.forEach(function (cb) { return cb(); });
7718
+ });
7719
+ myreactReconcilerExports.safeCall(function safeCallAfterUpdate() {
7720
+ var _a;
7721
+ (_a = instance.afterUpdate) === null || _a === void 0 ? void 0 : _a.call(instance);
7722
+ });
7428
7723
  (_b = config.resetAfterCommit) === null || _b === void 0 ? void 0 : _b.call(config, rootNode);
7429
7724
  };
7430
7725
  ReconcilerDispatch.prototype.patchToFiberInitial = function (_fiber) {
@@ -7515,6 +7810,7 @@ var enableDebugFiled$1 = require$$0.__my_react_shared__.enableDebugFiled, enable
7515
7810
  * @internal
7516
7811
  */
7517
7812
  var prepareScheduler = function () {
7813
+ // enableConcurrentMode.current = false;
7518
7814
  enableDebugFiled$1.current = true;
7519
7815
  enableScopeTreeLog$1.current = true;
7520
7816
  myreactReconcilerExports.enableFiberForLog.current = true;
@@ -7625,7 +7921,7 @@ var Reconciler = function (_config) {
7625
7921
  };
7626
7922
  };
7627
7923
 
7628
- var version = "0.0.3";
7924
+ var version = "0.0.5";
7629
7925
  var createReconciler = Reconciler;
7630
7926
 
7631
7927
  exports.createReconciler = createReconciler;