diff --git a/lib/react/server_rendering/bundle_renderer.rb b/lib/react/server_rendering/bundle_renderer.rb index 77c69198..576ff4c2 100644 --- a/lib/react/server_rendering/bundle_renderer.rb +++ b/lib/react/server_rendering/bundle_renderer.rb @@ -13,6 +13,7 @@ class BundleRenderer < ExecJSRenderer # Reimplement console methods for replaying on the client CONSOLE_POLYFILL = File.read(File.join(File.dirname(__FILE__), "bundle_renderer/console_polyfill.js")) CONSOLE_REPLAY = File.read(File.join(File.dirname(__FILE__), "bundle_renderer/console_replay.js")) + CONSOLE_RESET = File.read(File.join(File.dirname(__FILE__), "bundle_renderer/console_reset.js")) TIMEOUT_POLYFILL = File.read(File.join(File.dirname(__FILE__), "bundle_renderer/timeout_polyfill.js")) def initialize(options={}) @@ -39,6 +40,10 @@ def render(component_name, props, prerender_options) super(component_name, t_props, t_options) end + def before_render(component_name, props, prerender_options) + @replay_console ? CONSOLE_RESET : "" + end + def after_render(component_name, props, prerender_options) @replay_console ? CONSOLE_REPLAY : "" end diff --git a/lib/react/server_rendering/bundle_renderer/console_reset.js b/lib/react/server_rendering/bundle_renderer/console_reset.js new file mode 100644 index 00000000..7ab1bce9 --- /dev/null +++ b/lib/react/server_rendering/bundle_renderer/console_reset.js @@ -0,0 +1,3 @@ +if (typeof console !== "undefined" && console.history) { + console.history = []; +} diff --git a/test/dummy/app/assets/javascripts/components/TodoList.js.jsx b/test/dummy/app/assets/javascripts/components/TodoList.js.jsx index 4f3d412e..1d0e82e8 100644 --- a/test/dummy/app/assets/javascripts/components/TodoList.js.jsx +++ b/test/dummy/app/assets/javascripts/components/TodoList.js.jsx @@ -6,6 +6,7 @@ TodoList = React.createClass({ this.setState({mounted: 'yep'}); }, render: function() { + console.log("Test Console Replay") return (