@@ -45,6 +45,33 @@ def get_command(self, command_name: str) -> Callable:
45
45
)
46
46
return command_func
47
47
48
+ def get_state (
49
+ self , state_manager : StateManager , state_addr : StateAddress
50
+ ) -> State | None :
51
+ """Get the state of this component."""
52
+ return state_manager .get_component_state (state_addr )
53
+
54
+ def get_or_create_state (
55
+ self ,
56
+ state_manager : StateManager ,
57
+ state_addr : StateAddress ,
58
+ request : HttpRequest ,
59
+ component_kwargs : dict [str , Any ],
60
+ ) -> State :
61
+ """Internal function to get or create the state of this component.
62
+
63
+ We used it to override the function for the stateless component
64
+ where we don't need to store the state in Redis.
65
+ """
66
+ return state_manager .get_or_create_component_state (
67
+ request ,
68
+ state_addr ,
69
+ self .init_state ,
70
+ self .update_state ,
71
+ self .outer_context ,
72
+ component_kwargs ,
73
+ )
74
+
48
75
def get_context_data (
49
76
self ,
50
77
own_id : str = DEFAULT_OWN_ID ,
@@ -67,15 +94,9 @@ def get_context_data(
67
94
component_id = component_id ,
68
95
)
69
96
state_manager = get_state_manager ()
70
- state = state_manager .get_or_create_component_state (
71
- request ,
72
- state_addr ,
73
- self .init_state ,
74
- self .update_state ,
75
- self .outer_context ,
76
- component_kwargs ,
97
+ state = self .get_or_create_state (
98
+ state_manager , state_addr , request , component_kwargs
77
99
)
78
-
79
100
extra_context_request : ExtraContextRequest [State ] = ExtraContextRequest (
80
101
request = request ,
81
102
state = state ,
@@ -170,6 +191,20 @@ class StatelessLiveComponent(LiveComponent[StatelessModel]):
170
191
extra_context_request contains the state_manager and state_addr.
171
192
"""
172
193
194
+ def get_state (
195
+ self , state_manager : StateManager , state_addr : StateAddress
196
+ ) -> StatelessModel | None :
197
+ return StatelessModel ()
198
+
199
+ def get_or_create_state (
200
+ self ,
201
+ state_manager : StateManager ,
202
+ state_addr : StateAddress ,
203
+ request : HttpRequest ,
204
+ component_kwargs : dict [str , Any ],
205
+ ) -> StatelessModel :
206
+ return StatelessModel ()
207
+
173
208
def init_state (self , context : InitStateContext ) -> StatelessModel :
174
209
return StatelessModel ()
175
210
0 commit comments