website refactor
This commit is contained in:
@@ -35,11 +35,18 @@ module.exports = {
|
||||
|
||||
if (!isInUi) return {};
|
||||
|
||||
let hasStateHooks = false;
|
||||
let hasEffectHooks = false;
|
||||
let hasContext = false;
|
||||
|
||||
return {
|
||||
// Check for 'use client' directive
|
||||
ExpressionStatement(node) {
|
||||
if (node.expression.type === 'Literal' &&
|
||||
node.expression.value === 'use client') {
|
||||
context.report({
|
||||
node,
|
||||
messageId: 'noStateInUi',
|
||||
});
|
||||
}
|
||||
},
|
||||
|
||||
// Check for state hooks
|
||||
CallExpression(node) {
|
||||
if (node.callee.type !== 'Identifier') return;
|
||||
@@ -48,7 +55,6 @@ module.exports = {
|
||||
|
||||
// State management hooks
|
||||
if (['useState', 'useReducer', 'useRef'].includes(hookName)) {
|
||||
hasStateHooks = true;
|
||||
context.report({
|
||||
node,
|
||||
messageId: 'noStateInUi',
|
||||
@@ -57,7 +63,6 @@ module.exports = {
|
||||
|
||||
// Effect hooks
|
||||
if (['useEffect', 'useLayoutEffect', 'useInsertionEffect'].includes(hookName)) {
|
||||
hasEffectHooks = true;
|
||||
context.report({
|
||||
node,
|
||||
messageId: 'noSideEffects',
|
||||
@@ -66,7 +71,6 @@ module.exports = {
|
||||
|
||||
// Context (can introduce state)
|
||||
if (hookName === 'useContext') {
|
||||
hasContext = true;
|
||||
context.report({
|
||||
node,
|
||||
messageId: 'noStateInUi',
|
||||
@@ -76,8 +80,8 @@ module.exports = {
|
||||
|
||||
// Check for class components with state
|
||||
ClassDeclaration(node) {
|
||||
if (node.superClass &&
|
||||
node.superClass.type === 'Identifier' &&
|
||||
if (node.superClass &&
|
||||
node.superClass.type === 'Identifier' &&
|
||||
node.superClass.name === 'Component') {
|
||||
context.report({
|
||||
node,
|
||||
@@ -90,7 +94,7 @@ module.exports = {
|
||||
AssignmentExpression(node) {
|
||||
if (node.left.type === 'MemberExpression' &&
|
||||
node.left.property.type === 'Identifier' &&
|
||||
(node.left.property.name === 'state' ||
|
||||
(node.left.property.name === 'state' ||
|
||||
node.left.property.name === 'setState')) {
|
||||
context.report({
|
||||
node,
|
||||
|
||||
Reference in New Issue
Block a user