[REF] component: remove isStarted key

This commit is contained in:
Géry Debongnie
2019-05-17 13:30:34 +02:00
parent 61f21511a5
commit 2ce027a0a6
4 changed files with 6 additions and 15 deletions
-4
View File
@@ -25,7 +25,6 @@ export interface Env {
export interface Meta<T extends Env, Props> { export interface Meta<T extends Env, Props> {
readonly id: number; readonly id: number;
vnode: VNode | null; vnode: VNode | null;
isStarted: boolean;
isMounted: boolean; isMounted: boolean;
isDestroyed: boolean; isDestroyed: boolean;
parent: Component<T, any, any> | null; parent: Component<T, any, any> | null;
@@ -116,7 +115,6 @@ export class Component<
this.__owl__ = { this.__owl__ = {
id: id, id: id,
vnode: null, vnode: null,
isStarted: false,
isMounted: false, isMounted: false,
isDestroyed: false, isDestroyed: false,
parent: p, parent: p,
@@ -383,8 +381,6 @@ export class Component<
if (this.__owl__.isDestroyed) { if (this.__owl__.isDestroyed) {
return Promise.resolve(h("div")); return Promise.resolve(h("div"));
} }
this.__owl__.isStarted = true;
const qweb = this.env.qweb; const qweb = this.env.qweb;
if (!this.template) { if (!this.template) {
let tmap = TEMPLATE_MAP[qweb.id]; let tmap = TEMPLATE_MAP[qweb.id];
+1 -1
View File
@@ -406,7 +406,7 @@ QWeb.addDirective({
); );
ctx.addLine(`let props${widgetID} = ${props || "{}"};`); ctx.addLine(`let props${widgetID} = ${props || "{}"};`);
ctx.addIf( ctx.addIf(
`w${widgetID} && w${widgetID}.__owl__.renderPromise && !w${widgetID}.__owl__.isStarted && props${widgetID} !== w${widgetID}.__owl__.renderProps` `w${widgetID} && w${widgetID}.__owl__.renderPromise && !w${widgetID}.__owl__.vnode && props${widgetID} !== w${widgetID}.__owl__.renderProps`
); );
ctx.addLine(`w${widgetID}.destroy();`); ctx.addLine(`w${widgetID}.destroy();`);
ctx.addLine(`w${widgetID} = false`); ctx.addLine(`w${widgetID} = false`);
+5 -5
View File
@@ -14,7 +14,7 @@ exports[`class and style attributes with t-widget dynamic t-att-style is properl
const _5 = context['state'].style; const _5 = context['state'].style;
let w4 = 4 in context.__owl__.cmap ? context.__owl__.children[context.__owl__.cmap[4]] : false; let w4 = 4 in context.__owl__.cmap ? context.__owl__.children[context.__owl__.cmap[4]] : false;
let props4 = {}; let props4 = {};
if (w4 && w4.__owl__.renderPromise && !w4.__owl__.isStarted && props4 !== w4.__owl__.renderProps) { if (w4 && w4.__owl__.renderPromise && !w4.__owl__.vnode && props4 !== w4.__owl__.renderProps) {
w4.destroy(); w4.destroy();
w4 = false w4 = false
} }
@@ -48,7 +48,7 @@ exports[`class and style attributes with t-widget t-att-class is properly added/
const _5 = {a: context['state'].a,b: context['state'].b}; const _5 = {a: context['state'].a,b: context['state'].b};
let w4 = 4 in context.__owl__.cmap ? context.__owl__.children[context.__owl__.cmap[4]] : false; let w4 = 4 in context.__owl__.cmap ? context.__owl__.children[context.__owl__.cmap[4]] : false;
let props4 = {}; let props4 = {};
if (w4 && w4.__owl__.renderPromise && !w4.__owl__.isStarted && props4 !== w4.__owl__.renderProps) { if (w4 && w4.__owl__.renderPromise && !w4.__owl__.vnode && props4 !== w4.__owl__.renderProps) {
w4.destroy(); w4.destroy();
w4 = false w4 = false
} }
@@ -99,7 +99,7 @@ exports[`composition sub widgets with some state rendered in a loop 1`] = `
let def6; let def6;
let w7 = key8 in context.__owl__.cmap ? context.__owl__.children[context.__owl__.cmap[key8]] : false; let w7 = key8 in context.__owl__.cmap ? context.__owl__.children[context.__owl__.cmap[key8]] : false;
let props7 = {}; let props7 = {};
if (w7 && w7.__owl__.renderPromise && !w7.__owl__.isStarted && props7 !== w7.__owl__.renderProps) { if (w7 && w7.__owl__.renderPromise && !w7.__owl__.vnode && props7 !== w7.__owl__.renderProps) {
w7.destroy(); w7.destroy();
w7 = false w7 = false
} }
@@ -134,7 +134,7 @@ exports[`random stuff/miscellaneous snapshotting compiled code 1`] = `
let def3; let def3;
let w4 = key5 in context.__owl__.cmap ? context.__owl__.children[context.__owl__.cmap[key5]] : false; let w4 = key5 in context.__owl__.cmap ? context.__owl__.children[context.__owl__.cmap[key5]] : false;
let props4 = {flag: context['state'].flag}; let props4 = {flag: context['state'].flag};
if (w4 && w4.__owl__.renderPromise && !w4.__owl__.isStarted && props4 !== w4.__owl__.renderProps) { if (w4 && w4.__owl__.renderPromise && !w4.__owl__.vnode && props4 !== w4.__owl__.renderProps) {
w4.destroy(); w4.destroy();
w4 = false w4 = false
} }
@@ -167,7 +167,7 @@ exports[`random stuff/miscellaneous t-props should not be undefined (snapshottin
let def3; let def3;
let w4 = 4 in context.__owl__.cmap ? context.__owl__.children[context.__owl__.cmap[4]] : false; let w4 = 4 in context.__owl__.cmap ? context.__owl__.children[context.__owl__.cmap[4]] : false;
let props4 = {}; let props4 = {};
if (w4 && w4.__owl__.renderPromise && !w4.__owl__.isStarted && props4 !== w4.__owl__.renderProps) { if (w4 && w4.__owl__.renderPromise && !w4.__owl__.vnode && props4 !== w4.__owl__.renderProps) {
w4.destroy(); w4.destroy();
w4 = false w4 = false
} }
-5
View File
@@ -825,17 +825,14 @@ describe("destroy method", () => {
expect(fixture.innerHTML).toBe(""); expect(fixture.innerHTML).toBe("");
const widget = new DelayedWidget(env); const widget = new DelayedWidget(env);
widget.mount(fixture); widget.mount(fixture);
expect(widget.__owl__.isStarted).toBe(false);
expect(widget.__owl__.isMounted).toBe(false); expect(widget.__owl__.isMounted).toBe(false);
expect(widget.__owl__.isDestroyed).toBe(false); expect(widget.__owl__.isDestroyed).toBe(false);
widget.destroy(); widget.destroy();
expect(widget.__owl__.isMounted).toBe(false); expect(widget.__owl__.isMounted).toBe(false);
expect(widget.__owl__.isStarted).toBe(false);
expect(widget.__owl__.isDestroyed).toBe(true); expect(widget.__owl__.isDestroyed).toBe(true);
def.resolve(); def.resolve();
await nextTick(); await nextTick();
expect(widget.__owl__.isStarted).toBe(false);
expect(widget.__owl__.isMounted).toBe(false); expect(widget.__owl__.isMounted).toBe(false);
expect(widget.__owl__.isDestroyed).toBe(true); expect(widget.__owl__.isDestroyed).toBe(true);
expect(widget.__owl__.vnode).toBe(undefined); expect(widget.__owl__.vnode).toBe(undefined);
@@ -1800,13 +1797,11 @@ describe("async rendering", () => {
w.mount(fixture); w.mount(fixture);
expect(w.__owl__.isDestroyed).toBe(false); expect(w.__owl__.isDestroyed).toBe(false);
expect(w.__owl__.isMounted).toBe(false); expect(w.__owl__.isMounted).toBe(false);
expect(w.__owl__.isStarted).toBe(false);
w.destroy(); w.destroy();
def.resolve(); def.resolve();
await nextTick(); await nextTick();
expect(w.__owl__.isDestroyed).toBe(true); expect(w.__owl__.isDestroyed).toBe(true);
expect(w.__owl__.isMounted).toBe(false); expect(w.__owl__.isMounted).toBe(false);
expect(w.__owl__.isStarted).toBe(false);
}); });
test("destroying/recreating a subwidget with different props (if start is not over)", async () => { test("destroying/recreating a subwidget with different props (if start is not over)", async () => {