Skip to content

Instantly share code, notes, and snippets.

@chidumennamdi
Created August 22, 2018 16:51
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save chidumennamdi/ce697a60d2433a758e00f43acbb397e4 to your computer and use it in GitHub Desktop.
Save chidumennamdi/ce697a60d2433a758e00f43acbb397e4 to your computer and use it in GitHub Desktop.
export function checkAndUpdateView(view: ViewData) {
1.➥ if (view.state & ViewState.BeforeFirstCheck) {
view.state &= ~ViewState.BeforeFirstCheck;
view.state |= ViewState.FirstCheck;
} else {
view.state &= ~ViewState.FirstCheck;
1.➥ }
2.➥ shiftInitState(view, ViewState.InitState_BeforeInit, ViewState.InitState_CallingOnInit);
3.➥ markProjectedViewsForCheck(view);
4.➥ Services.updateDirectives(view, CheckType.CheckAndUpdate);
5.➥ execEmbeddedViewsAction(view, ViewAction.CheckAndUpdate);
6.➥ execQueriesAction(
view, NodeFlags.TypeContentQuery, NodeFlags.DynamicQuery, CheckType.CheckAndUpdate);
7.➥ let callInit = shiftInitState(
view, ViewState.InitState_CallingOnInit, ViewState.InitState_CallingAfterContentInit);
8.➥ callLifecycleHooksChildrenFirst(
view, NodeFlags.AfterContentChecked | (callInit ? NodeFlags.AfterContentInit : 0));
9.➥ Services.updateRenderer(view, CheckType.CheckAndUpdate);
10.➥ execComponentViewsAction(view, ViewAction.CheckAndUpdate);
11.➥ execQueriesAction(
view, NodeFlags.TypeViewQuery, NodeFlags.DynamicQuery, CheckType.CheckAndUpdate);
12.➥ callInit = shiftInitState(
view, ViewState.InitState_CallingAfterContentInit, ViewState.InitState_CallingAfterViewInit);
13.➥ callLifecycleHooksChildrenFirst(
view, NodeFlags.AfterViewChecked | (callInit ? NodeFlags.AfterViewInit : 0));
14.➥ if (view.def.flags & ViewFlags.OnPush) {
view.state &= ~ViewState.ChecksEnabled;
14.➥ }
15.➥ view.state &= ~(ViewState.CheckProjectedViews | ViewState.CheckProjectedView);
16.➥ shiftInitState(view, ViewState.InitState_CallingAfterViewInit, ViewState.InitState_AfterInit);
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment