Intended behavior: https://github.com/reactwg/react-18/discussions/31

Sandbox: https://codesandbox.io/s/react-18-layouteffect-semantics-forked-m02w5

Expected: when suspended content is hidden and then shown, we get layout cleanup followed by layout setup.
Actual: only layout cleanup happens.


if (
                enableProfilerTimer &&
                enableProfilerCommitHooks &&
                node.mode & ProfileMode
              ) {
                try {
                  startLayoutEffectTimer();
                  commitHookEffectListUnmount(HookLayout, node, finishedWork);
                } finally {
                  recordLayoutEffectDuration(node);
                }
              } else {
                commitHookEffectListUnmount(HookLayout, node, finishedWork);
              }
            }
            break;
          }
          case ClassComponent: {
            if (isHidden && !wasHidden) {
              
              safelyDetachRef(node, finishedWork);
              const instance = node.stateNode;
              if (typeof instance.componentWillUnmount === 'function') {
                safelyCallComponentWillUnmount(node, finishedWork, instance);
              }
            }
            break;
          }