|
@@ -8,68 +8,71 @@ class ImageNodeBuilder extends NodeWidgetBuilder {
|
|
|
required super.editorState,
|
|
|
}) : super.create();
|
|
|
|
|
|
+ @override
|
|
|
+ Widget build(BuildContext buildContext) {
|
|
|
+ return _ImageNodeWidget(
|
|
|
+ node: node,
|
|
|
+ editorState: editorState,
|
|
|
+ );
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+class _ImageNodeWidget extends StatelessWidget {
|
|
|
+ final Node node;
|
|
|
+ final EditorState editorState;
|
|
|
+
|
|
|
+ const _ImageNodeWidget({
|
|
|
+ Key? key,
|
|
|
+ required this.node,
|
|
|
+ required this.editorState,
|
|
|
+ }) : super(key: key);
|
|
|
+
|
|
|
String get src => node.attributes['image_src'] as String;
|
|
|
|
|
|
@override
|
|
|
- Widget build(BuildContext buildContext) {
|
|
|
- // Future.delayed(const Duration(seconds: 5), () {
|
|
|
- // node.updateAttributes({
|
|
|
- // 'image_src':
|
|
|
- // "https://images.pexels.com/photos/9995076/pexels-photo-9995076.png?cs=srgb&dl=pexels-temmuz-uzun-9995076.jpg&fm=jpg&w=640&h=400"
|
|
|
- // });
|
|
|
- // });
|
|
|
+ Widget build(BuildContext context) {
|
|
|
return GestureDetector(
|
|
|
child: ChangeNotifierProvider.value(
|
|
|
value: node,
|
|
|
- builder: (context, child) {
|
|
|
- return Consumer<Node>(
|
|
|
- builder: (context, value, child) {
|
|
|
- return _build(context);
|
|
|
- },
|
|
|
- );
|
|
|
- },
|
|
|
+ builder: (_, __) => Consumer<Node>(
|
|
|
+ builder: ((context, value, child) => _build(context)),
|
|
|
+ ),
|
|
|
),
|
|
|
onTap: () {
|
|
|
- const newImageSrc =
|
|
|
- "https://images.pexels.com/photos/9995076/pexels-photo-9995076.png?cs=srgb&dl=pexels-temmuz-uzun-9995076.jpg&fm=jpg&w=640&h=400";
|
|
|
- final newAttribute = Attributes.from(node.attributes)
|
|
|
- ..update(
|
|
|
- 'image_src',
|
|
|
- (value) => newImageSrc,
|
|
|
- );
|
|
|
- editorState.update(node, newAttribute);
|
|
|
+ editorState.update(
|
|
|
+ node,
|
|
|
+ Attributes.from(node.attributes)
|
|
|
+ ..addAll(
|
|
|
+ {
|
|
|
+ 'image_src':
|
|
|
+ "https://images.pexels.com/photos/9995076/pexels-photo-9995076.png?cs=srgb&dl=pexels-temmuz-uzun-9995076.jpg&fm=jpg&w=640&h=400",
|
|
|
+ },
|
|
|
+ ),
|
|
|
+ );
|
|
|
},
|
|
|
);
|
|
|
}
|
|
|
|
|
|
- Widget _build(BuildContext buildContext) {
|
|
|
- final image = Image.network(src);
|
|
|
- Widget? children;
|
|
|
- if (node.children.isNotEmpty) {
|
|
|
- children = Column(
|
|
|
- crossAxisAlignment: CrossAxisAlignment.start,
|
|
|
- children: node.children
|
|
|
- .map(
|
|
|
- (e) => renderPlugins.buildWidget(
|
|
|
- context: NodeWidgetContext(
|
|
|
- buildContext: buildContext,
|
|
|
- node: e,
|
|
|
- editorState: editorState,
|
|
|
- ),
|
|
|
- ),
|
|
|
- )
|
|
|
- .toList(),
|
|
|
- );
|
|
|
- }
|
|
|
- if (children != null) {
|
|
|
- return Column(
|
|
|
- children: [
|
|
|
- image,
|
|
|
- children,
|
|
|
- ],
|
|
|
- );
|
|
|
- } else {
|
|
|
- return image;
|
|
|
- }
|
|
|
+ Widget _build(BuildContext context) {
|
|
|
+ return Column(
|
|
|
+ children: [
|
|
|
+ Image.network(src),
|
|
|
+ if (node.children.isNotEmpty)
|
|
|
+ Column(
|
|
|
+ crossAxisAlignment: CrossAxisAlignment.start,
|
|
|
+ children: node.children
|
|
|
+ .map(
|
|
|
+ (e) => editorState.renderPlugins.buildWidget(
|
|
|
+ context: NodeWidgetContext(
|
|
|
+ buildContext: context,
|
|
|
+ node: e,
|
|
|
+ editorState: editorState,
|
|
|
+ ),
|
|
|
+ ),
|
|
|
+ )
|
|
|
+ .toList(),
|
|
|
+ ),
|
|
|
+ ],
|
|
|
+ );
|
|
|
}
|
|
|
}
|