Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
View Source
var NoUnusedStateRule = rule.Rule{ Name: "react/no-unused-state", Run: func(ctx rule.RuleContext, options any) rule.RuleListeners { pragma := reactutil.GetReactPragma(ctx.Settings) createClass := reactutil.GetReactCreateClass(ctx.Settings) processComponent := func(ci *classInfo) { if ci.abandoned { return } for _, field := range ci.stateFields { if !ci.usedFields[field.name] { ctx.ReportNode(field.node, rule.RuleMessage{ Id: "unusedStateField", Description: fmt.Sprintf("Unused state field: '%s'", field.name), }) } } } return rule.RuleListeners{ ast.KindClassDeclaration: func(node *ast.Node) { if !reactutil.ExtendsReactComponent(node, pragma) { return } ci := newClassInfo(ctx.TypeChecker) walkES6Component(ci, node) processComponent(ci) }, ast.KindClassExpression: func(node *ast.Node) { if !reactutil.ExtendsReactComponent(node, pragma) { return } ci := newClassInfo(ctx.TypeChecker) walkES6Component(ci, node) processComponent(ci) }, ast.KindCallExpression: func(node *ast.Node) { call := node.AsCallExpression() if !reactutil.IsCreateClassCall(call, pragma, createClass) { return } if call.Arguments == nil || len(call.Arguments.Nodes) == 0 { return } arg := ast.SkipParentheses(call.Arguments.Nodes[0]) if arg.Kind != ast.KindObjectLiteralExpression { return } ci := newClassInfo(ctx.TypeChecker) walkES5Component(ci, arg) processComponent(ci) }, } }, }
Functions ¶
This section is empty.
Types ¶
This section is empty.
Click to show internal directories.
Click to hide internal directories.