Skip to content

Commit a913f6b

Browse files
committed
Fallback to Render if Hydrate is not defined
ReactDOM.hydrate() may not be defined for everyone, it will now use hydrate if it is defined or fallback to render. Fixes #832
1 parent 6a54c42 commit a913f6b

File tree

6 files changed

+19
-11
lines changed

6 files changed

+19
-11
lines changed

CHANGELOG.md

+2-6
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,8 @@
11
# react-rails
22

3-
#### Breaking Changes
4-
5-
#### New Features
6-
7-
#### Deprecation
8-
3+
## 2.4.2
94
#### Bug Fixes
5+
- ReactDOM.hydrate() may not be defined for everyone, it will now use hydrate if it is defined or fallback to render #832
106

117
## 2.4.1
128

CONTRIBUTING.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -108,7 +108,7 @@ It outputs an ironically webpacked couple of files into `lib/assets/react-source
108108
##### Updating ReactRailsUJS
109109
- Update the UJS with `rake ujs:update`
110110
- (For Maintainers) To release a new NPM version:
111-
- Update the version in `react_ujs/package.json`
111+
- Update the version in `package.json`
112112
- Commit & push to master
113113
- `bundle exec rake ujs:publish` (runs `npm publish`)
114114

lib/assets/javascripts/react_ujs.js

+5-1
Original file line numberDiff line numberDiff line change
@@ -315,7 +315,11 @@ var ReactRailsUJS = {
315315
}
316316
throw new Error(message + ". Make sure your component is available to render.")
317317
} else {
318-
ReactDOM.hydrate(React.createElement(constructor, props), node);
318+
if (typeof ReactDOM.hydrate === "function") {
319+
ReactDOM.hydrate(React.createElement(constructor, props), node);
320+
} else {
321+
ReactDOM.render(React.createElement(constructor, props), node);
322+
}
319323
}
320324
}
321325
},

package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "react_ujs",
3-
"version": "2.4.1",
3+
"version": "2.4.2",
44
"description": "Rails UJS for the react-rails gem",
55
"main": "react_ujs/index.js",
66
"files": [

react_ujs/dist/react_ujs.js

+5-1
Original file line numberDiff line numberDiff line change
@@ -315,7 +315,11 @@ var ReactRailsUJS = {
315315
}
316316
throw new Error(message + ". Make sure your component is available to render.")
317317
} else {
318-
ReactDOM.hydrate(React.createElement(constructor, props), node);
318+
if (typeof ReactDOM.hydrate === "function") {
319+
ReactDOM.hydrate(React.createElement(constructor, props), node);
320+
} else {
321+
ReactDOM.render(React.createElement(constructor, props), node);
322+
}
319323
}
320324
}
321325
},

react_ujs/index.js

+5-1
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,11 @@ var ReactRailsUJS = {
9090
}
9191
throw new Error(message + ". Make sure your component is available to render.")
9292
} else {
93-
ReactDOM.hydrate(React.createElement(constructor, props), node);
93+
if (typeof ReactDOM.hydrate === "function") {
94+
ReactDOM.hydrate(React.createElement(constructor, props), node);
95+
} else {
96+
ReactDOM.render(React.createElement(constructor, props), node);
97+
}
9498
}
9599
}
96100
},

0 commit comments

Comments
 (0)