auto CKBuildComponentTrigger()

in ComponentKit/Core/CKBuildComponent.mm [66:92]


auto CKBuildComponentTrigger(CK::NonNull<CKComponentScopeRoot *> scopeRoot,
                             const CKComponentStateUpdateMap &stateUpdates,
                             BOOL treeEnvironmentChanged,
                             BOOL treeHasPropsUpdate) -> CKBuildTrigger
{
  CKBuildTrigger trigger = CKBuildTriggerNone;

  if ([scopeRoot isEmpty] == NO) {
    if (stateUpdates.empty() == false) {
      trigger |= CKBuildTriggerStateUpdate;
    }

    if (treeHasPropsUpdate) {
      trigger |= CKBuildTriggerPropsUpdate;
    }

    if (treeEnvironmentChanged) {
      trigger |= CKBuildTriggerEnvironmentUpdate;
    } else if (stateUpdates.empty()) {
      trigger |= CKBuildTriggerPropsUpdate;
    }
  } else {
    RCCAssert(stateUpdates.empty(), @"No previous scope root but state updates");
  }

  return trigger;
}