Skip to content

Commit 3df85b0

Browse files
committed
Snake-Case key to Camel-Case key for props when server render
1 parent 0d01d47 commit 3df85b0

File tree

1 file changed

+13
-1
lines changed

1 file changed

+13
-1
lines changed

lib/react/server_rendering/sprockets_renderer.rb

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ def render(component_name, props, prerender_options)
2626
end
2727

2828
if !props.is_a?(String)
29-
props = props.to_json
29+
props = camelize_props_key(props).to_json
3030
end
3131

3232
super(component_name, props, {render_function: react_render_method})
@@ -36,6 +36,18 @@ def after_render(component_name, props, prerender_options)
3636
@replay_console ? CONSOLE_REPLAY : ""
3737
end
3838

39+
def camelize_props_key(props)
40+
return props unless props.is_a?(Hash)
41+
props.inject({}) do |h, (k,v)|
42+
k = k.to_s.camelize(:lower)
43+
if v.is_a?(Hash)
44+
h[k] = camelize_props_key(v); h
45+
else
46+
h[k] = v; h
47+
end
48+
end
49+
end
50+
3951
# Reimplement console methods for replaying on the client
4052
CONSOLE_POLYFILL = <<-JS
4153
var console = { history: [] };

0 commit comments

Comments
 (0)