@@ -62,23 +62,22 @@ def _set_property_from_data(
6262 setattr (component_or_field , name , value )
6363
6464
65- def _set_property_from_payload (
66- component : UnicornView , payload : Dict , data : Dict = {}
65+ def _set_property_value (
66+ component : UnicornView , property_name : str , property_value : Any , data : Dict = {}
6767) -> None :
6868 """
69- Sets properties on the component based on the payload .
69+ Sets properties on the component.
7070 Also updates the data dictionary which gets set back as part of the payload.
7171
7272 Args:
7373 param component: Component to set attributes on.
74- param payload: Dictionary that comes with request.
74+ param property_name: Name of the property.
75+ param property_value: Value to set on the property.
7576 param data: Dictionary that gets sent back with the response. Defaults to {}.
7677 """
7778
78- property_name = payload .get ("name" )
79- assert property_name is not None , "Payload name is required"
80- property_value = payload .get ("value" )
81- assert property_value is not None , "Payload value is required"
79+ assert property_name is not None , "Property name is required"
80+ assert property_value is not None , "Property value is required"
8281
8382 component .updating (property_name , property_value )
8483
@@ -258,8 +257,8 @@ def message(request: HttpRequest, component_name: str = None) -> JsonResponse:
258257 original_data = component_request .data .copy ()
259258
260259 # Set component properties based on request data
261- for (name , value ) in component_request .data .items ():
262- _set_property_from_data (component , name , value )
260+ for (property_name , property_value ) in component_request .data .items ():
261+ _set_property_from_data (component , property_name , property_value )
263262 component .hydrate ()
264263
265264 is_reset_called = False
@@ -269,7 +268,11 @@ def message(request: HttpRequest, component_name: str = None) -> JsonResponse:
269268 payload = action .get ("payload" , {})
270269
271270 if action_type == "syncInput" :
272- _set_property_from_payload (component , payload , component_request .data )
271+ property_name = payload .get ("name" )
272+ property_value = payload .get ("value" )
273+ _set_property_value (
274+ component , property_name , property_value , component_request .data
275+ )
273276 elif action_type == "dbInput" :
274277 model = payload .get ("model" )
275278 db = payload .get ("db" , {})
@@ -337,12 +340,10 @@ def message(request: HttpRequest, component_name: str = None) -> JsonResponse:
337340 pass
338341
339342 if setter_method :
340- # Create a fake "payload" so that nested properties will get set as expected
341343 property_name = list (setter_method .keys ())[0 ]
342344 property_value = setter_method [property_name ]
343- payload = {"name" : property_name , "value" : property_value }
344345
345- _set_property_from_payload (component , payload )
346+ _set_property_value (component , property_name , property_value )
346347 else :
347348 (method_name , params ) = parse_call_method_name (call_method_name )
348349
@@ -368,12 +369,10 @@ def message(request: HttpRequest, component_name: str = None) -> JsonResponse:
368369 is_reset_called = True
369370 elif method_name == "toggle" :
370371 for property_name in params :
371- # Create a fake "payload" so that nested properties will get set as expected
372372 property_value = _get_property_value (component , property_name )
373373 property_value = not property_value
374- payload = {"name" : property_name , "value" : property_value }
375374
376- _set_property_from_payload (component , payload )
375+ _set_property_value (component , property_name , property_value )
377376 elif method_name == "validate" :
378377 # Handle the validate special action
379378 validate_all_fields = True
0 commit comments