CheckBox -> ADCheckBox

This commit is contained in:
Ashita Prasad
2024-12-12 03:36:47 +05:30
parent dd06bd6a2d
commit 3b235dbe94
7 changed files with 10 additions and 10 deletions

View File

@ -0,0 +1,41 @@
import 'package:flutter/material.dart';
class ADCheckBox extends StatelessWidget {
final String keyId;
final bool value;
final ValueChanged<bool?>? onChanged;
final ColorScheme? colorScheme;
const ADCheckBox({
super.key,
required this.keyId,
required this.value,
required this.onChanged,
this.colorScheme,
});
@override
Widget build(BuildContext context) {
var colorScheme = this.colorScheme ?? Theme.of(context).colorScheme;
return Checkbox(
key: Key(keyId),
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(3),
),
side: BorderSide(
color: colorScheme.surfaceContainerHighest,
width: 1.5,
),
splashRadius: 0,
value: value,
onChanged: onChanged,
checkColor: colorScheme.onPrimary,
fillColor: WidgetStateProperty.resolveWith<Color?>(
(Set<WidgetState> states) {
if (states.contains(WidgetState.selected)) {
return colorScheme.primary;
}
return null;
},
));
}
}

View File

@ -0,0 +1,30 @@
import 'package:apidash_design_system/widgets/checkbox.dart';
import 'package:flutter/material.dart';
import 'package:flutter_test/flutter_test.dart';
void main() {
testWidgets('Testing for Checkbox', (tester) async {
dynamic changedValue;
await tester.pumpWidget(
MaterialApp(
title: 'Checkbox Widget',
home: Scaffold(
body: ADCheckBox(
keyId: "1",
value: false,
onChanged: (value) {
changedValue = value;
},
),
),
),
);
expect(find.byKey(const Key("1")), findsOneWidget);
var box = find.byKey(const Key("1"));
await tester.tap(box);
await tester.pump();
await tester.pumpAndSettle();
expect(changedValue, true);
});
}