Add string_helper to refactor code

pull/324/head
Xin Yao 4 years ago
parent 4522e67c81
commit 19829e10aa
  1. 16
      lib/src/utils/string_helper.dart
  2. 16
      lib/src/widgets/editor.dart

@ -0,0 +1,16 @@
Map<String, String> parseKeyValuePairs(String s, Set<String> targetKeys) {
final result = <String, String>{};
final pairs = s.split(';');
for (final pair in pairs) {
final _index = pair.indexOf(':');
if (_index < 0) {
continue;
}
final _key = pair.substring(0, _index).trim();
if (targetKeys.contains(_key)) {
result[_key] = pair.substring(_index + 1).trim();
}
}
return result;
}

@ -17,6 +17,7 @@ import '../models/documents/nodes/container.dart' as container_node;
import '../models/documents/nodes/embed.dart';
import '../models/documents/nodes/leaf.dart' as leaf;
import '../models/documents/nodes/line.dart';
import '../utils/string_helper.dart';
import 'box.dart';
import 'controller.dart';
import 'cursor.dart';
@ -108,19 +109,8 @@ Widget _defaultEmbedBuilder(
final style = node.style.attributes['style'];
if (_isMobile() && style != null) {
final imageStyles = style.value.toString().split(';');
final _keys = {'mobileWidth', 'mobileHeight', 'mobileMargin'};
final _attrs = <String, String>{};
for (final imageStyle in imageStyles) {
final _index = imageStyle.indexOf(':');
if (_index < 0) {
continue;
}
final _key = imageStyle.substring(0, _index).trim();
if (_keys.contains(_key)) {
_attrs[_key] = imageStyle.substring(_index + 1).trim();
}
}
final _attrs = parseKeyValuePairs(style.value.toString(),
{'mobileWidth', 'mobileHeight', 'mobileMargin'});
if (_attrs.isNotEmpty) {
// TODO: return image with custom width, height and margin
}

Loading…
Cancel
Save