MCPcopy Create free account
hub / github.com/krasimir/react-in-patterns / createFiberFromElement

Function createFiberFromElement

code/redux/public/app.js:7206–7290  ·  view source on GitHub ↗
(element, mode, expirationTime)

Source from the content-addressed store, hash-verified

7204}
7205
7206function createFiberFromElement(element, mode, expirationTime) {
7207 var owner = null;
7208 {
7209 owner = element._owner;
7210 }
7211
7212 var fiber = void 0;
7213 var type = element.type;
7214 var key = element.key;
7215 var pendingProps = element.props;
7216
7217 var fiberTag = void 0;
7218 if (typeof type === 'function') {
7219 fiberTag = shouldConstruct(type) ? ClassComponent : IndeterminateComponent;
7220 } else if (typeof type === 'string') {
7221 fiberTag = HostComponent;
7222 } else {
7223 switch (type) {
7224 case REACT_FRAGMENT_TYPE:
7225 return createFiberFromFragment(pendingProps.children, mode, expirationTime, key);
7226 case REACT_ASYNC_MODE_TYPE:
7227 fiberTag = Mode;
7228 mode |= AsyncMode | StrictMode;
7229 break;
7230 case REACT_STRICT_MODE_TYPE:
7231 fiberTag = Mode;
7232 mode |= StrictMode;
7233 break;
7234 case REACT_CALL_TYPE:
7235 fiberTag = CallComponent;
7236 break;
7237 case REACT_RETURN_TYPE:
7238 fiberTag = ReturnComponent;
7239 break;
7240 default:
7241 {
7242 if (typeof type === 'object' && type !== null) {
7243 switch (type.$$typeof) {
7244 case REACT_PROVIDER_TYPE:
7245 fiberTag = ContextProvider;
7246 break;
7247 case REACT_CONTEXT_TYPE:
7248 // This is a consumer
7249 fiberTag = ContextConsumer;
7250 break;
7251 case REACT_FORWARD_REF_TYPE:
7252 fiberTag = ForwardRef;
7253 break;
7254 default:
7255 if (typeof type.tag === 'number') {
7256 // Currently assumed to be a continuation and therefore is a
7257 // fiber already.
7258 // TODO: The yield system is currently broken for updates in
7259 // some cases. The reified yield stores a fiber, but we don't
7260 // know which fiber that is; the current or a workInProgress?
7261 // When the continuation gets rendered here we don't know if we
7262 // can reuse that fiber or if we need to clone it. There is
7263 // probably a clever way to restructure this.

Callers 3

updateElementFunction · 0.70
createChildFunction · 0.70
reconcileSingleElementFunction · 0.70

Calls 4

shouldConstructFunction · 0.70
createFiberFromFragmentFunction · 0.70
createFiberFunction · 0.70

Tested by

no test coverage detected