Skip to content

Commit 73fc52c

Browse files
author
kinglokesh2203gmail.com
committed
fix(core): ensure ProxyViewContainer.hidden properly hides child views (#10913)
1 parent 1193db8 commit 73fc52c

File tree

1 file changed

+23
-23
lines changed
  • packages/core/ui/proxy-view-container

1 file changed

+23
-23
lines changed

packages/core/ui/proxy-view-container/index.ts

Lines changed: 23 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -24,38 +24,36 @@ export class ProxyViewContainer extends LayoutBase {
2424
}
2525

2626
// No native view for proxy container.
27-
// @ts-ignore
28-
get ios(): any {
27+
public override get ios(): any {
2928
return null;
3029
}
3130

32-
// @ts-ignore
33-
get android(): any {
31+
public override get android(): any {
3432
return null;
3533
}
3634

37-
get isLayoutRequested(): boolean {
35+
public get isLayoutRequested(): boolean {
3836
// Always return false so all layout requests from children bubble up.
3937
return false;
4038
}
4139

42-
public createNativeView() {
40+
public createNativeView(): any {
4341
return undefined;
4442
}
4543

4644
public _getNativeViewsCount(): number {
4745
let result = 0;
48-
this.eachChildView((cv) => {
49-
result += cv._getNativeViewsCount();
46+
this.eachChildView((cv: View) => {
47+
result += (cv as any)._getNativeViewsCount();
5048
return true;
5149
});
5250
return result;
5351
}
5452

55-
public _eachLayoutView(callback: (View) => void): void {
56-
this.eachChildView((cv) => {
53+
public _eachLayoutView(callback: (view: View) => void): void {
54+
this.eachChildView((cv: View) => {
5755
if (!cv.isCollapsed) {
58-
cv._eachLayoutView(callback);
56+
(cv as any)._eachLayoutView(callback);
5957
}
6058
return true;
6159
});
@@ -99,10 +97,10 @@ export class ProxyViewContainer extends LayoutBase {
9997

10098
layoutProperties.forEach((propName) => {
10199
const proxyPropName = makeProxyPropName(propName);
102-
child[proxyPropName] = child[propName];
100+
(child as any)[proxyPropName] = (child as any)[propName];
103101

104102
if (this.proxiedLayoutProperties.has(propName)) {
105-
this._applyLayoutPropertyToChild(child, propName, this[propName]);
103+
this._applyLayoutPropertyToChild(child, propName, (this as any)[propName]);
106104
}
107105
});
108106

@@ -138,7 +136,8 @@ export class ProxyViewContainer extends LayoutBase {
138136

139137
const parent = this.parent;
140138
if (parent instanceof View) {
141-
return parent._removeViewFromNativeVisualTree(child);
139+
parent._removeViewFromNativeVisualTree(child);
140+
return;
142141
}
143142
}
144143

@@ -191,23 +190,24 @@ export class ProxyViewContainer extends LayoutBase {
191190

192191
private _applyLayoutPropertyToChild(child: View, propName: string, value: any) {
193192
const proxyPropName = makeProxyPropName(propName);
194-
if (proxyPropName in child) {
195-
if (child[propName] !== child[proxyPropName]) {
193+
const childAny = child as any;
194+
195+
if (proxyPropName in childAny) {
196+
if (childAny[propName] !== childAny[proxyPropName]) {
196197
if (Trace.isEnabled()) {
197-
Trace.write('ProxyViewContainer._applyLayoutPropertyToChild child ' + child + ' has its own value [' + child[propName] + '] for [' + propName + ']', Trace.categories.ViewHierarchy);
198+
Trace.write('ProxyViewContainer._applyLayoutPropertyToChild child ' + child + ' has its own value [' + childAny[propName] + '] for [' + propName + ']', Trace.categories.ViewHierarchy);
198199
}
199200
return;
200201
}
201202
}
202203

203-
child[propName] = value;
204-
child[proxyPropName] = value;
204+
childAny[propName] = value;
205+
childAny[proxyPropName] = value;
205206
}
206207

207-
// @ts-ignore
208-
public set hidden(value: boolean) {
209-
this.eachChildView((child) => {
210-
child.hidden = value;
208+
public override set hidden(value: boolean): void {
209+
this.eachChildView((child: View) => {
210+
(child as any).hidden = value;
211211
return true;
212212
});
213213
}

0 commit comments

Comments
 (0)