Skip to content
This repository was archived by the owner on May 17, 2019. It is now read-only.

Commit 99ee9ae

Browse files
committed
Use RoutePrefixToken if registered
1 parent bee9c9d commit 99ee9ae

File tree

2 files changed

+20
-11
lines changed

2 files changed

+20
-11
lines changed

src/__tests__/plugin.js

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88

99
import React from 'react';
1010
import {UniversalEventsToken} from 'fusion-plugin-universal-events';
11-
import {createPlugin} from 'fusion-core';
11+
import {createPlugin, RoutePrefixToken} from 'fusion-core';
1212
import App from 'fusion-react';
1313
import {getSimulator} from 'fusion-test-utils';
1414
import {withRouter, Link} from 'react-router-dom';
@@ -17,12 +17,6 @@ import {Route} from '../modules/Route';
1717
import {Redirect} from '../modules/Redirect.js';
1818
import RouterPlugin, {RouterProviderToken, RouterToken} from '../plugin';
1919

20-
const addRoutePrefix = (ctx, next) => {
21-
// hack until we have better route prefix support in fusion-test-utils
22-
ctx.prefix = '/test';
23-
return next();
24-
};
25-
2620
function getApp(el) {
2721
const app = new App(el);
2822
app.register(RouterToken, RouterPlugin);
@@ -31,7 +25,7 @@ function getApp(el) {
3125

3226
function getPrefixApp(el) {
3327
const app = new App(el);
34-
app.middleware(addRoutePrefix);
28+
app.register(RoutePrefixToken, '/test');
3529
app.register(RouterPlugin);
3630
return app;
3731
}

src/plugin.js

Lines changed: 18 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,14 @@
88

99
import * as React from 'react';
1010
import {UniversalEventsToken} from 'fusion-plugin-universal-events';
11-
import {createPlugin, createToken, html, unescape, memoize} from 'fusion-core';
11+
import {
12+
createPlugin,
13+
createToken,
14+
html,
15+
unescape,
16+
memoize,
17+
RoutePrefixToken,
18+
} from 'fusion-core';
1219
import {Router as ServerRouter} from './server';
1320
import {Router as BrowserRouter} from './browser';
1421
import {Router as DefaultProvider} from 'react-router-dom';
@@ -41,10 +48,18 @@ export default createPlugin({
4148
deps: {
4249
emitter: UniversalEventsToken.optional,
4350
Provider: RouterProviderToken.optional,
51+
prefix: RoutePrefixToken.optional,
4452
},
45-
middleware: ({emitter, Provider = DefaultProvider}, self) => {
53+
middleware: ({emitter, Provider = DefaultProvider, prefix}, self) => {
4654
return async (ctx, next) => {
47-
const prefix = ctx.prefix || '';
55+
if (!prefix) {
56+
if (ctx.prefix) {
57+
prefix = ctx.prefix;
58+
} else {
59+
prefix = '';
60+
}
61+
}
62+
4863
if (!ctx.element) {
4964
return next();
5065
}

0 commit comments

Comments
 (0)