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;