diff --git a/.eslintignore b/.eslintignore index 20efa3e5f..d19753de8 100644 --- a/.eslintignore +++ b/.eslintignore @@ -1,4 +1,3 @@ -node_modules coverage spec/react_on_rails/dummy-for-generators spec/dummy/.yalc @@ -6,7 +5,6 @@ spec/dummy/public spec/dummy/vendor spec/dummy/tmp spec/dummy/app/assets/config/manifest.js -spec/dummy/client/node_modules spec/dummy/client/app/components/HelloWorldReScript.res.js node_package/lib/ **/node_modules/** diff --git a/.eslintrc b/.eslintrc index cf2ae3191..f4b9e1779 100644 --- a/.eslintrc +++ b/.eslintrc @@ -41,7 +41,8 @@ rules: object-curly-newline: 0 no-restricted-syntax: ["error", "SequenceExpression"] # https://stackoverflow.com/a/59268871/5241481 - import/extensions: ['error', 'ignorePackages', {"js": 'never', "jsx": 'never', "ts": "never", " ": "never"}] + import/extensions: ['error', 'ignorePackages', {"js": 'never', "jsx": 'never', "ts": "never"}] + import/first: 0 # https://github.com/benmosher/eslint-plugin-import/issues/340 import/no-extraneous-dependencies: 0 diff --git a/spec/dummy/app/views/shared/_header.erb b/spec/dummy/app/views/shared/_header.erb index 020a330f4..2db3b30f5 100644 --- a/spec/dummy/app/views/shared/_header.erb +++ b/spec/dummy/app/views/shared/_header.erb @@ -104,5 +104,8 @@
  • <%= link_to "Incorrectly wrapping a pure component in a function", pure_component_wrapped_in_function_path %>
  • +
  • + <%= link_to "TurboStream Demo", turbo_frame_tag_hello_world_path %> +

  • diff --git a/spec/dummy/client/app/packs/rescript-components.js b/spec/dummy/client/app/packs/rescript-components.js index c1b243230..83c3d7819 100644 --- a/spec/dummy/client/app/packs/rescript-components.js +++ b/spec/dummy/client/app/packs/rescript-components.js @@ -2,6 +2,6 @@ // As per the current configuration, all files are compiled to .res.js // and they are generated on the same directory as the .res file -import HelloWorldReScript from '../components/HelloWorldReScript.res.js'; +import HelloWorldReScript from '../components/HelloWorldReScript.res.js'; // eslint-disable-line import/no-unresolved export default HelloWorldReScript; diff --git a/spec/dummy/client/app/packs/server-bundle.js b/spec/dummy/client/app/packs/server-bundle.js index f21eb77ec..a7d07386e 100644 --- a/spec/dummy/client/app/packs/server-bundle.js +++ b/spec/dummy/client/app/packs/server-bundle.js @@ -1,7 +1,7 @@ +// import statement added by react_on_rails:generate_packs rake task +import "./../generated/server-bundle-generated.js" // eslint-disable-line import/extensions // Shows the mapping from the exported object to the name used by the server rendering. import ReactOnRails from 'react-on-rails'; -// import statement added by react_on_rails:generate_packs rake task -import './../generated/server-bundle-generated'; // Example of server rendering with no React import HelloString from '../non_react/HelloString'; diff --git a/spec/dummy/client/app/startup/HelloTurboStream.jsx b/spec/dummy/client/app/startup/HelloTurboStream.jsx index ca32d2c18..cb247bbea 100644 --- a/spec/dummy/client/app/startup/HelloTurboStream.jsx +++ b/spec/dummy/client/app/startup/HelloTurboStream.jsx @@ -1,24 +1,15 @@ import PropTypes from 'prop-types'; -import React, { useState, useRef } from 'react'; +import React from 'react'; import RailsContext from '../components/RailsContext'; import css from '../components/HelloWorld.module.scss'; -const HelloTurboStream = ({ helloTurboStreamData, railsContext }) => { - const [name, setName] = useState(helloTurboStreamData.name); - const nameDomRef = useRef(null); - // eslint-disable-next-line no-unused-vars - const handleChange = () => { - setName(nameDomRef.current.value); - }; - - return ( -
    -

    Hello, {name}!

    - {railsContext && } -
    - ); -}; +const HelloTurboStream = ({ helloTurboStreamData, railsContext }) => ( +
    +

    Hello, {helloTurboStreamData.name}!

    + {railsContext && } +
    +); HelloTurboStream.propTypes = { helloTurboStreamData: PropTypes.shape({ diff --git a/spec/dummy/client/app/startup/HelloWorldHooks.jsx b/spec/dummy/client/app/startup/HelloWorldHooks.jsx index da2aebbe6..8c8bb1c61 100644 --- a/spec/dummy/client/app/startup/HelloWorldHooks.jsx +++ b/spec/dummy/client/app/startup/HelloWorldHooks.jsx @@ -19,7 +19,7 @@ function HelloWorldHooks(props) { HelloWorldHooks.propTypes = { helloWorldData: PropTypes.shape({ - name: PropTypes.string, + name: PropTypes.string.isRequired, }).isRequired, } diff --git a/spec/dummy/client/app/startup/HelloWorldReScript.jsx b/spec/dummy/client/app/startup/HelloWorldReScript.jsx index ca73af49e..7f677c229 100644 --- a/spec/dummy/client/app/startup/HelloWorldReScript.jsx +++ b/spec/dummy/client/app/startup/HelloWorldReScript.jsx @@ -1,3 +1,3 @@ -import HelloWorldReScript from '../components/HelloWorldReScript.res.js'; +import HelloWorldReScript from '../components/HelloWorldReScript.res.js'; // eslint-disable-line import/no-unresolved export default HelloWorldReScript;