feat:complete the implement of JSX
This commit is contained in:
@@ -465,6 +465,9 @@ export abstract class Superview extends View {
|
||||
return super.toModel()
|
||||
}
|
||||
}
|
||||
export type ViewArray = View[]
|
||||
|
||||
export type ViewFragment = View | ViewArray
|
||||
|
||||
export abstract class Group extends Superview {
|
||||
|
||||
@@ -478,5 +481,19 @@ export abstract class Group extends Superview {
|
||||
this.children.push(view)
|
||||
this.dirtyProps.children = this.children.map(e => e.viewId)
|
||||
}
|
||||
|
||||
private addInnerElement(e: View | ViewFragment | ViewFragment[] | undefined | null) {
|
||||
if (e instanceof Array) {
|
||||
e.forEach(e => this.addInnerElement(e))
|
||||
} else if (e instanceof View) {
|
||||
this.addChild(e)
|
||||
} else {
|
||||
loge(`Not allowed to add ${typeof e}`)
|
||||
}
|
||||
}
|
||||
|
||||
set innerElement(e: View | ViewFragment | ViewFragment[] | undefined | null) {
|
||||
this.addInnerElement(e)
|
||||
}
|
||||
}
|
||||
|
||||
|
@@ -491,7 +491,11 @@ export abstract class Superview extends View {
|
||||
}
|
||||
}
|
||||
|
||||
export abstract class Group extends Superview {
|
||||
export type ViewArray = View[]
|
||||
|
||||
export type ViewFragment = View | ViewArray
|
||||
|
||||
export abstract class Group extends Superview implements JSX.ElementChildrenAttribute {
|
||||
|
||||
readonly children: View[] = new Proxy([], {
|
||||
set: (target, index, value) => {
|
||||
@@ -519,5 +523,18 @@ export abstract class Group extends Superview {
|
||||
removeAllChildren() {
|
||||
this.children.length = 0
|
||||
}
|
||||
|
||||
private addInnerElement(e: View | ViewFragment | ViewFragment[] | undefined | null) {
|
||||
if (e instanceof Array) {
|
||||
e.forEach(e => this.addInnerElement(e))
|
||||
} else if (e instanceof View) {
|
||||
this.addChild(e)
|
||||
} else {
|
||||
loge(`Not allowed to add ${typeof e}`)
|
||||
}
|
||||
}
|
||||
set innerElement(e: View | ViewFragment | ViewFragment[] | undefined | null) {
|
||||
this.addInnerElement(e)
|
||||
}
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user