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;
}