fixing early return error and lint errors #16379
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description
Fixing an error in the Prebuilds page component that had an early return before all of the hooks. One of the rules of hooks is that your hooks should all come before any returns so that they all run, in the same order, on every render in a component. I've fixed this particular issue.
It's quite easy to mix up something like this with hooks, so there are builtin (to create react app) eslint rules to detect these types of problems. Unfortunately we didn't have it caught because of a rule we had turned off -
import/no-anonymous-default-export
. When this is off, it allows you to have an anonymous default export for a component, which results in some of the other hook related eslint plugins/rules not detecting it's a component. More context here.I've turned the rule back on, and fixed the few spots where we had default anonymous exports. This should help us avoid these kinds of pitfalls and see them as linter errors earlier (which will be blocking as soon as we resolve the remaining errors).
How to test
This thread has some context for testing the related issue w/ the Prebuilds page. The rest of the changes shouldn't have any visible impact.
Release Notes
Documentation
Build Options:
Experimental feature to run the build with GitHub Actions (and not in Werft).
leeway-target=components:all
Run Leeway with
--dont-test
Publish Options
Installer Options
Add desired feature flags to the end of the line above, space separated
Preview Environment Options:
If enabled this will build
install/preview
If enabled this will create the environment on GCE infra
Valid options are
all
,workspace
,webapp
,ide
,jetbrains
,vscode
,ssh