Lint against strings without wrapping <Text> (#3398)

* Add a rudimentary rule

* Get the rule passing

* Support special-casing text props

* More tests
This commit is contained in:
dan 2024-04-04 17:32:50 +01:00 committed by GitHub
parent 8e393b16f5
commit 4cc57f4bfd
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
6 changed files with 579 additions and 0 deletions

View file

@ -1,3 +1,5 @@
const bskyEslint = require('./eslint')
module.exports = {
root: true,
extends: [
@ -13,12 +15,43 @@ module.exports = {
'react',
'lingui',
'simple-import-sort',
'bsky-internal',
],
rules: {
// Temporary until https://github.com/facebook/react-native/pull/43756 gets into a release.
'prettier/prettier': 0,
'react/no-unescaped-entities': 0,
'react-native/no-inline-styles': 0,
'bsky-internal/avoid-unwrapped-text': [
'error',
{
impliedTextComponents: [
'Button', // TODO: Not always safe.
'ButtonText',
'DateField.Label',
'Description',
'H1',
'H2',
'H3',
'H4',
'H5',
'H6',
'InlineLink',
'Label',
'P',
'Prompt.Title',
'Prompt.Description',
'Prompt.Cancel', // TODO: Not always safe.
'Prompt.Action', // TODO: Not always safe.
'TextField.Label',
'TextField.Suffix',
'Title',
'Toggle.Label',
'ToggleButton.Button', // TODO: Not always safe.
],
impliedTextProps: ['FormContainer title'],
},
],
'simple-import-sort/imports': [
'warn',
{