mirror of
https://github.com/odoo/owl.git
synced 2025-10-06 19:59:41 +07:00
make widget class generic on props
This commit is contained in:
@@ -7,7 +7,7 @@ const template = `
|
||||
</div>
|
||||
`;
|
||||
|
||||
export class CRM extends Widget<Env> {
|
||||
export class CRM extends Widget<Env, {}> {
|
||||
name = "crm";
|
||||
template = template;
|
||||
}
|
||||
|
||||
@@ -9,15 +9,19 @@ const template = `
|
||||
</div>
|
||||
`;
|
||||
|
||||
export class Counter extends Widget<Env> {
|
||||
interface Props {
|
||||
initialState?: number;
|
||||
}
|
||||
|
||||
export class Counter extends Widget<Env, Props> {
|
||||
name = "counter";
|
||||
template = template;
|
||||
state = {
|
||||
counter: 0
|
||||
};
|
||||
|
||||
constructor(parent: Widget<Env>, props: { initialState?: number }) {
|
||||
super(parent);
|
||||
constructor(parent: Widget<Env, {}>, props: Props) {
|
||||
super(parent, props);
|
||||
this.state.counter = props.initialState || 0;
|
||||
}
|
||||
|
||||
|
||||
@@ -23,7 +23,7 @@ const template = `
|
||||
</div>
|
||||
`;
|
||||
|
||||
export class Discuss extends Widget<Env> {
|
||||
export class Discuss extends Widget<Env, {}> {
|
||||
name = "discuss";
|
||||
template = template;
|
||||
widgets = { Clock, Counter, ColorWidget };
|
||||
@@ -54,7 +54,7 @@ export class Discuss extends Widget<Env> {
|
||||
}
|
||||
}
|
||||
|
||||
class ColorWidget extends Widget<Env> {
|
||||
class ColorWidget extends Widget<Env, { color: "red" | "blue" }> {
|
||||
name = "colorwidget";
|
||||
template = `<div>Current Color: <t t-esc="props.color"/></div>`;
|
||||
}
|
||||
|
||||
@@ -14,7 +14,7 @@ const template = `
|
||||
</div>
|
||||
`;
|
||||
|
||||
export class Navbar extends Widget<Env> {
|
||||
export class Navbar extends Widget<Env, {}> {
|
||||
name = "navbar";
|
||||
template = template;
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@ import { Env } from "../env";
|
||||
|
||||
const template = `<div class="o_clock"><t t-esc="state.currentTime"/></div>`;
|
||||
|
||||
export class Clock extends Widget<Env> {
|
||||
export class Clock extends Widget<Env, {}> {
|
||||
name = "clock";
|
||||
template = template;
|
||||
interval: any | undefined;
|
||||
|
||||
@@ -11,11 +11,11 @@ const template = `
|
||||
</div>
|
||||
`;
|
||||
|
||||
export class RootWidget extends Widget<Env> {
|
||||
export class RootWidget extends Widget<Env, {}> {
|
||||
name = "root";
|
||||
template = template;
|
||||
widgets = { Navbar };
|
||||
content: Widget<Env> | null = null;
|
||||
content: Widget<Env, {}> | null = null;
|
||||
|
||||
mounted() {
|
||||
this.env.actionManager.on("action_ready", this, this.setContentWidget);
|
||||
|
||||
Reference in New Issue
Block a user