fix set value logix for client state (#3966)
This commit is contained in:
parent
61332fdba1
commit
ee3b0e614c
@ -3,6 +3,7 @@
|
|||||||
from __future__ import annotations
|
from __future__ import annotations
|
||||||
|
|
||||||
import dataclasses
|
import dataclasses
|
||||||
|
import re
|
||||||
import sys
|
import sys
|
||||||
from typing import Any, Callable, Union
|
from typing import Any, Callable, Union
|
||||||
|
|
||||||
@ -174,15 +175,15 @@ class ClientStateVar(Var):
|
|||||||
else self._setter_name
|
else self._setter_name
|
||||||
)
|
)
|
||||||
if value is not NoValue:
|
if value is not NoValue:
|
||||||
import re
|
|
||||||
|
|
||||||
# This is a hack to make it work like an EventSpec taking an arg
|
# This is a hack to make it work like an EventSpec taking an arg
|
||||||
value_str = str(LiteralVar.create(value))
|
value_str = str(LiteralVar.create(value))
|
||||||
|
|
||||||
# remove patterns of ["*"] from the value_str using regex
|
if value_str.startswith("_"):
|
||||||
arg = re.sub(r"\[\".*\"\]", "", value_str)
|
# remove patterns of ["*"] from the value_str using regex
|
||||||
|
arg = re.sub(r"\[\".*\"\]", "", value_str)
|
||||||
setter = f"({arg}) => {setter}({str(value)})"
|
setter = f"(({arg}) => {setter}({value_str}))"
|
||||||
|
else:
|
||||||
|
setter = f"(() => {setter}({value_str}))"
|
||||||
return Var(
|
return Var(
|
||||||
_js_expr=setter,
|
_js_expr=setter,
|
||||||
_var_data=VarData(imports=_refs_import if self._global_ref else {}),
|
_var_data=VarData(imports=_refs_import if self._global_ref else {}),
|
||||||
|
Loading…
Reference in New Issue
Block a user