taggedjs
Version:
tagged template reactive html
37 lines • 1.39 kB
JavaScript
import { setUseMemory } from '../state/setUseMemory.object.js';
import { removeContextInCycle } from '../tag/cycles/setContextInCycle.function.js';
/** Compares states of previous renders
* @property support - The workflow that supports a single tag
* @property ownerSupport - undefined when "support" is the app element
*/
export function runAfterSupportRender(support, ownerSupport) {
const subject = support.context;
++subject.renderCount;
runAfterRender(support.context);
setUseMemory.tagClosed$.next(ownerSupport);
}
/** run after rendering anything with state */
export function runAfterRender(context) {
saveState(context);
// TODO: prove this is worth having
// checkStateMismatch(config, support)
clearStateConfig();
// setUseMemory.tagClosed$.next(ownerSupport)
}
function saveState(context) {
const config = setUseMemory.stateConfig;
const subject = context || config.context;
subject.state = subject.state || {};
subject.state.newer = { ...config };
const support = config.support;
subject.state.newest = support;
}
export function clearStateConfig() {
const config = setUseMemory.stateConfig;
delete config.prevSupport; // only this one really needed
delete config.support;
delete config.state;
delete config.states;
removeContextInCycle();
}
//# sourceMappingURL=runAfterRender.function.js.map