From 945f095e308e7bd5bc887d01b93ce168f16948b4 Mon Sep 17 00:00:00 2001 From: ViXP Date: Fri, 11 Aug 2017 22:02:09 +0300 Subject: [PATCH 1/3] Rails React Component CoffeeScript version generator is fixed to output the modules and require React objects --- lib/generators/react/component_generator.rb | 12 ++++++++++-- lib/generators/templates/component.js.jsx.coffee | 3 +++ 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/lib/generators/react/component_generator.rb b/lib/generators/react/component_generator.rb index fe95dbb71..f638a4c5b 100644 --- a/lib/generators/react/component_generator.rb +++ b/lib/generators/react/component_generator.rb @@ -125,7 +125,11 @@ def component_name def file_header if webpacker? - %|var React = require("react")\n| + if options[:coffee] + %|React = require('react')\n| + else + %|var React = require("react")\n| + end else "" end @@ -133,7 +137,11 @@ def file_header def file_footer if webpacker? - %|module.exports = #{component_name}| + if options[:coffee] + %|module.exports = @#{component_name}| + else + %|module.exports = #{component_name}| + end else "" end diff --git a/lib/generators/templates/component.js.jsx.coffee b/lib/generators/templates/component.js.jsx.coffee index c8cdcbf87..b22b70142 100644 --- a/lib/generators/templates/component.js.jsx.coffee +++ b/lib/generators/templates/component.js.jsx.coffee @@ -1,3 +1,4 @@ +<%= file_header %> class @<%= component_name %> extends React.Component <% if attributes.size > 0 -%> @propTypes = @@ -16,3 +17,5 @@ class @<%= component_name %> extends React.Component <% else -%> `
` <% end -%> + +<%= file_footer %> \ No newline at end of file From 441e0823e44ae251401af64be310a81b319f00ca Mon Sep 17 00:00:00 2001 From: Cyril ViXP Date: Sun, 1 Oct 2017 19:01:45 +0300 Subject: [PATCH 2/3] Coffee generator fixed for Webpack syntax --- lib/generators/react/component_generator.rb | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/lib/generators/react/component_generator.rb b/lib/generators/react/component_generator.rb index 14a45e18c..2a50a12c1 100644 --- a/lib/generators/react/component_generator.rb +++ b/lib/generators/react/component_generator.rb @@ -130,7 +130,9 @@ def component_name def file_header if webpacker? if options[:coffee] - %|React = require('react')\n| + %|import React from 'react'\n| + %|import PropTypes from 'prop-types'\n| + %|export default | else %|var React = require("react")\n| end @@ -140,12 +142,8 @@ def file_header end def file_footer - if webpacker? - if options[:coffee] - %|module.exports = @#{component_name}| - else - %|module.exports = #{component_name}| - end + if webpacker? && !options[:coffee] + %|module.exports = #{component_name}| else '' end From cbf3cd07a93c49a9e79b5763c6bd8a001cecef6b Mon Sep 17 00:00:00 2001 From: Cyril ViXP Date: Sun, 1 Oct 2017 20:27:33 +0300 Subject: [PATCH 3/3] Coffee generator template fixed for Webpack syntax --- lib/generators/react/component_generator.rb | 4 +--- lib/generators/templates/component.js.jsx.coffee | 5 ++--- 2 files changed, 3 insertions(+), 6 deletions(-) diff --git a/lib/generators/react/component_generator.rb b/lib/generators/react/component_generator.rb index 2a50a12c1..e5e2cf982 100644 --- a/lib/generators/react/component_generator.rb +++ b/lib/generators/react/component_generator.rb @@ -130,9 +130,7 @@ def component_name def file_header if webpacker? if options[:coffee] - %|import React from 'react'\n| - %|import PropTypes from 'prop-types'\n| - %|export default | + %|import React from 'react'\nimport PropTypes from 'prop-types'\n| else %|var React = require("react")\n| end diff --git a/lib/generators/templates/component.js.jsx.coffee b/lib/generators/templates/component.js.jsx.coffee index b22b70142..ebb4ffe2f 100644 --- a/lib/generators/templates/component.js.jsx.coffee +++ b/lib/generators/templates/component.js.jsx.coffee @@ -1,5 +1,5 @@ <%= file_header %> -class @<%= component_name %> extends React.Component +export default class @<%= component_name %> extends React.Component <% if attributes.size > 0 -%> @propTypes = <% attributes.each do |attribute| -%> @@ -17,5 +17,4 @@ class @<%= component_name %> extends React.Component <% else -%> `
` <% end -%> - -<%= file_footer %> \ No newline at end of file +<%= file_footer %>