diff --git a/lib/src/utils/font.dart b/lib/src/utils/font.dart new file mode 100644 index 00000000..cf69a676 --- /dev/null +++ b/lib/src/utils/font.dart @@ -0,0 +1,18 @@ +double getFontSize(dynamic sizeValue) { + if (sizeValue.value is double) { + return sizeValue; + } + + if (sizeValue is int) { + return sizeValue.toDouble(); + } + + double? fontSize; + if (sizeValue is String) { + fontSize = double.tryParse(sizeValue); + if (fontSize == null) { + throw 'Invalid size $sizeValue'; + } + } + return fontSize!; +} diff --git a/lib/src/widgets/text_line.dart b/lib/src/widgets/text_line.dart index 43f42e86..3a4e6092 100644 --- a/lib/src/widgets/text_line.dart +++ b/lib/src/widgets/text_line.dart @@ -17,6 +17,7 @@ import '../models/documents/nodes/line.dart'; import '../models/documents/nodes/node.dart'; import '../models/documents/style.dart'; import '../utils/color.dart'; +import '../utils/font.dart'; import '../utils/platform.dart'; import 'box.dart'; import 'controller.dart'; @@ -342,19 +343,7 @@ class _TextLineState extends State { res = res.merge(defaultStyles.sizeHuge); break; default: - double? fontSize; - if (size.value is double) { - fontSize = size.value; - } else if (size.value is int) { - fontSize = size.value.toDouble(); - } else if (size.value is String) { - fontSize = double.tryParse(size.value); - } - if (fontSize != null) { - res = res.merge(TextStyle(fontSize: fontSize)); - } else { - throw 'Invalid size ${size.value}'; - } + res = res.merge(TextStyle(fontSize: getFontSize(size.value))); } }