react-rails 1.9.0 → 3.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (61) hide show
  1. checksums.yaml +5 -5
  2. data/CHANGELOG.md +345 -9
  3. data/README.md +137 -389
  4. data/lib/assets/javascripts/JSXTransformer.js +6 -6
  5. data/lib/assets/javascripts/react_ujs.js +1 -7
  6. data/lib/assets/react-source/development/react-server.js +423 -21528
  7. data/lib/assets/react-source/development/react.js +191 -21409
  8. data/lib/assets/react-source/production/react-server.js +2 -19
  9. data/lib/assets/react-source/production/react.js +2 -19
  10. data/lib/generators/react/component_generator.rb +203 -73
  11. data/lib/generators/react/install_generator.rb +98 -25
  12. data/lib/generators/templates/component.es6.jsx +9 -12
  13. data/lib/generators/templates/component.es6.tsx +24 -0
  14. data/lib/generators/templates/component.js.jsx +15 -18
  15. data/lib/generators/templates/component.js.jsx.coffee +5 -8
  16. data/lib/generators/templates/component.js.jsx.tsx +36 -0
  17. data/lib/generators/templates/react_server_rendering.rb +4 -0
  18. data/lib/generators/templates/server_rendering.js +6 -0
  19. data/lib/generators/templates/server_rendering_pack.js +5 -0
  20. data/lib/react/jsx/babel_transformer.rb +12 -6
  21. data/lib/react/jsx/jsx_transformer.rb +7 -6
  22. data/lib/react/jsx/processor.rb +3 -1
  23. data/lib/react/jsx/sprockets_strategy.rb +12 -6
  24. data/lib/react/jsx/template.rb +7 -6
  25. data/lib/react/jsx.rb +11 -7
  26. data/lib/react/rails/asset_variant.rb +7 -8
  27. data/lib/react/rails/component_mount.rb +48 -14
  28. data/lib/react/rails/controller_lifecycle.rb +36 -7
  29. data/lib/react/rails/controller_renderer.rb +13 -4
  30. data/lib/react/rails/railtie.rb +34 -29
  31. data/lib/react/rails/test_helper.rb +25 -0
  32. data/lib/react/rails/version.rb +4 -2
  33. data/lib/react/rails/view_helper.rb +3 -1
  34. data/lib/react/rails.rb +9 -7
  35. data/lib/react/server_rendering/{sprockets_renderer → bundle_renderer}/console_replay.js +1 -1
  36. data/lib/react/server_rendering/bundle_renderer/console_reset.js +3 -0
  37. data/lib/react/server_rendering/bundle_renderer/timeout_polyfill.js +26 -0
  38. data/lib/react/server_rendering/bundle_renderer.rb +117 -0
  39. data/lib/react/server_rendering/environment_container.rb +2 -0
  40. data/lib/react/server_rendering/exec_js_renderer.rb +43 -16
  41. data/lib/react/server_rendering/manifest_container.rb +5 -1
  42. data/lib/react/server_rendering/separate_server_bundle_container.rb +19 -0
  43. data/lib/react/server_rendering/yaml_manifest_container.rb +12 -4
  44. data/lib/react/server_rendering.rb +26 -12
  45. data/lib/react-rails.rb +12 -4
  46. data/lib/react.rb +8 -4
  47. metadata +106 -41
  48. data/lib/assets/javascripts/react_ujs_event_setup.js +0 -29
  49. data/lib/assets/javascripts/react_ujs_mount.js +0 -104
  50. data/lib/assets/javascripts/react_ujs_native.js +0 -18
  51. data/lib/assets/javascripts/react_ujs_pjax.js +0 -10
  52. data/lib/assets/javascripts/react_ujs_turbolinks.js +0 -9
  53. data/lib/assets/javascripts/react_ujs_turbolinks_classic.js +0 -10
  54. data/lib/assets/javascripts/react_ujs_turbolinks_classic_deprecated.js +0 -13
  55. data/lib/assets/react-source/development-with-addons/react-server.js +0 -24053
  56. data/lib/assets/react-source/development-with-addons/react.js +0 -23890
  57. data/lib/assets/react-source/production-with-addons/react-server.js +0 -19
  58. data/lib/assets/react-source/production-with-addons/react.js +0 -19
  59. data/lib/generators/react/ujs_generator.rb +0 -44
  60. data/lib/react/server_rendering/sprockets_renderer.rb +0 -79
  61. /data/lib/react/server_rendering/{sprockets_renderer → bundle_renderer}/console_polyfill.js +0 -0
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: 908ecff764f2cb0ca4c4f3bfd190473b2aa25843
4
- data.tar.gz: 6b3262ab4494e36f51185c6dbbfa23c6dfc5e936
2
+ SHA256:
3
+ metadata.gz: 0e07b2e5987c055d954ae6a4e454d82f5604f9b3d1f65ee836a0964cc76ddfc8
4
+ data.tar.gz: 6689198dab8f72b32cc88727a21fc8635877f0ab0e2a8cb1a2058947615db3fb
5
5
  SHA512:
6
- metadata.gz: 2884a67467eb7f64fb7e7cd3875d63cfe26398d1c0fac87391f726ba4bbd6a6a3498d550fbb465f49359537df5ace2ccc53acb07dca00da2eb468e3a2966e983
7
- data.tar.gz: 5abf1e17ce029213a45697e5a7d7a51f16d3db7ced7971acc82e7ac5aa138e33d2e37b3d738542463d9c99d799aa7b98992d91db7123f20cc670b55e90b8dcb5
6
+ metadata.gz: ee7710e9956cb049e915968ab1ce1ffa18daa58390506b7196308d5787a0903f8a1c24c16e4aff35ab1b086056c94df6c13675c6dc8d519928cbcc972c8b2f2c
7
+ data.tar.gz: 683311b4496260d2d88e6a1db75ece5178181d186d855884752b9cd5da885203aa45392c952ca4e5f2b3e5234a437912a32848aaf0292cdb93340881f5e11458
data/CHANGELOG.md CHANGED
@@ -1,13 +1,342 @@
1
1
  # react-rails
2
2
 
3
+ If you need help upgrading `react-rails`, `webpacker` to `shakapacker`, or JS packages, contact justin@shakacode.com. The ShakaCode.com team is helping to maintain this Ruby gem. You also might want to consider the [react_on_rails](https://github.com/shakacode/react_on_rails) gem.
4
+
5
+ [#1209 2.7 Release Discussion](https://github.com/reactjs/react-rails/issues/1209)
6
+
7
+ ## Unreleased
8
+ Changes since the last non-beta release.
9
+
10
+ _Please add entries here for your pull requests that are not yet released. Include LINKS for PRs and committers._
11
+
12
+ #### Fixed
13
+ - Replaced call to ReactRailsUJS.unmountComponents that was erroneously removed by #1290 in 3.0.0 #1339
14
+
15
+ - Prevent roots from being re-created when using React 18 [PR 1305](https://github.com/reactjs/react-rails/pull/1305) by [diogobeda](https://github.com/diogobeda)
16
+
17
+ ## [3.2.0] - 2024-01-10
18
+
19
+ #### Changed
20
+ - Support other JS package managers using `package_json` gem [PR #1306](https://github.com/reactjs/react-rails/pull/1306) by [G-Rath](https://github.com/G-Rath).
21
+ - Make es6 and ts usable at same time. #1299
22
+
23
+ ## [3.1.1] - 2023-08-16
24
+
25
+ #### Removed
26
+ - Removed the replace-null functionality due a severe logic error added in 3.1.0 #1300
27
+
28
+ ## [3.1.0] - 2023-08-15
29
+
30
+ #### Added
31
+ - Added option to replace `null`s in props with `undefined` via `config.react.null_to_undefined_props` in `config/application.rb` #1293
32
+
33
+ ## [3.0.0] - 2023-08-14
34
+
35
+ ### Breaking Changes
36
+ - Requires separate compilations for server & client bundles if using Shakapacker (see [Webpack config](https://github.com/reactjs/react-rails/tree/main/test/dummy/config/webpack)) #1274
37
+ - Replaces WebpackManifestContainer, which searched for assets in the webpack manifest, with SeparateServerBundleContainer, which expects a single server bundle file & does not use the webpack manifest at all. #1274
38
+ - Upgrades React-Rails' embedded react to v18.2.0. Uses node polyfill plugin & fast-text-encoder for SSR text encoding. #1290
39
+ - If using Webpacker/Shakapacker, requires upgrading to Shakapacker v7 #1274 and #1285
40
+
41
+ #### Changed
42
+ - The `react:component` generator now generates a function component by default #1271
43
+
44
+ ## [2.7.1] - 2023-05-19
45
+
46
+ #### Bug Fixes
47
+ - Fix ReactDomClient initialization error during SSR. #1278
48
+
49
+ ## [2.7.0] - 2023-05-06
50
+
51
+ #### New Features
52
+ - Camelizes keys with primitive values, in addition to hashes #946
53
+ - Expose alternative implementations for `ReactUJS.getConstructor` #1050
54
+ - Include turbolinks in dev and update webdrivers #1174
55
+ - Add support for multiple `require.context` with addition of `useContexts` #1144
56
+ - Update many dependencies
57
+
58
+ #### Bug Fixes
59
+ - Fix installation crash caused by absolute path for `source_entry_path` in default `config/webpacker.yml` coming from `shakapacker` version 6.x - #1216
60
+ - Fix warning for loading `react-dom` in React 18 - #1269
61
+
62
+ ## 2.6.2
63
+
64
+ #### New Features
65
+
66
+ - React 16.14
67
+ - Support for ShakaPacker
68
+ - Preparation for React 18 #1151
69
+
70
+ #### Bug Fixes
71
+
72
+ - URI.open instead of open #1099
73
+ - No longer unmount components on Turbolinks navigation #1135
74
+
75
+ ## 2.6.1
76
+
77
+ #### Breaking Changes
78
+
79
+ #### New Features
80
+
81
+ - React 16.9.0
82
+ - Sprockets users get React_UJS 2.6.1
83
+
84
+ #### Deprecation
85
+
86
+ - Removed tests for Rails 3, 4, 5.0
87
+ - Removed tests for Sprockets 2
88
+ - Removed tests for Webpacker 1.1, 2
89
+
90
+ #### Bug Fixes
91
+
92
+ - React_UJS 2.6.1 still complies with ES5 #1027 #1026 #1016
93
+ - Support RubyGems pattern for Alpha releases when detecting sprockets version #1047
94
+
95
+ ## 2.6.0
96
+
97
+ #### Breaking Changes
98
+
99
+ #### New Features
100
+
101
+ - Typescript component generator #990
102
+ - Enhanced Turbolinks Support #978 #962
103
+
104
+ #### Deprecation
105
+
106
+ #### Bug Fixes
107
+
108
+ - assert_react_component will not pass tests where the case was different #979
109
+ - action_controller/test_case was accidentally `required` in dev #996
110
+
111
+ ## 2.5.0
112
+
113
+ #### Breaking Changes
114
+
115
+ #### New Features
116
+
117
+ - React 16.8.6 prebundled #977
118
+ - Added `assert_react_component` test helper #957
119
+ - Supports Webpacker 4, Ruby 2.6 #934
120
+ - Supports camelize on ActionController::Parameters #932
121
+
122
+ #### Deprecation
123
+
124
+ #### Bug Fixes
125
+
126
+ - Linting fix to generated JS #941
127
+ - (Meta) Tests for react-rails updated #892 #894 #916
128
+
129
+ ## 2.4.7
130
+
131
+ #### New Features
132
+
133
+ - React 16.4.2 prebundled #914
134
+
135
+ ## 2.4.6
136
+
137
+ #### New Features
138
+
139
+ - React 16.4.1 prebundled #909
140
+
141
+ ## 2.4.5
142
+
143
+ #### New Features
144
+
145
+ - React 16.3.2 prebundled #908
146
+ - Supports Webpacker 4.x #895
147
+ - Enhanced generator to create components in subdirectories #890
148
+ - Explicitly support Rails 5.2 #893
149
+ - Enhanced documentation for Turbolinks usage #900
150
+
151
+ ## 2.4.4
152
+
153
+ #### New Features
154
+
155
+ - React 16.2 prebundled #856, #874
156
+ - Use Fragments instead of Divs by default #856
157
+ - Explicitly support Ruby 2.5 #857
158
+ - Add support for controller rendering using `camelize_props` #869
159
+ - Many readme, doc and guide updates including Typescript #873, #865, #862, #854, #852, #849
160
+
161
+ #### Deprecation
162
+
163
+ - Drop explicit support for Ruby 2.1 #866
164
+ - Drop explicit support for Rails 3, 4.0, 4.1 #866
165
+ - If the gem continues to work on Ruby and Rails below what is in Travis, it is accidental.
166
+
167
+ #### Bug Fixes
168
+
169
+ - Correct behaviour of Turbolinks 5 mounting #868, 848
170
+ - Correct behaviour of JQuery3 removing "on" #867, 762
171
+
172
+ ## 2.4.3
173
+
174
+ #### Bug Fixes
175
+
176
+ - Call ReactDOM.render() when react_component :prerender option is falsy, instead of ReactDOM.hydrate() #844, #842
177
+
178
+ ## 2.4.2
179
+
180
+ #### Bug Fixes
181
+
182
+ - ReactDOM.hydrate() may not be defined for everyone, it will now use hydrate if it is defined or fallback to render #832
183
+
184
+ ## 2.4.1
185
+
186
+ #### New Features
187
+
188
+ - Webpacker gets ES6 components by default #822
189
+ - ReactDOM.hydrate() #828
190
+ - Documentation updates #830
191
+
192
+ #### Deprecation
193
+
194
+ #### Bug Fixes
195
+
196
+ - Webpacker local manifest sometimes had double asset_hosts if the dev server was running #834 thanks @joeyparis
197
+
198
+ ## 2.4.0
199
+
200
+ #### Breaking Changes
201
+
202
+ - (Sprockets) Prebundled React upgraded to 16 #792
203
+ - (Sprockets) Addons removed #792
204
+
205
+ #### Bug Fixes
206
+
207
+ - Coffeescript generator exports correctly #799, #800
208
+ - Running detector manually no longer breaks if Turbolinks is not preset #802
209
+
210
+ ## 2.3.1
211
+
212
+ #### Breaking Changes
213
+
214
+ - React Deprecations for 15.4, 15.5, 15.6 in preparation for 16 handled in prebundled version #789, #798
215
+
216
+ #### New Features
217
+
218
+ - Generator now makes modern style `createReactClass`(JS) or `extends React.Component`(ES6, CoffeeScript) code
219
+
220
+ #### Deprecation
221
+
222
+ - Next version will drop the addons option as they are not supported with React 16
223
+ - TheRubyRacer's newest version (0.12.3 at time of writing) only supports libV8 (3.16.14.15) which is too old for some new JS features, future versions of this gem will need more modern ExecJS runtimes such as mini_racer (currently on libV8 5.9.x)
224
+
225
+ #### Bug Fixes
226
+
227
+ ## 2.3.0
228
+
229
+ #### New Features
230
+
231
+ - Webpacker and Webpack 3 support #777
232
+ - Update to React 15.6.2 #789
233
+
234
+ #### Deprecation
235
+
236
+ #### Bug Fixes
237
+
238
+ ## 2.2.1
239
+
240
+ #### New Features
241
+
242
+ - Support `config.react.server_renderer_directories` in initializers #729
243
+
244
+ #### Bug Fixes
245
+
246
+ - Fix Railtie watcher to update its timestamp when files change #722
247
+ - Don't use `yarn` binstub because webpacker doesn't provide it anymore #717
248
+
249
+ ## 2.2.0
250
+
251
+ #### New Features
252
+
253
+ - Improve error handling when components aren't found #704
254
+
255
+ #### Bug Fixes
256
+
257
+ - Camelize filename when generating for webpack #703
258
+ - Include node module boilerplate when generating for webpack #710
259
+ - Don't look for non-existent `Turbolinks.EVENTS` #708
260
+
261
+ ## 2.1.0 (April 18, 2017)
262
+
263
+ #### New Features
264
+
265
+ - Support Rails 5.1 #697
266
+
267
+ #### Bug Fixes
268
+
269
+ - Fix UJS unmounting by selector #696
270
+
271
+ ## 2.0.2 (April 13, 2017)
272
+
273
+ #### New Features
274
+
275
+ - Rerun events detection at any time with `ReactRailsUJS.detectEvents()` #693
276
+ - Make the NPM version of `react_ujs` match the Rubygem version
277
+
278
+ `2.0.1` was skipped because a bad version of `react_ujs` was published to NPM.
279
+
280
+ ## 2.0.0 (April 13, 2017)
281
+
3
282
  #### Breaking Changes
4
283
 
284
+ - Server rendering loads `server_rendering.js` by default #471 . Upgrade by adding a new file which requires the previous defaults:
285
+
286
+ ```js
287
+ // app/assets/javascripts/server_rendering.js
288
+ // = require react-server
289
+ // = require components
290
+ ```
291
+
292
+ #### New Features
293
+
294
+ - Webpacker support:
295
+ - `react_component` can find components via `require.context` + `ReactRailsUJS.useContext` #678
296
+ - Server rendering detects Webpacker and uses packs #683, #687
297
+ - `ReactRailsUJS` is available from `npm` with `yarn add react_ujs` or `npm install react_ujs` #678
298
+ - `per_request_react_rails_prerenderer` Allows you to check out a renderer for the _whole request_ instead of once-per-`react_component` #559
299
+
300
+ #### Bug Fixes
301
+
302
+ - Improved watching of server-rendering JS files #687
303
+ - Fix console replay:
304
+ - Put the `<script>` tag outside the React.js container to avoid React warnings #691
305
+ - Clear console history between renders #692
306
+ - Use better Turbolinks events #690
307
+
308
+ ## 1.11.0 (April 4, 2017)
309
+
310
+ #### New Features
311
+
312
+ - Support `prerender: false` when rendering in a controller #680
313
+ - Update React to `15.4.2` #681
314
+
315
+ #### Bug Fixes
316
+
317
+ - Fix joining asset path in YamlManifestContainer #679
318
+ - Remove `coffee-script-source` from dependencies. #667 If you have a version conflict, you should specify the proper version yourself.
319
+
320
+ ## 1.10.0 (October 6, 2016)
321
+
322
+ #### Breaking Changes
323
+
324
+ - Alias `window = this;` has been removed from the default server rendering JavaScript to improve detection of the server rendering environment. To get the old behavior, you can add the alias in your own server rendering code. #615
325
+
5
326
  #### New Features
6
327
 
328
+ - Calling `setTimeout` or `clearTimeout` in server rendering will raise an informative error because they aren't supported #618
329
+ - `prerender:` options will be passed to server renderer methods #641
330
+ - `react_component(..., camelize_props:)` option will override the application default #642, #645
331
+ - Ship with React.js 15.4.1 #646
332
+
7
333
  #### Deprecation
8
334
 
9
335
  #### Bug Fixes
10
336
 
337
+ - use `['default']` accessor to support old JavaScript versions #619
338
+ - `react_component` with a block will correctly render the content inside the `div`
339
+
11
340
  ## 1.9.0 (October 6, 2016)
12
341
 
13
342
  #### Breaking Changes
@@ -206,14 +535,14 @@
206
535
 
207
536
  - Changed server rendering configuration names #253
208
537
 
209
- | Old | New |
210
- | ---- | ---- |
211
- | `config.react.timeout` | `config.react.server_renderer_timeout` |
212
- | `config.react.max_renderers` | `config.react.server_renderer_pool_size` |
213
- | `config.react.react_js` | `config.react.server_renderer_options[:files]` |
214
- | `config.react.component_filenames` | `config.react.server_renderer_options[:files]` |
215
- | `config.react.replay_console` | `config.react.server_renderer_options[:replay_console]` |
216
- | (none) | `config.react.server_renderer` |
538
+ | Old | New |
539
+ | ---------------------------------- | ------------------------------------------------------- |
540
+ | `config.react.timeout` | `config.react.server_renderer_timeout` |
541
+ | `config.react.max_renderers` | `config.react.server_renderer_pool_size` |
542
+ | `config.react.react_js` | `config.react.server_renderer_options[:files]` |
543
+ | `config.react.component_filenames` | `config.react.server_renderer_options[:files]` |
544
+ | `config.react.replay_console` | `config.react.server_renderer_options[:replay_console]` |
545
+ | (none) | `config.react.server_renderer` |
217
546
 
218
547
  - JSX is transformed by Babel, not JSTransform #295
219
548
 
@@ -239,7 +568,6 @@
239
568
  - Add `tilt` dependency #248
240
569
  - Default prerender pool size to 1 #302
241
570
 
242
-
243
571
  ## 1.0.0 (April 7, 2015)
244
572
 
245
573
  #### New Features
@@ -249,3 +577,11 @@
249
577
  - View helper and UJS for mounting components
250
578
  - Server rendering with `prerender: true`
251
579
  - Transform `.jsx` in the asset pipeline
580
+
581
+ [Unreleased]: https://github.com/reactjs/react-rails/compare/v3.2.0...main
582
+ [3.2.0]: https://github.com/reactjs/react-rails/compare/v3.1.1...v3.2.0
583
+ [3.1.1]: https://github.com/reactjs/react-rails/compare/v3.1.0...v3.1.1
584
+ [3.1.0]: https://github.com/reactjs/react-rails/compare/v3.0.0...v3.1.0
585
+ [3.0.0]: https://github.com/reactjs/react-rails/compare/v2.7.1...v3.0.0
586
+ [2.7.1]: https://github.com/reactjs/react-rails/compare/v2.7.0...v2.7.1
587
+ [2.7.0]: https://github.com/reactjs/react-rails/compare/v2.6.2...v2.7.0