Chore/oxlint basic setup - #607
Conversation
There was a problem hiding this comment.
Pull request overview
Adds Oxlint alongside ESLint and resolves newly surfaced lint findings.
Changes:
- Adds Oxlint configuration, dependency, scripts, and editor integration.
- Improves Storybook metadata typing and action definitions.
- Applies lint-driven cleanup and suppressions.
Reviewed changes
Copilot reviewed 97 out of 99 changed files in this pull request and generated 3 comments.
Show a summary per file
| File | Description |
|---|---|
src/utils/datetime/formatUtilities.stories.tsx |
Uses type-safe Storybook metadata. |
src/processes/logging/hooks/useAddTelemetryInitializer.ts |
Simplifies promise handling. |
src/modules/waste-container/assets/images/WasteCardSvg.stories.tsx |
Improves metadata typing. |
src/modules/waste-container/assets/images/WasteCardBluetoothSvg.stories.tsx |
Improves metadata typing. |
src/modules/waste-container/assets/images/AddWasteCardFigure.stories.tsx |
Improves metadata typing. |
src/modules/pride/components/ModuleIcon.stories.tsx |
Improves metadata typing. |
src/modules/parking/utils/refreshAccessToken.ts |
Suppresses an async-executor warning. |
src/modules/parking/components/ParkingIntroFigure.stories.tsx |
Improves metadata typing. |
src/modules/news/components/liveblog/LiveblogTag.stories.tsx |
Improves metadata typing. |
src/modules/contact/components/NewsletterSignup.stories.tsx |
Improves metadata typing. |
src/modules/contact/components/contact-options/ContactOptions.tsx |
Simplifies HTTPS detection. |
src/modules/construction-work/components/project/ProjectTimeline.stories.tsx |
Improves metadata typing. |
src/modules/city-pass/screens/CityPassBlockPass.screen.tsx |
Adds a React list key. |
src/modules/city-pass/components/error/FullScreenErrorFigure.stories.tsx |
Improves metadata typing. |
src/modules/city-pass/components/card-display/CityPassCard.stories.tsx |
Improves metadata typing. |
src/modules/boat-charging/screens/BoatChargingTermsAndConditions.screen.tsx |
Removes unused navigation props. |
src/modules/boat-charging/components/BoatChargingSocketStatusTag.stories.tsx |
Improves metadata typing. |
src/modules/address/hooks/useGetCoordinates.ts |
Suppresses an async-executor warning. |
src/components/ui/text/Title.stories.tsx |
Improves metadata typing. |
src/components/ui/text/Tag.stories.tsx |
Improves metadata typing. |
src/components/ui/text/Phrase.stories.tsx |
Improves metadata typing. |
src/components/ui/text/Paragraph.stories.tsx |
Improves metadata typing. |
src/components/ui/text/list/List.stories.tsx |
Improves metadata typing. |
src/components/ui/text/Link.stories.tsx |
Improves metadata typing. |
src/components/ui/text/HtmlContent.stories.tsx |
Improves metadata typing. |
src/components/ui/menus/PopUpMenu.stories.tsx |
Improves metadata typing. |
src/components/ui/media/ImageFallback.stories.tsx |
Improves metadata typing. |
src/components/ui/media/Image.stories.tsx |
Improves metadata typing. |
src/components/ui/media/Icon.stories.tsx |
Improves metadata typing. |
src/components/ui/media/FigureWithFacadesBackground.stories.tsx |
Improves metadata typing. |
src/components/ui/media/Figure.stories.tsx |
Improves metadata typing. |
src/components/ui/media/errors/WasteGuideFigure.stories.tsx |
Improves metadata typing. |
src/components/ui/media/errors/UpdateFigure.stories.tsx |
Improves metadata typing. |
src/components/ui/media/errors/ReportProblemFigure.stories.tsx |
Improves metadata typing. |
src/components/ui/media/errors/ModulesFigure.stories.tsx |
Improves metadata typing. |
src/components/ui/media/errors/ErrorFigure.stories.tsx |
Improves metadata typing. |
src/components/ui/media/errors/ConstructionWorkFigure.stories.tsx |
Improves metadata typing. |
src/components/ui/media/errors/ConstructionWorkDetailFigure.stories.tsx |
Improves metadata typing. |
src/components/ui/layout/Size.stories.tsx |
Improves metadata typing. |
src/components/ui/layout/Row.stories.tsx |
Improves metadata typing. |
src/components/ui/layout/Column.stories.tsx |
Improves metadata typing. |
src/components/ui/layout/Center.stories.tsx |
Improves metadata typing. |
src/components/ui/layout/AspectRatio.stories.tsx |
Improves metadata typing. |
src/components/ui/forms/Switch.stories.tsx |
Improves metadata typing. |
src/components/ui/forms/RadioGroup.stories.tsx |
Improves metadata typing. |
src/components/ui/forms/Options.stories.tsx |
Improves metadata typing. |
src/components/ui/forms/Label.stories.tsx |
Improves metadata typing. |
src/components/ui/forms/input/TextInput.stories.tsx |
Improves metadata typing. |
src/components/ui/forms/input/EmailTextInputField.stories.tsx |
Improves metadata typing. |
src/components/ui/forms/Checkbox.stories.tsx |
Corrects the action and metadata. |
src/components/ui/forms/CharactersLeftDisplay.stories.tsx |
Improves metadata typing. |
src/components/ui/feedback/Triangle.stories.tsx |
Improves metadata typing. |
src/components/ui/feedback/Trait.stories.tsx |
Improves metadata typing. |
src/components/ui/feedback/tooltip/Tooltip.stories.tsx |
Improves metadata typing. |
src/components/ui/feedback/SomethingWentWrong.stories.tsx |
Improves metadata typing. |
src/components/ui/feedback/PleaseWait.stories.tsx |
Improves metadata typing. |
src/components/ui/feedback/Notice.stories.tsx |
Improves metadata typing. |
src/components/ui/feedback/EmptyMessage.stories.tsx |
Improves metadata typing. |
src/components/ui/feedback/Badge.stories.tsx |
Improves metadata typing. |
src/components/ui/feedback/alert/Alert.stories.tsx |
Improves metadata typing. |
src/components/ui/containers/Box.stories.tsx |
Improves metadata typing. |
src/components/ui/containers/Accordion.stories.tsx |
Improves metadata and adds a key. |
src/components/ui/buttons/TopTaskButton.stories.tsx |
Improves metadata typing. |
src/components/ui/buttons/PressableBase.stories.tsx |
Improves metadata typing. |
src/components/ui/buttons/Pressable.stories.tsx |
Improves metadata typing. |
src/components/ui/buttons/PhoneHQButton.stories.tsx |
Removes an invalid action. |
src/components/ui/buttons/PhoneButton.stories.tsx |
Removes an invalid action. |
src/components/ui/buttons/NavigationButton.stories.tsx |
Improves metadata typing. |
src/components/ui/buttons/MoreInfoButton.stories.tsx |
Improves metadata typing. |
src/components/ui/buttons/IconButton.stories.tsx |
Improves metadata typing. |
src/components/ui/buttons/FollowButton.stories.tsx |
Improves metadata typing. |
src/components/ui/buttons/FauxButton.stories.tsx |
Removes an invalid action. |
src/components/ui/buttons/EmailButton.stories.tsx |
Removes an invalid action. |
src/components/ui/buttons/Button.stories.tsx |
Improves metadata typing. |
src/components/ui/buttons/ActionButton.stories.tsx |
Improves metadata typing. |
src/components/ui/animations/Fader.stories.tsx |
Improves metadata typing. |
src/components/features/NotificationToggleBox.tsx |
Cleans up prop declarations. |
src/components/features/NotificationToggleBox.stories.tsx |
Supplies required story arguments. |
src/components/features/map/marker/SelectedPin.stories.tsx |
Improves metadata typing. |
src/components/features/map/marker/Pin.stories.tsx |
Improves metadata typing. |
src/components/features/map/marker/MarkerBase.stories.tsx |
Improves metadata typing. |
src/components/features/map/marker/ElectionsCrowdUnknownPin.stories.tsx |
Improves metadata typing. |
src/components/features/map/marker/ElectionsCrowdMediumPin.stories.tsx |
Improves metadata typing. |
src/components/features/map/marker/ElectionsCrowdCalmPin.stories.tsx |
Improves metadata typing. |
src/components/features/map/marker/ElectionsCrowdBusyPin.stories.tsx |
Improves metadata typing. |
src/components/features/map/marker/DistinctPin.stories.tsx |
Improves metadata typing. |
src/components/features/map/marker/CustomMarkerIcon.stories.tsx |
Improves metadata and adds keys. |
src/components/features/map/marker/CustomMarker.stories.tsx |
Improves metadata typing. |
src/components/features/EmptyList.stories.tsx |
Improves metadata typing. |
src/app/navigation/RootStackNavigator.tsx |
Suppresses an intentional children-prop warning. |
react-native-salesforce-messaging-in-app/src/types.ts |
Removes an empty placeholder file. |
package.json |
Integrates Oxlint into lint scripts. |
package-lock.json |
Locks Oxlint and native bindings. |
oxlint.utils.mts |
Adds plugin configuration extraction. |
oxlint.config.mts |
Defines Oxlint rules and overrides. |
index.js |
Suppresses an entry-point import warning. |
eslint-plugin-amsterdam/index.mts |
Exposes the plugin to Oxlint. |
.vscode/settings.json |
Enables Oxlint editor fixes. |
.lintstagedrc.js |
Runs Oxlint on staged source files. |
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
| dispatch: ReduxDispatch, | ||
| state: RootState, | ||
| ): Promise<string> => | ||
| // oxlint-disable-next-line no-async-promise-executor |
There was a problem hiding this comment.
Ik ben op zich wel benieuwd naar de reden waarom we dit toch surpressen. Zou je dit kunnen uitleggen (na mijn vakantie)?
| export {rules} | ||
| const meta = {name: 'amsterdam'} | ||
|
|
||
| export {rules, meta} |
There was a problem hiding this comment.
Hebben we zowel een default export en een named export nodig?
|
|
||
| return ( | ||
| <Stack.Screen | ||
| // oxlint-disable-next-line react/no-children-prop |
There was a problem hiding this comment.
Hier zouden de children ook gewoon als children worden neergezet ipv als prop, dan hoeft deze disable ook niet.
| 'Ga akkoord gaan met de voorwaarden om verder te gaan.' | ||
|
|
||
| export const BoatChargingTermsAndConditionsScreen = ({}: Props) => { | ||
| export const BoatChargingTermsAndConditionsScreen = () => { |
There was a problem hiding this comment.
Goed dat we besloten hebben om lege props in screens weg te laten want oxllint had ons overruled
There was a problem hiding this comment.
Tenzij je dit handmatig hebt gedaan
There was a problem hiding this comment.
oxlint gaf dit aan :)
| items={[ | ||
| 'Is je pas gestolen of kwijt? Blokkeer de pas om misbruik te voorkomen.', | ||
| <Phrase> | ||
| <Phrase key="CityPassBlockPassPassFoundPhrase"> |
| dispatch: ReduxDispatch, | ||
| state: RootState, | ||
| ): Promise<string> => | ||
| // oxlint-disable-next-line no-async-promise-executor |
There was a problem hiding this comment.
Ik ben op zich wel benieuwd naar de reden waarom we dit toch surpressen. Zou je dit kunnen uitleggen (na mijn vakantie)?
| {} as Record<string, boolean>, | ||
| ) | ||
|
|
||
| void Promise.all([isEmulatorDeviceInfo()]).then(([isEmulator]) => { |
There was a problem hiding this comment.
Grappig dat hier een Promise.all werd gebruikt
| 'recommended-legacy', | ||
| ) | ||
|
|
||
| // eslint-disable-next-line import-x/no-default-export |
Changes
Pull request overview
Adds Oxlint alongside ESLint and resolves newly surfaced lint findings.
Changes:
Test instructions
Other notes
GitHub Copilot was used in writing the code