Skip to content

Commit d669577

Browse files
Fix MaterialState error in ButtonStyle (#689)
* Fix MaterialState error in ButtonStyle Fix #685 * Fix ButtonStyle typings
1 parent 95e006d commit d669577

File tree

2 files changed

+24
-11
lines changed

2 files changed

+24
-11
lines changed

sdk/python/flet/buttons.py

Lines changed: 19 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -46,19 +46,29 @@ class CountinuosRectangleBorder(OutlinedBorder):
4646

4747
@dataclasses.dataclass
4848
class ButtonStyle:
49-
color: Union[None, str, Dict[MaterialState, str]] = field(default=None)
50-
bgcolor: Union[None, str, Dict[MaterialState, str]] = field(default=None)
51-
overlay_color: Union[None, str, Dict[MaterialState, str]] = field(default=None)
52-
shadow_color: Union[None, str, Dict[MaterialState, str]] = field(default=None)
53-
surface_tint_color: Union[None, str, Dict[MaterialState, str]] = field(default=None)
54-
elevation: Union[None, float, int, Dict[MaterialState, Union[float, int]]] = field(
49+
color: Union[None, str, Dict[Union[str, MaterialState], str]] = field(default=None)
50+
bgcolor: Union[None, str, Dict[Union[str, MaterialState], str]] = field(
5551
default=None
5652
)
53+
overlay_color: Union[None, str, Dict[Union[str, MaterialState], str]] = field(
54+
default=None
55+
)
56+
shadow_color: Union[None, str, Dict[Union[str, MaterialState], str]] = field(
57+
default=None
58+
)
59+
surface_tint_color: Union[None, str, Dict[Union[str, MaterialState], str]] = field(
60+
default=None
61+
)
62+
elevation: Union[
63+
None, float, int, Dict[Union[str, MaterialState], Union[float, int]]
64+
] = field(default=None)
5765
animation_duration: Optional[int] = field(default=None)
58-
padding: Union[PaddingValue, Dict[MaterialState, PaddingValue]] = field(
66+
padding: Union[PaddingValue, Dict[Union[str, MaterialState], PaddingValue]] = field(
5967
default=None
6068
)
61-
side: Union[None, BorderSide, Dict[MaterialState, BorderSide]] = field(default=None)
62-
shape: Union[None, OutlinedBorder, Dict[MaterialState, OutlinedBorder]] = field(
69+
side: Union[None, BorderSide, Dict[Union[str, MaterialState], BorderSide]] = field(
6370
default=None
6471
)
72+
shape: Union[
73+
None, OutlinedBorder, Dict[Union[str, MaterialState], OutlinedBorder]
74+
] = field(default=None)

sdk/python/flet/embed_json_encoder.py

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -39,8 +39,11 @@ def default(self, obj):
3939
}
4040
elif isinstance(obj, ButtonStyle):
4141
for k, v in obj.__dict__.items():
42-
if v is not None and not isinstance(v, Dict):
43-
obj.__dict__[k] = {"": v}
42+
if v is not None:
43+
if not isinstance(v, Dict):
44+
obj.__dict__[k] = {"": v}
45+
if k != "animation_duration":
46+
obj.__dict__[k] = self._cleanup_dict(obj.__dict__[k])
4447
return self._cleanup_dict(obj.__dict__)
4548
elif isinstance(obj, object):
4649
return self._cleanup_dict(obj.__dict__)

0 commit comments

Comments
 (0)