Skip to content

Commit f1c6c32

Browse files
FeodorFitsnerndonkoHenrisourcery-ai[bot]
authored
Fix parseFloatingActionButtonLocation() to work on desktop (#3496)
* Fix parseFloatingActionButtonLocation to work on desktop Fix #3485 * Update changelog * make fabLocations const Co-authored-by: sourcery-ai[bot] <58596630+sourcery-ai[bot]@users.noreply.github.com> --------- Co-authored-by: TheEthicalBoy <[email protected]> Co-authored-by: sourcery-ai[bot] <58596630+sourcery-ai[bot]@users.noreply.github.com>
1 parent b0da0e7 commit f1c6c32

File tree

3 files changed

+24
-25
lines changed

3 files changed

+24
-25
lines changed

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
# 0.23.1
44

5+
* FIX: Fix parseFloatingActionButtonLocation() to work on desktop ([#3496](https://github.com/flet-dev/flet/issues/3496))
56
* FIX: Flet 0.23 crashes on Ubuntu 22.04 ([#3495](https://github.com/flet-dev/flet/issues/3495))
67
* FIX: View.floating_action_button_location: conditionally use _set_attr.
78
* FIX: Import `ParamSpec` from `typing` for Python >3.10.

packages/flet/CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
# 0.23.1
22

3+
* FIX: Fix parseFloatingActionButtonLocation() to work on desktop ([#3496](https://github.com/flet-dev/flet/issues/3496))
34
* FIX: Flet 0.23 crashes on Ubuntu 22.04 ([#3495](https://github.com/flet-dev/flet/issues/3495))
45
* FIX: View.floating_action_button_location: conditionally use _set_attr.
56
* FIX: Import `ParamSpec` from `typing` for Python >3.10.

packages/flet/lib/src/utils/buttons.dart

Lines changed: 22 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -83,26 +83,26 @@ ButtonStyle? buttonStyleFromJSON(ThemeData theme, Map<String, dynamic>? json,
8383

8484
FloatingActionButtonLocation parseFloatingActionButtonLocation(
8585
Control control, String propName, FloatingActionButtonLocation defValue) {
86-
List<FloatingActionButtonLocation> fabLocations = [
87-
FloatingActionButtonLocation.centerDocked,
88-
FloatingActionButtonLocation.centerFloat,
89-
FloatingActionButtonLocation.centerTop,
90-
FloatingActionButtonLocation.endContained,
91-
FloatingActionButtonLocation.endDocked,
92-
FloatingActionButtonLocation.endFloat,
93-
FloatingActionButtonLocation.endTop,
94-
FloatingActionButtonLocation.miniCenterDocked,
95-
FloatingActionButtonLocation.miniCenterFloat,
96-
FloatingActionButtonLocation.miniCenterTop,
97-
FloatingActionButtonLocation.miniEndFloat,
98-
FloatingActionButtonLocation.miniEndTop,
99-
FloatingActionButtonLocation.miniStartDocked,
100-
FloatingActionButtonLocation.miniStartFloat,
101-
FloatingActionButtonLocation.miniStartTop,
102-
FloatingActionButtonLocation.startDocked,
103-
FloatingActionButtonLocation.startFloat,
104-
FloatingActionButtonLocation.startTop
105-
];
86+
const Map<String, FloatingActionButtonLocation> fabLocations = {
87+
"centerdocked": FloatingActionButtonLocation.centerDocked,
88+
"centerfloat": FloatingActionButtonLocation.centerFloat,
89+
"centertop": FloatingActionButtonLocation.centerTop,
90+
"endcontained": FloatingActionButtonLocation.endContained,
91+
"enddocked": FloatingActionButtonLocation.endDocked,
92+
"endfloat": FloatingActionButtonLocation.endFloat,
93+
"endtop": FloatingActionButtonLocation.endTop,
94+
"minicenterdocked": FloatingActionButtonLocation.miniCenterDocked,
95+
"minicenterfloat": FloatingActionButtonLocation.miniCenterFloat,
96+
"minicentertop": FloatingActionButtonLocation.miniCenterTop,
97+
"miniendfloat": FloatingActionButtonLocation.miniEndFloat,
98+
"miniendtop": FloatingActionButtonLocation.miniEndTop,
99+
"ministartdocked": FloatingActionButtonLocation.miniStartDocked,
100+
"ministartfloat": FloatingActionButtonLocation.miniStartFloat,
101+
"ministarttop": FloatingActionButtonLocation.miniStartTop,
102+
"startdocked": FloatingActionButtonLocation.startDocked,
103+
"startfloat": FloatingActionButtonLocation.startFloat,
104+
"starttop": FloatingActionButtonLocation.startTop
105+
};
106106

107107
try {
108108
OffsetDetails? fabLocationOffsetDetails = parseOffset(control, propName);
@@ -113,11 +113,8 @@ FloatingActionButtonLocation parseFloatingActionButtonLocation(
113113
return defValue;
114114
}
115115
} catch (e) {
116-
return fabLocations.firstWhere(
117-
(l) =>
118-
l.toString().split('.').last.toLowerCase() ==
119-
control.attrString(propName, "")!.toLowerCase(),
120-
orElse: () => defValue);
116+
var key = control.attrString(propName, "")!.toLowerCase();
117+
return fabLocations.containsKey(key) ? fabLocations[key]! : defValue;
121118
}
122119
}
123120

0 commit comments

Comments
 (0)