Skip to content

Commit 34b8ffa

Browse files
committed
feat: Refactor some code
feat: Refactor some code
1 parent 5affa04 commit 34b8ffa

File tree

4 files changed

+92
-94
lines changed

4 files changed

+92
-94
lines changed

lib/src/zerkerwidget.dart renamed to lib/src/widget/renderbox.dart

+8-92
Original file line numberDiff line numberDiff line change
@@ -1,110 +1,26 @@
11
import 'package:flutter/rendering.dart';
22
import 'package:flutter/scheduler.dart';
33
import 'package:flutter/widgets.dart';
4+
import "../utils/util.dart";
5+
import '../app.dart';
46

5-
import './event/event.dart';
6-
import "./utils/util.dart";
7-
import './app.dart';
8-
9-
class Zerker extends StatelessWidget {
10-
final String id = Util.uuid();
11-
final ZKApp app;
12-
final bool? interactive;
13-
final bool? enablePan;
14-
final bool? clip;
15-
final double? width;
16-
final double? height;
17-
18-
Zerker({
19-
required this.app,
20-
Key? key,
21-
this.interactive,
22-
this.enablePan,
23-
this.clip,
24-
this.width,
25-
this.height,
26-
}) : super(key: key);
27-
28-
@override
29-
Widget build(BuildContext context) {
30-
_ZerkerRenderObjectWidget zerkerWidget =
31-
_ZerkerRenderObjectWidget(app: app, clip: clip);
32-
RenderObjectWidget child;
33-
if (width != null || height != null) {
34-
child = ConstrainedBox(
35-
constraints: BoxConstraints.tightFor(width: width, height: height),
36-
child: zerkerWidget);
37-
} else {
38-
child = zerkerWidget;
39-
}
40-
41-
if (interactive == true) {
42-
if (enablePan == true) {
43-
return GestureDetector(
44-
onTapDown: (TapDownDetails details) {
45-
app.tapDown(ZKEvent.fromDetails(details));
46-
},
47-
onTapUp: (TapUpDetails details) {
48-
app.tapUp(ZKEvent.fromDetails(details));
49-
},
50-
51-
/// pan events
52-
onPanDown: (DragDownDetails details) {
53-
app.tapDown(ZKEvent.fromDetails(details));
54-
},
55-
onPanStart: (DragStartDetails details) {
56-
app.panStart(ZKEvent.fromDetails(details));
57-
},
58-
onPanUpdate: (DragUpdateDetails details) {
59-
app.panUpdate(ZKEvent.fromDetails(details));
60-
},
61-
onPanEnd: (DragEndDetails details) {
62-
app.panEnd(ZKEvent.fromDetails(details));
63-
},
64-
onPanCancel: () {
65-
//app.panEnd(ZKEvent.fromDetails(DragEndDetails()));
66-
},
67-
child: child,
68-
);
69-
} else {
70-
return GestureDetector(
71-
onTapDown: (TapDownDetails details) {
72-
app.tapDown(ZKEvent.fromDetails(details));
73-
},
74-
onTapUp: (TapUpDetails details) {
75-
app.tapUp(ZKEvent.fromDetails(details));
76-
},
77-
child: child,
78-
);
79-
}
80-
} else {
81-
return child;
82-
}
83-
}
84-
}
85-
86-
class _ZerkerRenderObjectWidget extends LeafRenderObjectWidget {
7+
class ZerkerRenderObjectWidget extends LeafRenderObjectWidget {
878
final ZKApp? app;
889
final bool? clip;
8910

90-
_ZerkerRenderObjectWidget({this.app, this.clip});
11+
ZerkerRenderObjectWidget({this.app, this.clip});
9112

9213
@override
9314
RenderBox createRenderObject(BuildContext context) {
9415
_ZerkerBox zerkerBox = _ZerkerBox(app: app!, clip: clip ?? false);
9516
return RenderProxyBox(zerkerBox);
9617
}
9718

98-
// @override
99-
// void updateRenderObject(BuildContext context, RenderProxyBox renderProxyBox) {
100-
// renderProxyBox.child = _ZerkerBox(app: app!, clip: clip ?? false);
101-
// }
102-
10319
@override
104-
void updateRenderObject(BuildContext context, RenderProxyBox renderProxyBox) {
105-
final _ZerkerBox zerkerBox = renderProxyBox.child as _ZerkerBox;
106-
zerkerBox.updateApp(app!);
107-
zerkerBox.updateClip(clip ?? false);
20+
void updateRenderObject(BuildContext context, _ZerkerBox renderObject) {
21+
renderObject
22+
..app = app!
23+
..clip = clip ?? false;
10824
}
10925
}
11026

lib/src/widget/zerkerwidget.dart

+82
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,82 @@
1+
import 'package:flutter/widgets.dart';
2+
import '../event/event.dart';
3+
import "../utils/util.dart";
4+
import '../app.dart';
5+
import './renderbox.dart';
6+
7+
class Zerker extends StatelessWidget {
8+
final String id = Util.uuid();
9+
final ZKApp app;
10+
final bool? interactive;
11+
final bool? enablePan;
12+
final bool? clip;
13+
final double? width;
14+
final double? height;
15+
16+
Zerker({
17+
required this.app,
18+
Key? key,
19+
this.interactive,
20+
this.enablePan,
21+
this.clip,
22+
this.width,
23+
this.height,
24+
}) : super(key: key);
25+
26+
@override
27+
Widget build(BuildContext context) {
28+
ZerkerRenderObjectWidget zerkerWidget =
29+
ZerkerRenderObjectWidget(app: app, clip: clip);
30+
RenderObjectWidget child;
31+
if (width != null || height != null) {
32+
child = ConstrainedBox(
33+
constraints: BoxConstraints.tightFor(width: width, height: height),
34+
child: zerkerWidget);
35+
} else {
36+
child = zerkerWidget;
37+
}
38+
39+
if (interactive == true) {
40+
if (enablePan == true) {
41+
return GestureDetector(
42+
onTapDown: (TapDownDetails details) {
43+
app.tapDown(ZKEvent.fromDetails(details));
44+
},
45+
onTapUp: (TapUpDetails details) {
46+
app.tapUp(ZKEvent.fromDetails(details));
47+
},
48+
49+
/// pan events
50+
onPanDown: (DragDownDetails details) {
51+
app.tapDown(ZKEvent.fromDetails(details));
52+
},
53+
onPanStart: (DragStartDetails details) {
54+
app.panStart(ZKEvent.fromDetails(details));
55+
},
56+
onPanUpdate: (DragUpdateDetails details) {
57+
app.panUpdate(ZKEvent.fromDetails(details));
58+
},
59+
onPanEnd: (DragEndDetails details) {
60+
app.panEnd(ZKEvent.fromDetails(details));
61+
},
62+
onPanCancel: () {
63+
//app.panEnd(ZKEvent.fromDetails(DragEndDetails()));
64+
},
65+
child: child,
66+
);
67+
} else {
68+
return GestureDetector(
69+
onTapDown: (TapDownDetails details) {
70+
app.tapDown(ZKEvent.fromDetails(details));
71+
},
72+
onTapUp: (TapUpDetails details) {
73+
app.tapUp(ZKEvent.fromDetails(details));
74+
},
75+
child: child,
76+
);
77+
}
78+
} else {
79+
return child;
80+
}
81+
}
82+
}

lib/zerker.dart

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
library zerker;
22

33
export 'src/app.dart';
4-
export 'src/zerkerwidget.dart';
4+
export 'src/widget/zerkerwidget.dart';
55

66
export 'src/node/node.dart';
77
export 'src/node/text.dart';

pubspec.yaml

+1-1
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ description: Zerker is a flexible and lightweight flutter canvas graphic animati
1111
# In iOS, build-name is used as CFBundleShortVersionString while build-number used as CFBundleVersion.
1212
# Read more about iOS versioning at
1313
# https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html
14-
version: 2.7.6
14+
version: 2.7.7
1515
homepage: https://github.com/flutterkit/zerker
1616

1717
environment:

0 commit comments

Comments
 (0)