Skip to content

Commit f48823d

Browse files
committed
use __init__
1 parent 4d29c43 commit f48823d

File tree

1 file changed

+21
-3
lines changed

1 file changed

+21
-3
lines changed

haxe/ui/macros/NavigationMacros.hx

Lines changed: 21 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import haxe.macro.TypeTools;
66
import haxe.macro.ComplexTypeTools;
77
import haxe.macro.Context;
88
import haxe.macro.Expr.Field;
9+
import haxe.macro.Expr;
910

1011
using StringTools;
1112
#end
@@ -31,6 +32,7 @@ class NavigationMacros {
3132
BackendMacros.additionalExprs.push(macro haxe.ui.navigation.NavigationManager.instance.subDomain = $v{navigationSubDomain});
3233
}
3334

35+
var routeExpr:Expr = null;
3436
if (routeDetailsMeta != null) {
3537
var routePathExpr = routeDetailsMeta.params[0];
3638
var initialRoute = localMeta.has(":initialRoute") || localMeta.has("initialRoute");
@@ -40,21 +42,23 @@ class NavigationMacros {
4042
if (routePathExpr != null) {
4143
var parts = localClass.toString().split(".");
4244
parts.push("new");
43-
BackendMacros.additionalExprs.push(macro haxe.ui.navigation.NavigationManager.instance.registerRoute($routePathExpr, {
45+
routeExpr = macro haxe.ui.navigation.NavigationManager.instance.registerRoute($routePathExpr, {
4446
viewCtor: $p{parts},
4547
initial: $v{initialRoute},
4648
error: $v{errorRoute},
4749
preserveView: $v{preserveView}
48-
}));
50+
});
4951
}
5052
}
5153

5254
var applyParamsField = null;
55+
var initField = null;
5356
var fields = Context.getBuildFields();
5457
for (f in fields) {
5558
if (f.name == "applyParams") {
5659
applyParamsField = f;
57-
break;
60+
} else if (f.name == "__init__") {
61+
initField = f;
5862
}
5963
}
6064

@@ -72,6 +76,20 @@ class NavigationMacros {
7276
}
7377

7478

79+
if (initField == null && routeExpr != null) {
80+
fields.push({
81+
name: "__init__",
82+
access: [AStatic],
83+
kind: FFun({
84+
args: [],
85+
expr: macro {
86+
${routeExpr}
87+
}
88+
}),
89+
pos: Context.currentPos()
90+
});
91+
}
92+
7593
return fields;
7694
}
7795

0 commit comments

Comments
 (0)