Skip to content

Commit 3b9bbc5

Browse files
committed
Removed own SignaturePad implementation, use signature from pub
1 parent 901bb7a commit 3b9bbc5

File tree

9 files changed

+242
-607
lines changed

9 files changed

+242
-607
lines changed

.idea/libraries/Dart_Packages.xml

Lines changed: 10 additions & 314 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

.idea/libraries/Flutter_Plugins.xml

Lines changed: 0 additions & 4 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

.idea/workspace.xml

Lines changed: 156 additions & 139 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

example/lib/main.dart

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -532,9 +532,10 @@ class MyHomePageState extends State<MyHomePage> {
532532
hint: "Hint",
533533
),
534534
FormBuilderInput.signaturePad(
535-
label: "Stepper",
535+
label: "Signature",
536536
attribute: "signature",
537537
hint: "Hint",
538+
require: true,
538539
),
539540
FormBuilderInput.rate(
540541
label: "Rate",

lib/src/form_builder.dart

Lines changed: 51 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,14 @@
1+
import 'dart:typed_data';
12
import 'dart:ui' as ui;
23

34
import 'package:datetime_picker_formfield/datetime_picker_formfield.dart';
45
import 'package:flutter/cupertino.dart';
56
import 'package:flutter/material.dart';
67
import 'package:flutter_chips_input/flutter_chips_input.dart';
78
import 'package:flutter_form_builder/src/form_builder_input.dart';
8-
import 'package:flutter_form_builder/src/signature_pad.dart';
99
import 'package:flutter_typeahead/flutter_typeahead.dart';
1010
import 'package:intl/intl.dart';
11+
import 'package:signature/signature.dart';
1112
import 'package:sy_flutter_widgets/sy_flutter_widgets.dart';
1213

1314
import './form_builder_input.dart';
@@ -847,24 +848,65 @@ class FormBuilderState extends State<FormBuilder> {
847848
break;
848849

849850
case FormBuilderInput.TYPE_SIGNATURE_PAD:
850-
return FormField<ui.Image>(
851+
var _signatureCanvas = Signature(
852+
points: formControl.points,
853+
width: formControl.width,
854+
height: formControl.height,
855+
backgroundColor: formControl.backgroundColor,
856+
penColor: formControl.penColor,
857+
penStrokeWidth: formControl.penStrokeWidth,
858+
);
859+
860+
return FormField<Image>(
851861
key: Key(formControl.attribute),
852862
enabled: !(widget.readonly || formControl.readonly),
853863
initialValue: formControl.value,
854-
onSaved: (val) {
855-
value[formControl.attribute] = val;
864+
onSaved: (val) async {
865+
Uint8List signature = await _signatureCanvas.exportBytes();
866+
var image = Image.memory(signature).image;
867+
print(image);
868+
value[formControl.attribute] = image;
856869
},
857870
validator: (value) {
858-
if (formControl.require && value == null)
871+
if (formControl.require && _signatureCanvas.isEmpty)
859872
return "${formControl.label} is required";
860873
if (formControl.validator != null)
861874
return formControl.validator(value);
862875
},
863876
builder: (FormFieldState<dynamic> field) {
864-
return SignaturePad(
865-
onChanged: (image) {
866-
field.didChange(image);
867-
},
877+
878+
return InputDecorator(
879+
decoration: InputDecoration(
880+
// icon: const Icon(Icons.person),
881+
enabled: !(widget.readonly || formControl.readonly),
882+
hintText: formControl.hint,
883+
labelText: formControl.label,
884+
errorText: field.errorText,
885+
),
886+
child: Column(
887+
children: <Widget>[
888+
Container(
889+
decoration: BoxDecoration(
890+
border: Border.all(color: Colors.grey),
891+
),
892+
child: GestureDetector(
893+
onVerticalDragUpdate: (_) {},
894+
child: _signatureCanvas,
895+
),
896+
),
897+
Row(
898+
children: <Widget>[
899+
Expanded(child: SizedBox()),
900+
FlatButton(
901+
onPressed: () {
902+
_signatureCanvas.clear();
903+
field.didChange(null);
904+
},
905+
child: Text('Clear')),
906+
],
907+
),
908+
],
909+
),
868910
);
869911
},
870912
);

lib/src/form_builder_input.dart

Lines changed: 14 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,9 @@
1+
import 'dart:ui';
2+
13
import 'package:flutter/material.dart';
24
import 'package:flutter_chips_input/flutter_chips_input.dart';
35
import 'package:flutter_typeahead/flutter_typeahead.dart';
6+
import 'package:signature/signature.dart';
47

58
import './form_builder_input_option.dart';
69

@@ -43,9 +46,12 @@ class FormBuilderInput {
4346
dynamic min;
4447
dynamic max;
4548
int divisions;
46-
Color color;
47-
double strokeWidth;
49+
Color penColor;
50+
Color backgroundColor;
51+
double penStrokeWidth;
4852
double height;
53+
double width;
54+
List<Point> points;
4955
num step;
5056
String format;
5157
IconData icon;
@@ -144,9 +150,12 @@ class FormBuilderInput {
144150
@required this.label,
145151
@required this.attribute,
146152
this.readonly = false,
147-
this.color = Colors.black,
148-
this.strokeWidth = 5,
149-
this.height = 200,
153+
this.penColor = Colors.black,
154+
this.penStrokeWidth = 3,
155+
this.width,
156+
this.points,
157+
this.height = 250,
158+
this.backgroundColor = Colors.white70,
150159
this.hint,
151160
this.value,
152161
this.require = false,

lib/src/signature_pad.dart

Lines changed: 0 additions & 133 deletions
This file was deleted.

pubspec.lock

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -116,6 +116,13 @@ packages:
116116
url: "https://pub.dartlang.org"
117117
source: hosted
118118
version: "2.0.1"
119+
signature:
120+
dependency: "direct main"
121+
description:
122+
name: signature
123+
url: "https://pub.dartlang.org"
124+
source: hosted
125+
version: "2.0.0"
119126
sky_engine:
120127
dependency: transitive
121128
description: flutter
@@ -186,4 +193,4 @@ packages:
186193
version: "2.0.8"
187194
sdks:
188195
dart: ">=2.1.0 <3.0.0"
189-
flutter: ">=0.1.4 <2.0.0"
196+
flutter: ">=0.6.0 <2.0.0"

pubspec.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ dependencies:
1616
sy_flutter_widgets: ^0.1.4
1717
flutter_chips_input: ^1.1.0
1818
datetime_picker_formfield: ^0.1.8
19-
flutter_signature_pad: ^1.0.0
19+
signature: ^2.0.0
2020

2121
dev_dependencies:
2222
flutter_test:

0 commit comments

Comments
 (0)