Skip to content

Commit 48e8daf

Browse files
committed
Make the tests pass
1 parent b67c751 commit 48e8daf

File tree

3 files changed

+4
-40
lines changed

3 files changed

+4
-40
lines changed

node_package/src/ComponentRegistry.js

+3-28
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
// key = name used by react_on_rails
2-
// value = { name, component, generatorFunction: boolean }
2+
// value = { name, component, generatorFunction: boolean, isRenderer: boolean }
33
import generatorFunction from './generatorFunction';
44

55
const registeredComponents = new Map();
@@ -20,38 +20,13 @@ export default {
2020
}
2121

2222
const isGeneratorFunction = generatorFunction(component);
23+
const isRenderer = isGeneratorFunction && component.length === 3;
2324

2425
registeredComponents.set(name, {
2526
name,
2627
component,
2728
generatorFunction: isGeneratorFunction,
28-
isRenderer: false,
29-
});
30-
});
31-
},
32-
33-
/**
34-
* @param renderers { renderer1: renderer1, renderer2: renderer2, etc. }
35-
*/
36-
registerRenderer(renderers) {
37-
Object.keys(renderers).forEach(name => {
38-
if (registeredComponents.has(name)) {
39-
console.warn('Called registerRenderer for component that is already registered', name);
40-
}
41-
42-
const renderer = renderers[name];
43-
44-
// A renderer must be a function
45-
if (!generatorFunction(renderer)) {
46-
throw new Error(`Called registerRenderer without passing a function; component name \
47-
is ${name}`);
48-
}
49-
50-
registeredComponents.set(name, {
51-
name,
52-
component: renderer,
53-
generatorFunction: false,
54-
isRenderer: true,
29+
isRenderer,
5530
});
5631
});
5732
},

node_package/src/ReactOnRails.js

-11
Original file line numberDiff line numberDiff line change
@@ -41,17 +41,6 @@ ctx.ReactOnRails = {
4141
StoreRegistry.register(stores);
4242
},
4343

44-
/**
45-
* Allows registration of renderers. A renderer is a function that accept three args:
46-
* props, railsContext, and domNodeId, and is responsible for rendering a component
47-
* to the DOM. Not available on the server. For one possible use case see:
48-
https://github.com/shakacode/react_on_rails/blob/master/docs/additional-reading/code-splitting.md
49-
* @param renderers (key is component name, value is renderer)
50-
*/
51-
registerRenderer(renderers) {
52-
ComponentRegistry.registerRenderer(renderers);
53-
},
54-
5544
/**
5645
* Allows retrieval of the store by name. This store will be hydrated by any Rails form props.
5746
* Pass optional param throwIfMissing = false if you want to use this call to get back null if the

node_package/tests/serverRenderReactComponent.test.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ test('serverRenderReactComponent renders an error if attempting to render a rend
4646
const { html } =
4747
JSON.parse(serverRenderReactComponent({ name: 'X3', domNodeId: 'myDomId', trace: false }));
4848

49-
const ok = html.indexOf('registerRenderer') > 0 && html.indexOf('Exception in rendering!') > 0;
49+
const ok = html.indexOf('renderer') > 0 && html.indexOf('Exception in rendering!') > 0;
5050
assert.ok(
5151
ok,
5252
'serverRenderReactComponent renders an error if attempting to render a renderer',

0 commit comments

Comments
 (0)