Skip to content

Commit a4ee9e9

Browse files
fix(UIView): Provide only resolve props that should be accessible to each view
- use ResolveContext API to get resolved values instead of Transition.injector()
1 parent cc3d80d commit a4ee9e9

File tree

1 file changed

+15
-16
lines changed

1 file changed

+15
-16
lines changed

src/components/UIView.tsx

Lines changed: 15 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -241,33 +241,32 @@ export class UIView extends Component<UIViewProps, UIViewState> {
241241
return;
242242
}
243243

244-
let newComponent =
245-
newConfig && newConfig.viewDecl && newConfig.viewDecl.component;
246-
let trans: Transition = undefined,
247-
resolves = {};
244+
let trans: Transition;
245+
let resolves = {};
248246

249247
if (newConfig) {
250-
let context: ViewContext =
251-
newConfig.viewDecl && newConfig.viewDecl.$context;
252-
this.uiViewAddress = { fqn: this.uiViewAddress.fqn, context };
253-
254-
let ctx = new ResolveContext(newConfig.path);
255-
trans = ctx.getResolvable(Transition).data;
256-
let stringTokens: string[] = trans
257-
.getResolveTokens()
258-
.filter(x => typeof x === 'string');
259-
resolves = stringTokens
260-
.map(token => [token, trans.injector().get(token)])
261-
.reduce(applyPairs, {});
248+
let viewContext: ViewContext = newConfig.viewDecl && newConfig.viewDecl.$context;
249+
this.uiViewAddress = { fqn: this.uiViewAddress.fqn, context: viewContext };
250+
251+
let resolveContext = new ResolveContext(newConfig.path);
252+
let injector = resolveContext.injector();
262253

254+
let stringTokens: string[] = resolveContext.getTokens()
255+
.filter(x => typeof x === 'string');
263256
if (stringTokens.indexOf('transition') !== -1) {
264257
throw TransitionPropCollisionError;
265258
}
259+
260+
trans = injector.get(Transition);
261+
resolves = stringTokens
262+
.map(token => [token, injector.get(token)])
263+
.reduce(applyPairs, {});
266264
}
267265

268266
this.uiViewData.config = newConfig;
269267
let props = { ...resolves, transition: trans };
270268

269+
let newComponent = newConfig && newConfig.viewDecl && newConfig.viewDecl.component;
271270
this.setState({
272271
component: newComponent || 'div',
273272
props: newComponent ? props : {},

0 commit comments

Comments
 (0)