refactor(ivy): remove dependency on global state from isCreationMode (#31959)
PR Close #31959
This commit is contained in:
parent
48a3741d5a
commit
9106271f2c
|
@ -14,8 +14,8 @@ import {TContainerNode, TNodeType} from '../interfaces/node';
|
||||||
import {FLAGS, LView, LViewFlags, PARENT, TVIEW, TView, T_HOST} from '../interfaces/view';
|
import {FLAGS, LView, LViewFlags, PARENT, TVIEW, TView, T_HOST} from '../interfaces/view';
|
||||||
import {assertNodeType} from '../node_assert';
|
import {assertNodeType} from '../node_assert';
|
||||||
import {insertView, removeView} from '../node_manipulation';
|
import {insertView, removeView} from '../node_manipulation';
|
||||||
import {enterView, getIsParent, getLView, getPreviousOrParentTNode, isCreationMode, leaveView, setIsParent, setPreviousOrParentTNode} from '../state';
|
import {enterView, getIsParent, getLView, getPreviousOrParentTNode, leaveView, setIsParent, setPreviousOrParentTNode} from '../state';
|
||||||
import {resetPreOrderHookFlags} from '../util/view_utils';
|
import {isCreationMode, resetPreOrderHookFlags} from '../util/view_utils';
|
||||||
import {assignTViewNodeToLView, createLView, createTView, refreshDescendantViews} from './shared';
|
import {assignTViewNodeToLView, createLView, createTView, refreshDescendantViews} from './shared';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -28,13 +28,13 @@ import {isComponent, isComponentDef, isContentQueryHost, isLContainer, isRootVie
|
||||||
import {BINDING_INDEX, CHILD_HEAD, CHILD_TAIL, CLEANUP, CONTEXT, DECLARATION_VIEW, ExpandoInstructions, FLAGS, HEADER_OFFSET, HOST, INJECTOR, InitPhaseState, LView, LViewFlags, NEXT, PARENT, RENDERER, RENDERER_FACTORY, RootContext, RootContextFlags, SANITIZER, TData, TVIEW, TView, T_HOST} from '../interfaces/view';
|
import {BINDING_INDEX, CHILD_HEAD, CHILD_TAIL, CLEANUP, CONTEXT, DECLARATION_VIEW, ExpandoInstructions, FLAGS, HEADER_OFFSET, HOST, INJECTOR, InitPhaseState, LView, LViewFlags, NEXT, PARENT, RENDERER, RENDERER_FACTORY, RootContext, RootContextFlags, SANITIZER, TData, TVIEW, TView, T_HOST} from '../interfaces/view';
|
||||||
import {assertNodeOfPossibleTypes, assertNodeType} from '../node_assert';
|
import {assertNodeOfPossibleTypes, assertNodeType} from '../node_assert';
|
||||||
import {isNodeMatchingSelectorList} from '../node_selector_matcher';
|
import {isNodeMatchingSelectorList} from '../node_selector_matcher';
|
||||||
import {enterView, getBindingsEnabled, getCheckNoChangesMode, getIsParent, getLView, getNamespace, getPreviousOrParentTNode, getSelectedIndex, incrementActiveDirectiveId, isCreationMode, leaveView, namespaceHTMLInternal, setActiveHostElement, setBindingRoot, setCheckNoChangesMode, setCurrentDirectiveDef, setCurrentQueryIndex, setPreviousOrParentTNode, setSelectedIndex} from '../state';
|
import {enterView, getBindingsEnabled, getCheckNoChangesMode, getIsParent, getLView, getPreviousOrParentTNode, getSelectedIndex, incrementActiveDirectiveId, leaveView, namespaceHTMLInternal, setActiveHostElement, setBindingRoot, setCheckNoChangesMode, setCurrentDirectiveDef, setCurrentQueryIndex, setPreviousOrParentTNode, setSelectedIndex} from '../state';
|
||||||
import {renderStylingMap} from '../styling_next/bindings';
|
import {renderStylingMap} from '../styling_next/bindings';
|
||||||
import {NO_CHANGE} from '../tokens';
|
import {NO_CHANGE} from '../tokens';
|
||||||
import {ANIMATION_PROP_PREFIX, isAnimationProp} from '../util/attrs_utils';
|
import {ANIMATION_PROP_PREFIX, isAnimationProp} from '../util/attrs_utils';
|
||||||
import {INTERPOLATION_DELIMITER, renderStringify, stringifyForError} from '../util/misc_utils';
|
import {INTERPOLATION_DELIMITER, renderStringify, stringifyForError} from '../util/misc_utils';
|
||||||
import {getLViewParent, getRootContext} from '../util/view_traversal_utils';
|
import {getLViewParent} from '../util/view_traversal_utils';
|
||||||
import {getComponentViewByIndex, getNativeByIndex, getNativeByTNode, getTNode, readPatchedLView, resetPreOrderHookFlags, unwrapRNode, viewAttachedToChangeDetector} from '../util/view_utils';
|
import {getComponentViewByIndex, getNativeByIndex, getNativeByTNode, getTNode, isCreationMode, readPatchedLView, resetPreOrderHookFlags, unwrapRNode, viewAttachedToChangeDetector} from '../util/view_utils';
|
||||||
|
|
||||||
import {LCleanup, LViewBlueprint, MatchesArray, TCleanup, TNodeConstructor, TNodeInitialData, TNodeInitialInputs, TNodeLocalNames, TViewComponents, TViewConstructor, attachLContainerDebug, attachLViewDebug, cloneToLView, cloneToTViewData} from './lview_debug';
|
import {LCleanup, LViewBlueprint, MatchesArray, TCleanup, TNodeConstructor, TNodeInitialData, TNodeInitialInputs, TNodeLocalNames, TViewComponents, TViewConstructor, attachLContainerDebug, attachLViewDebug, cloneToLView, cloneToTViewData} from './lview_debug';
|
||||||
import {selectInternal} from './select';
|
import {selectInternal} from './select';
|
||||||
|
|
|
@ -7,8 +7,8 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
import {bindingUpdated, bindingUpdated2, bindingUpdated3, bindingUpdated4, getBinding, updateBinding} from './bindings';
|
import {bindingUpdated, bindingUpdated2, bindingUpdated3, bindingUpdated4, getBinding, updateBinding} from './bindings';
|
||||||
import {getBindingRoot, getLView, isCreationMode} from './state';
|
import {getBindingRoot, getLView} from './state';
|
||||||
|
import {isCreationMode} from './util/view_utils';
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -44,7 +44,7 @@ export function ɵɵpureFunction0<T>(slotOffset: number, pureFn: () => T, thisAr
|
||||||
// TODO(kara): use bindingRoot instead of bindingStartIndex when implementing host bindings
|
// TODO(kara): use bindingRoot instead of bindingStartIndex when implementing host bindings
|
||||||
const bindingIndex = getBindingRoot() + slotOffset;
|
const bindingIndex = getBindingRoot() + slotOffset;
|
||||||
const lView = getLView();
|
const lView = getLView();
|
||||||
return isCreationMode() ?
|
return isCreationMode(lView) ?
|
||||||
updateBinding(lView, bindingIndex, thisArg ? pureFn.call(thisArg) : pureFn()) :
|
updateBinding(lView, bindingIndex, thisArg ? pureFn.call(thisArg) : pureFn()) :
|
||||||
getBinding(lView, bindingIndex);
|
getBinding(lView, bindingIndex);
|
||||||
}
|
}
|
||||||
|
|
|
@ -27,7 +27,8 @@ import {TContainerNode, TElementContainerNode, TElementNode, TNode, TNodeType, u
|
||||||
import {LQueries, LQuery, TQueries, TQuery, TQueryMetadata, unusedValueExportToPlacateAjd as unused4} from './interfaces/query';
|
import {LQueries, LQuery, TQueries, TQuery, TQueryMetadata, unusedValueExportToPlacateAjd as unused4} from './interfaces/query';
|
||||||
import {DECLARATION_LCONTAINER, LView, PARENT, QUERIES, TVIEW, TView} from './interfaces/view';
|
import {DECLARATION_LCONTAINER, LView, PARENT, QUERIES, TVIEW, TView} from './interfaces/view';
|
||||||
import {assertNodeOfPossibleTypes} from './node_assert';
|
import {assertNodeOfPossibleTypes} from './node_assert';
|
||||||
import {getCurrentQueryIndex, getLView, getPreviousOrParentTNode, isCreationMode, setCurrentQueryIndex} from './state';
|
import {getCurrentQueryIndex, getLView, getPreviousOrParentTNode, setCurrentQueryIndex} from './state';
|
||||||
|
import {isCreationMode} from './util/view_utils';
|
||||||
import {createContainerRef, createElementRef, createTemplateRef} from './view_engine_compatibility';
|
import {createContainerRef, createElementRef, createTemplateRef} from './view_engine_compatibility';
|
||||||
|
|
||||||
const unusedValueToPlacateAjd = unused1 + unused2 + unused3 + unused4;
|
const unusedValueToPlacateAjd = unused1 + unused2 + unused3 + unused4;
|
||||||
|
@ -392,7 +393,7 @@ export function ɵɵqueryRefresh(queryList: QueryList<any>): boolean {
|
||||||
setCurrentQueryIndex(queryIndex + 1);
|
setCurrentQueryIndex(queryIndex + 1);
|
||||||
|
|
||||||
const tQuery = getTQuery(lView[TVIEW], queryIndex);
|
const tQuery = getTQuery(lView[TVIEW], queryIndex);
|
||||||
if (queryList.dirty && (isCreationMode() === tQuery.metadata.isStatic)) {
|
if (queryList.dirty && (isCreationMode(lView) === tQuery.metadata.isStatic)) {
|
||||||
if (tQuery.matches === null) {
|
if (tQuery.matches === null) {
|
||||||
queryList.reset([]);
|
queryList.reset([]);
|
||||||
} else {
|
} else {
|
||||||
|
|
|
@ -15,7 +15,7 @@ import {ComponentDef, DirectiveDef} from './interfaces/definition';
|
||||||
import {TElementNode, TNode, TViewNode} from './interfaces/node';
|
import {TElementNode, TNode, TViewNode} from './interfaces/node';
|
||||||
import {BINDING_INDEX, CONTEXT, DECLARATION_VIEW, FLAGS, InitPhaseState, LView, LViewFlags, OpaqueViewState, TVIEW} from './interfaces/view';
|
import {BINDING_INDEX, CONTEXT, DECLARATION_VIEW, FLAGS, InitPhaseState, LView, LViewFlags, OpaqueViewState, TVIEW} from './interfaces/view';
|
||||||
import {resetAllStylingState, resetStylingState} from './styling_next/state';
|
import {resetAllStylingState, resetStylingState} from './styling_next/state';
|
||||||
import {resetPreOrderHookFlags} from './util/view_utils';
|
import {isCreationMode, resetPreOrderHookFlags} from './util/view_utils';
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -334,12 +334,6 @@ export function setIsParent(): void {
|
||||||
isParent = true;
|
isParent = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/** Checks whether a given view is in creation mode */
|
|
||||||
export function isCreationMode(view: LView = lView): boolean {
|
|
||||||
return (view[FLAGS] & LViewFlags.CreationMode) === LViewFlags.CreationMode;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* State of the current view being processed.
|
* State of the current view being processed.
|
||||||
*
|
*
|
||||||
|
|
|
@ -158,6 +158,11 @@ export function readPatchedLView(target: any): LView|null {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/** Checks whether a given view is in creation mode */
|
||||||
|
export function isCreationMode(view: LView): boolean {
|
||||||
|
return (view[FLAGS] & LViewFlags.CreationMode) === LViewFlags.CreationMode;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns a boolean for whether the view is attached to the change detection tree.
|
* Returns a boolean for whether the view is attached to the change detection tree.
|
||||||
*
|
*
|
||||||
|
|
Loading…
Reference in New Issue