From 4230cbcced94d3a6aed2b396c92d9105c04d8da6 Mon Sep 17 00:00:00 2001 From: Feodor Fitsner Date: Fri, 12 May 2023 10:19:00 -0700 Subject: [PATCH] Fix button styles crashing UI Fix #1390 --- client/lib/main.dart | 6 +----- package/lib/src/utils/material_state.dart | 2 -- sdk/python/packages/flet-core/src/flet_core/control.py | 5 +++++ .../packages/flet-core/src/flet_core/elevated_button.py | 3 +++ sdk/python/packages/flet-core/src/flet_core/icon_button.py | 3 +++ .../packages/flet-core/src/flet_core/outlined_button.py | 3 +++ sdk/python/packages/flet-core/src/flet_core/text_button.py | 3 +++ 7 files changed, 18 insertions(+), 7 deletions(-) diff --git a/client/lib/main.dart b/client/lib/main.dart index a67b92b14..ac1283d5e 100644 --- a/client/lib/main.dart +++ b/client/lib/main.dart @@ -20,11 +20,7 @@ void main([List? args]) async { //debugPrint("Uri.base: ${Uri.base}"); if (kDebugMode) { - if (kIsWeb) { - pageUrl = "http://localhost:8550"; - } else { - pageUrl = "tcp://localhost:8550"; - } + pageUrl = "http://localhost:8550"; } if (kIsWeb) { diff --git a/package/lib/src/utils/material_state.dart b/package/lib/src/utils/material_state.dart index 2802fd35a..e5392c589 100644 --- a/package/lib/src/utils/material_state.dart +++ b/package/lib/src/utils/material_state.dart @@ -2,14 +2,12 @@ import 'package:flutter/material.dart'; MaterialStateProperty? getMaterialStateProperty(dynamic jsonDictValue, T Function(dynamic) converterFromJson, T defaultValue) { - debugPrint("jsonDictValue: $jsonDictValue"); if (jsonDictValue == null) { return null; } var j = jsonDictValue; if (j is! Map) { j = {"": j}; - debugPrint("jsonDictValue DICT: $j"); } return MaterialStateFromJSON(j, converterFromJson, defaultValue); } diff --git a/sdk/python/packages/flet-core/src/flet_core/control.py b/sdk/python/packages/flet-core/src/flet_core/control.py index 5667c8586..38187c150 100644 --- a/sdk/python/packages/flet-core/src/flet_core/control.py +++ b/sdk/python/packages/flet-core/src/flet_core/control.py @@ -145,6 +145,11 @@ def _convert_attr_json(self, value): else None ) + def _wrap_attr_dict(self, value): + if value is None or isinstance(value, Dict): + return value + return {"": value} + def __str__(self): attrs = {} for k, v in self.__attrs.items(): diff --git a/sdk/python/packages/flet-core/src/flet_core/elevated_button.py b/sdk/python/packages/flet-core/src/flet_core/elevated_button.py index 5ae1b42d2..818f93f0e 100644 --- a/sdk/python/packages/flet-core/src/flet_core/elevated_button.py +++ b/sdk/python/packages/flet-core/src/flet_core/elevated_button.py @@ -154,6 +154,9 @@ def _before_build_command(self): self.__style.bgcolor = self.__bgcolor if self.__style.elevation != self.__elevation: self.__style.elevation = self.__elevation + if self.__style is not None: + self.__style.side = self._wrap_attr_dict(self.__style.side) + self.__style.shape = self._wrap_attr_dict(self.__style.shape) self._set_attr_json("style", self.__style) def _get_children(self): diff --git a/sdk/python/packages/flet-core/src/flet_core/icon_button.py b/sdk/python/packages/flet-core/src/flet_core/icon_button.py index 0e23b0272..6a799fb80 100644 --- a/sdk/python/packages/flet-core/src/flet_core/icon_button.py +++ b/sdk/python/packages/flet-core/src/flet_core/icon_button.py @@ -151,6 +151,9 @@ def _get_control_name(self): def _before_build_command(self): super()._before_build_command() + if self.__style is not None: + self.__style.side = self._wrap_attr_dict(self.__style.side) + self.__style.shape = self._wrap_attr_dict(self.__style.shape) self._set_attr_json("style", self.__style) def _get_children(self): diff --git a/sdk/python/packages/flet-core/src/flet_core/outlined_button.py b/sdk/python/packages/flet-core/src/flet_core/outlined_button.py index cc60453c9..5e423b98e 100644 --- a/sdk/python/packages/flet-core/src/flet_core/outlined_button.py +++ b/sdk/python/packages/flet-core/src/flet_core/outlined_button.py @@ -131,6 +131,9 @@ def _get_control_name(self): def _before_build_command(self): super()._before_build_command() + if self.__style is not None: + self.__style.side = self._wrap_attr_dict(self.__style.side) + self.__style.shape = self._wrap_attr_dict(self.__style.shape) self._set_attr_json("style", self.__style) def _get_children(self): diff --git a/sdk/python/packages/flet-core/src/flet_core/text_button.py b/sdk/python/packages/flet-core/src/flet_core/text_button.py index 326e3992b..767f3b4bf 100644 --- a/sdk/python/packages/flet-core/src/flet_core/text_button.py +++ b/sdk/python/packages/flet-core/src/flet_core/text_button.py @@ -131,6 +131,9 @@ def _get_control_name(self): def _before_build_command(self): super()._before_build_command() + if self.__style is not None: + self.__style.side = self._wrap_attr_dict(self.__style.side) + self.__style.shape = self._wrap_attr_dict(self.__style.shape) self._set_attr_json("style", self.__style) def _get_children(self):