wacom_sigcaptx 0.0.5
wacom_sigcaptx: ^0.0.5 copied to clipboard
Wacom Web Components for Flutter
example/lib/main.dart
import 'package:flutter/material.dart';
import 'package:wacom_sigcaptx/wacom_sigcaptx.dart';
Future<void> main() async {
WidgetsFlutterBinding.ensureInitialized();
runApp(const App());
}
class App extends StatelessWidget {
const App({super.key});
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Flutter + Wacom POC',
theme: ThemeData(
colorScheme: ColorScheme.fromSeed(seedColor: Colors.deepPurple),
useMaterial3: true,
),
home: const SamplePage(),
);
}
}
class SamplePage extends StatelessWidget {
const SamplePage({
super.key,
});
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
backgroundColor: Theme.of(context).colorScheme.inversePrimary,
title: const Text('Wacom Capture'),
),
body: Container(
padding: const EdgeInsets.all(20),
alignment: Alignment.center,
child: const WacomCapture(),
),
);
}
}
class WacomCapture extends StatefulWidget {
const WacomCapture({
super.key,
});
@override
State<WacomCapture> createState() => _WacomCaptureState();
}
class _WacomCaptureState extends State<WacomCapture> {
bool _isLoading = false;
String? _imageUrl;
@override
void initState() {
super.initState();
}
Future<void> onTap() async {
try {
setState(() {
_isLoading = true;
});
final url = await WacomSigcaptx.captureSignature(
'captureId',
'who',
'why',
);
setState(() {
_imageUrl = url;
});
} on Exception catch (e) {
debugPrint('Error capturing signature: $e');
} finally {
setState(() {
_isLoading = false;
});
}
}
@override
Widget build(BuildContext context) {
return InkWell(
onTap: onTap,
child: Container(
decoration: BoxDecoration(
color: Theme.of(context).colorScheme.primaryContainer,
border: Border.all(
color: Theme.of(context).textTheme.displayLarge?.color ??
Theme.of(context).colorScheme.onSurface,
),
borderRadius: BorderRadius.circular(8),
),
padding: const EdgeInsets.all(20),
alignment: Alignment.center,
child: _isLoading
? const CircularProgressIndicator()
: DisplayCapturedSignature(imageUrl: _imageUrl),
),
);
}
}
class DisplayCapturedSignature extends StatelessWidget {
const DisplayCapturedSignature({
required this.imageUrl,
super.key,
});
final String? imageUrl;
@override
Widget build(BuildContext context) {
final imageUrl = this.imageUrl;
if (imageUrl != null) {
return Image.network(imageUrl);
}
return Text(
'Wacom Capture',
style: Theme.of(context).textTheme.displayLarge,
);
}
}