Skip to content
This repository was archived by the owner on Jan 15, 2025. It is now read-only.

Commit 353485f

Browse files
committed
rename element to component
1 parent f55cb6d commit 353485f

File tree

4 files changed

+31
-31
lines changed

4 files changed

+31
-31
lines changed

flake8_idom_hooks/exhaustive_deps.py

+10-10
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import ast
22
from typing import Optional, Union, Set
33

4-
from .utils import is_hook_def, is_element_def, ErrorVisitor, set_current
4+
from .utils import is_hook_def, is_component_def, ErrorVisitor, set_current
55

66

77
HOOKS_WITH_DEPS = ("use_effect", "use_callback", "use_memo")
@@ -11,13 +11,13 @@ class ExhaustiveDepsVisitor(ErrorVisitor):
1111
def __init__(self) -> None:
1212
super().__init__()
1313
self._current_function: Optional[ast.FunctionDef] = None
14-
self._current_hook_or_element: Optional[ast.FunctionDef] = None
14+
self._current_hook_or_component: Optional[ast.FunctionDef] = None
1515

1616
def visit_FunctionDef(self, node: ast.FunctionDef) -> None:
17-
if is_hook_def(node) or is_element_def(node):
18-
with set_current(self, hook_or_element=node):
17+
if is_hook_def(node) or is_component_def(node):
18+
with set_current(self, hook_or_component=node):
1919
self.generic_visit(node)
20-
elif self._current_hook_or_element is not None:
20+
elif self._current_hook_or_component is not None:
2121
for deco in node.decorator_list:
2222
if not isinstance(deco, ast.Call):
2323
continue
@@ -36,15 +36,15 @@ def visit_FunctionDef(self, node: ast.FunctionDef) -> None:
3636
for kw in deco.keywords:
3737
if kw.arg == "args":
3838
self._check_hook_dependency_list_is_exhaustive(
39-
self._current_hook_or_element,
39+
self._current_hook_or_component,
4040
called_func_name,
4141
node,
4242
kw.value,
4343
)
4444
break
4545

4646
def visit_Call(self, node: ast.Call) -> None:
47-
if self._current_hook_or_element is None:
47+
if self._current_hook_or_component is None:
4848
return
4949

5050
called_func = node.func
@@ -75,15 +75,15 @@ def visit_Call(self, node: ast.Call) -> None:
7575

7676
if isinstance(func, ast.Lambda):
7777
self._check_hook_dependency_list_is_exhaustive(
78-
self._current_hook_or_element,
78+
self._current_hook_or_component,
7979
called_func_name,
8080
func,
8181
args,
8282
)
8383

8484
def _check_hook_dependency_list_is_exhaustive(
8585
self,
86-
current_hook_or_element: ast.FunctionDef,
86+
current_hook_or_component: ast.FunctionDef,
8787
hook_name: str,
8888
func: Union[ast.FunctionDef, ast.Lambda],
8989
dependency_expr: Optional[ast.expr],
@@ -98,7 +98,7 @@ def _check_hook_dependency_list_is_exhaustive(
9898
func_name = "lambda" if isinstance(func, ast.Lambda) else func.name
9999

100100
top_level_variable_finder = _TopLevelVariableFinder()
101-
top_level_variable_finder.visit(current_hook_or_element)
101+
top_level_variable_finder.visit(current_hook_or_component)
102102
variables_defined_in_scope = top_level_variable_finder.variable_names
103103

104104
missing_name_finder = _MissingNameFinder(

flake8_idom_hooks/rules_of_hooks.py

+7-7
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33

44
from .utils import (
55
is_hook_def,
6-
is_element_def,
6+
is_component_def,
77
ErrorVisitor,
88
is_hook_function_name,
99
set_current,
@@ -14,7 +14,7 @@ class RulesOfHooksVisitor(ErrorVisitor):
1414
def __init__(self) -> None:
1515
super().__init__()
1616
self._current_hook: Optional[ast.FunctionDef] = None
17-
self._current_element: Optional[ast.FunctionDef] = None
17+
self._current_component: Optional[ast.FunctionDef] = None
1818
self._current_function: Optional[ast.FunctionDef] = None
1919
self._current_call: Optional[ast.Call] = None
2020
self._current_conditional: Union[None, ast.If, ast.IfExp, ast.Try] = None
@@ -32,12 +32,12 @@ def visit_FunctionDef(self, node: ast.FunctionDef) -> None:
3232
loop=None,
3333
):
3434
self.generic_visit(node)
35-
elif is_element_def(node):
35+
elif is_component_def(node):
3636
with set_current(
3737
self,
38-
element=node,
38+
component=node,
3939
function=node,
40-
# we need to reset these before enter new element
40+
# we need to reset these before visiting a new component
4141
conditional=None,
4242
loop=None,
4343
):
@@ -83,8 +83,8 @@ def _check_if_propper_hook_usage(
8383
if not is_hook_function_name(name):
8484
return None
8585

86-
if self._current_hook is None and self._current_element is None:
87-
msg = f"hook {name!r} used outside element or hook definition"
86+
if self._current_hook is None and self._current_component is None:
87+
msg = f"hook {name!r} used outside component or hook definition"
8888
self._save_error(101, node, msg)
8989

9090
loop_or_conditional = self._current_conditional or self._current_loop

flake8_idom_hooks/utils.py

+3-3
Original file line numberDiff line numberDiff line change
@@ -27,11 +27,11 @@ def is_hook_def(node: ast.FunctionDef) -> bool:
2727
return is_hook_function_name(node.name)
2828

2929

30-
def is_element_def(node: ast.FunctionDef) -> bool:
31-
return is_element_function_name(node.name)
30+
def is_component_def(node: ast.FunctionDef) -> bool:
31+
return is_component_function_name(node.name)
3232

3333

34-
def is_element_function_name(name: str) -> bool:
34+
def is_component_function_name(name: str) -> bool:
3535
return name[0].upper() == name[0] and "_" not in name
3636

3737

tests/hook_usage_test_cases.py

+11-11
Original file line numberDiff line numberDiff line change
@@ -82,15 +82,15 @@ def use_state():
8282

8383

8484
def generic_function():
85-
# error: ROH101 hook 'use_state' used outside element or hook definition
85+
# error: ROH101 hook 'use_state' used outside component or hook definition
8686
use_state
8787

8888

8989
def use_state():
9090
use_other
9191

9292

93-
def Element():
93+
def Component():
9494
use_state
9595

9696

@@ -101,12 +101,12 @@ def use_custom_hook():
101101
# ok since 'use_state' is not the last attribute
102102
module.use_state.other
103103

104-
# error: ROH101 hook 'use_effect' used outside element or hook definition
104+
# error: ROH101 hook 'use_effect' used outside component or hook definition
105105
module.use_effect()
106106

107107

108-
def not_hook_or_element():
109-
# error: ROH101 hook 'use_state' used outside element or hook definition
108+
def not_hook_or_component():
109+
# error: ROH101 hook 'use_state' used outside component or hook definition
110110
use_state
111111

112112

@@ -205,24 +205,24 @@ def impropper_usage_of_effect_as_decorator():
205205
)
206206

207207

208-
def make_element():
209-
# nested element definitions are ok.
210-
def NestedElement():
208+
def make_component():
209+
# nested component definitions are ok.
210+
def NestedComponent():
211211
use_state
212212

213213

214214
some_global_variable
215215

216216

217-
def Element():
217+
def Component():
218218
# referencing a global variable is OK
219219
use_effect(lambda: some_global_variable, [])
220220

221221

222222
if True:
223223

224-
def Element():
225-
# this is ok since the conditional is outside the element
224+
def Component():
225+
# this is ok since the conditional is outside the component
226226
use_state
227227

228228
def use_other():

0 commit comments

Comments
 (0)