Merge pull request #1861 from NativeScript/hdeshev/webpack-transition-imports

Work around a webpack bundling fail in transitions by using full imports
This commit is contained in:
Hristo Deshev
2016-03-29 15:34:07 +03:00
3 changed files with 17 additions and 12 deletions

View File

@@ -154,13 +154,13 @@ export class DatePickerTest extends testModule.UITest<datePickerModule.DatePicke
} }
public test_DateIsSetCorrectlyWhenYearIsSet() { public test_DateIsSetCorrectlyWhenYearIsSet() {
let today = new Date(); let current = new Date(2016, 3, 15);
this.testView.month = today.getMonth(); this.testView.month = current.getMonth();
this.testView.day = today.getDate(); this.testView.day = current.getDate();
let expectedValue = 1980; let expectedValue = 1980;
this.testView.year = expectedValue; this.testView.year = expectedValue;
let expectedDate = new Date(1980, today.getMonth() - 1, today.getDate()); let expectedDate = new Date(1980, current.getMonth() - 1, current.getDate());
TKUnit.assertEqual(this.testView.date.getDate(), expectedDate.getDate(), "Getting Day from date property failed."); TKUnit.assertEqual(this.testView.date.getDate(), expectedDate.getDate(), "Getting Day from date property failed.");
TKUnit.assertEqual(this.testView.date.getMonth(), expectedDate.getMonth(), "Getting Month from date property failed."); TKUnit.assertEqual(this.testView.date.getMonth(), expectedDate.getMonth(), "Getting Month from date property failed.");
@@ -292,4 +292,4 @@ export class DatePickerTest extends testModule.UITest<datePickerModule.DatePicke
export function createTestCase(): DatePickerTest { export function createTestCase(): DatePickerTest {
return new DatePickerTest(); return new DatePickerTest();
} }

View File

@@ -156,16 +156,19 @@ export function _setAndroidFragmentTransitions(navigationTransition: frameModule
var transition: definition.Transition; var transition: definition.Transition;
if (name) { if (name) {
if (name.indexOf("slide") === 0) { if (name.indexOf("slide") === 0) {
var slideTransitionModule = require("./slide-transition"); //HACK: Use an absolute import to work around a webpack issue that doesn't resolve relatively-imported "xxx.android/ios" modules
var slideTransitionModule = require("ui/transition/slide-transition");
var direction = name.substr("slide".length) || "left"; //Extract the direction from the string var direction = name.substr("slide".length) || "left"; //Extract the direction from the string
transition = new slideTransitionModule.SlideTransition(direction, navigationTransition.duration, navigationTransition.curve); transition = new slideTransitionModule.SlideTransition(direction, navigationTransition.duration, navigationTransition.curve);
} }
else if (name === "fade") { else if (name === "fade") {
var fadeTransitionModule = require("./fade-transition"); //HACK: Use an absolute import to work around a webpack issue that doesn't resolve relatively-imported "xxx.android/ios" modules
var fadeTransitionModule = require("ui/transition/fade-transition");
transition = new fadeTransitionModule.FadeTransition(navigationTransition.duration, navigationTransition.curve); transition = new fadeTransitionModule.FadeTransition(navigationTransition.duration, navigationTransition.curve);
} }
else if (name.indexOf("flip") === 0) { else if (name.indexOf("flip") === 0) {
var flipTransitionModule = require("./flip-transition"); //HACK: Use an absolute import to work around a webpack issue that doesn't resolve relatively-imported "xxx.android/ios" modules
var flipTransitionModule = require("ui/transition/flip-transition");
var direction = name.substr("flip".length) || "right"; //Extract the direction from the string var direction = name.substr("flip".length) || "right"; //Extract the direction from the string
transition = new flipTransitionModule.FlipTransition(direction, navigationTransition.duration, navigationTransition.curve); transition = new flipTransitionModule.FlipTransition(direction, navigationTransition.duration, navigationTransition.curve);
} }
@@ -394,4 +397,4 @@ export class Transition implements definition.Transition {
public toString(): string { public toString(): string {
return `${types.getClass(this)}@${this._id}`; return `${types.getClass(this)}@${this._id}`;
} }
} }

View File

@@ -106,14 +106,16 @@ export function _createIOSAnimatedTransitioning(navigationTransition: frame.Navi
if (name.indexOf("slide") === 0) { if (name.indexOf("slide") === 0) {
let direction = name.substr("slide".length) || "left"; //Extract the direction from the string let direction = name.substr("slide".length) || "left"; //Extract the direction from the string
if (!slideTransitionModule) { if (!slideTransitionModule) {
slideTransitionModule = require("./slide-transition"); //HACK: Use an absolute import to work around a webpack issue that doesn't resolve relatively-imported "xxx.android/ios" modules
slideTransitionModule = require("ui/transition/slide-transition");
} }
transition = new slideTransitionModule.SlideTransition(direction, navigationTransition.duration, nativeCurve); transition = new slideTransitionModule.SlideTransition(direction, navigationTransition.duration, nativeCurve);
} }
else if (name === "fade") { else if (name === "fade") {
if (!fadeTransitionModule) { if (!fadeTransitionModule) {
fadeTransitionModule = require("./fade-transition"); //HACK: Use an absolute import to work around a webpack issue that doesn't resolve relatively-imported "xxx.android/ios" modules
fadeTransitionModule = require("ui/transition/fade-transition");
} }
transition = new fadeTransitionModule.FadeTransition(navigationTransition.duration, nativeCurve); transition = new fadeTransitionModule.FadeTransition(navigationTransition.duration, nativeCurve);
@@ -128,4 +130,4 @@ export function _createIOSAnimatedTransitioning(navigationTransition: frame.Navi
} }
return null; return null;
} }