From 800f5bcfe4520cd1aeebf7bc84070299d3520f89 Mon Sep 17 00:00:00 2001 From: Martin Yankov Date: Thu, 21 Nov 2019 14:48:33 +0200 Subject: [PATCH] fix: tab navigations don't work with lowercase xml (#8016) --- api-reports/NativeScript.api.md | 3 ++ .../tab-navigation-base.ts | 10 +++--- .../tab-strip-item/tab-strip-item.ts | 13 ++++---- .../tab-strip/tab-strip.ts | 4 +-- .../ui/tab-view/tab-view-common.ts | 2 +- tests/app/package.json | 3 +- tests/app/test-runner.ts | 9 +++++ .../bottom-navigation-tests-new.ts | 33 +++++++++++++++++++ tests/app/ui/tab-view/tab-view-tests-new.ts | 19 +++++++++++ tests/app/ui/tabs/tabs-tests-new.ts | 33 +++++++++++++++++++ tests/webpack.config.js | 4 +-- 11 files changed, 116 insertions(+), 17 deletions(-) create mode 100644 tests/app/ui/bottom-navigation/bottom-navigation-tests-new.ts create mode 100644 tests/app/ui/tab-view/tab-view-tests-new.ts create mode 100644 tests/app/ui/tabs/tabs-tests-new.ts diff --git a/api-reports/NativeScript.api.md b/api-reports/NativeScript.api.md index c585fb21b..ecb5ddee9 100644 --- a/api-reports/NativeScript.api.md +++ b/api-reports/NativeScript.api.md @@ -2304,6 +2304,9 @@ export class TabStripItem extends View { image: Image; + // (undocumented) + _index: number; + label: Label; on(eventNames: string, callback: (data: EventData) => void); diff --git a/nativescript-core/ui/tab-navigation-base/tab-navigation-base/tab-navigation-base.ts b/nativescript-core/ui/tab-navigation-base/tab-navigation-base/tab-navigation-base.ts index ddd1429de..eb8d96ed0 100644 --- a/nativescript-core/ui/tab-navigation-base/tab-navigation-base/tab-navigation-base.ts +++ b/nativescript-core/ui/tab-navigation-base/tab-navigation-base/tab-navigation-base.ts @@ -1,12 +1,12 @@ // Types import { TabNavigationBase as TabNavigationBaseDefinition, SelectedIndexChangedEventData } from "."; -import { TabContentItem } from "../tab-content-item"; -import { TabStrip } from "../tab-strip"; import { TabStripItem } from "../tab-strip-item"; import { ViewBase, AddArrayFromBuilder, AddChildFromBuilder, EventData } from "../../core/view"; // Requires -import { View, Property, CoercibleProperty, isIOS, Color } from "../../core/view"; +import { View, Property, CoercibleProperty, isIOS } from "../../core/view"; +import { TabContentItem } from "../tab-content-item"; +import { TabStrip } from "../tab-strip"; // TODO: Impl trace // export const traceCategory = "TabView"; @@ -29,14 +29,14 @@ export class TabNavigationBase extends View implements TabNavigationBaseDefiniti } public _addChildFromBuilder(name: string, value: any): void { - if (name === "TabContentItem") { + if (value instanceof TabContentItem) { if (!this.items) { this.items = new Array(); } this.items.push(value); this._addView(value); // selectedIndexProperty.coerce(this); - } else if (name === "TabStrip") { + } else if (value instanceof TabStrip) { // Setting tabStrip will trigger onTabStripChanged this.tabStrip = value; } diff --git a/nativescript-core/ui/tab-navigation-base/tab-strip-item/tab-strip-item.ts b/nativescript-core/ui/tab-navigation-base/tab-strip-item/tab-strip-item.ts index 09ea676e7..bab24db82 100644 --- a/nativescript-core/ui/tab-navigation-base/tab-strip-item/tab-strip-item.ts +++ b/nativescript-core/ui/tab-navigation-base/tab-strip-item/tab-strip-item.ts @@ -3,8 +3,6 @@ import { TabStripItem as TabStripItemDefinition } from "."; import { PropertyChangeData } from "../../../data/observable"; import { TabNavigationBase } from "../tab-navigation-base"; import { TabStrip } from "../tab-strip"; -import { Image } from "../../image/image"; -import { Label } from "../../label/label"; import { Color } from "../../../color"; import { AddChildFromBuilder } from "../../core/view"; @@ -12,8 +10,9 @@ import { AddChildFromBuilder } from "../../core/view"; import { View, ViewBase, CSSType, backgroundColorProperty, backgroundInternalProperty, PseudoClassHandler } from "../../core/view"; -import { Tabs } from "../../tabs"; import { isIOS } from "../../../platform"; +import { Image } from "../../image/image"; +import { Label } from "../../label/label"; export * from "../../core/view"; export const traceCategory = "TabView"; @@ -173,14 +172,14 @@ export class TabStripItem extends View implements TabStripItemDefinition, AddChi } public _addChildFromBuilder(name: string, value: any): void { - if (name === "Image") { + if (value instanceof Image) { this.image = value; this.iconSource = (value).src; this._addView(value); // selectedIndexProperty.coerce(this); } - if (name === "Label") { + if (value instanceof Label) { this.label =