b24_widgets 0.0.21
b24_widgets: ^0.0.21 copied to clipboard
Flutter Package that include existing sample widgets
example/lib/main.dart
import 'package:b24_widgets/app/languages/generated/l10n.dart';
import 'package:b24_widgets/widgets/dropdown/ex_selection_tool.dart';
import 'package:b24_widgets/widgets/inputs/controller_text_input.dart';
import 'package:b24_widgets/widgets/inputs/ex_date_dropdown_input.dart';
import 'package:b24_widgets/widgets/others/date_picker.dart';
import 'package:b24_widgets/widgets/others/test_date.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:flutter_localizations/flutter_localizations.dart';
import 'package:b24_widgets/helpers/ex_validate_paa.dart';
void main() async {
runApp(const MyApp());
WidgetsFlutterBinding.ensureInitialized();
}
class CountryCollection {
List<String> countries;
CountryCollection(this.countries);
}
CountryCollection myItem = CountryCollection([
'United States',
'Canada',
'France',
'Germany',
'United Kingdom',
'Italy',
'Spain',
'Australia',
'Japan',
'China',
'India',
'Brazil',
'Argentina',
'Mexico',
'Russia',
'Cambodia',
'South Africa',
'Nigeria',
'Egypt',
'Kenya',
'Saudi Arabia',
'Turkey',
'Iran',
'Iraq',
'Pakistan',
'Afghanistan',
'Indonesia',
'Malaysia',
'Thailand',
'Vietnam',
'South Korea',
'New Zealand',
'Fiji',
'Samoa',
'Tonga',
'Papua New Guinea',
'Solomon Islands',
'Vanuatu',
]);
class MyApp extends StatelessWidget {
const MyApp({super.key});
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Flutter Demo',
theme: ThemeData(
colorScheme: ColorScheme.fromSeed(
seedColor: Colors.deepPurple,
brightness: Brightness.light,
),
useMaterial3: true,
),
localizationsDelegates: const [
S.delegate,
GlobalMaterialLocalizations.delegate,
GlobalWidgetsLocalizations.delegate,
GlobalCupertinoLocalizations.delegate,
DefaultCupertinoLocalizations.delegate,
],
supportedLocales: [
// Add supported locales for the first package
...S.delegate.supportedLocales,
// Add supported locales for the second package
],
locale: const Locale('km'),
home: const MyHomePage(title: 'Bill24 Reusable Widget'),
);
}
}
class MyHomePage extends StatefulWidget {
const MyHomePage({super.key, required this.title});
final String title;
@override
State<MyHomePage> createState() => _MyHomePageState();
}
class _MyHomePageState extends State<MyHomePage> {
final GlobalKey<FormState> _formKey = GlobalKey<FormState>();
final TextEditingController _dateController = TextEditingController();
final TextEditingController controlPass = TextEditingController();
final TextEditingController controlConfirm = TextEditingController();
final List<DateTime?> _dialogCalendarPickerValue = [
DateTime.now(),
DateTime.now().add(const Duration(days: 3)),
];
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
backgroundColor: Theme.of(context).colorScheme.inversePrimary,
title: Text(widget.title),
),
body: Form(
key: _formKey,
child: Container(
padding: const EdgeInsets.all(10.0),
child: SingleChildScrollView(
child: Column(
mainAxisAlignment: MainAxisAlignment.start,
children: <Widget>[
DateRangePickerFormField(),
const ExTextInput(
radiusSize: 12.0,
type: ExInputType.text,
label: 'Text',
isRequired: true,
),
ExSelectionTool(
label: 'Select Item',
isRequired: true,
radiusSize: 12.0,
allItems: myItem.countries,
isMultiSelect: true,
prefixIcon: const Icon(Icons.search),
suffixIcon: const Icon(Icons.arrow_drop_down_rounded),
),
const SizedBox(
height: 5,
),
ExTextInput(
radiusSize: 12.0,
type: ExInputType.passwords,
confirmPassword: false,
controller: controlPass,
isShowRuleValidate: false,
isShowValidate: true,
label: 'Password',
isRequired: true,
),
ExTextInput(
radiusSize: 12.0,
type: ExInputType.passwords,
confirmPassword: true,
label: 'Confirm Password',
controller: controlConfirm,
controllerConfirm: controlPass,
isRequired: true,
),
Container(
alignment: Alignment.centerLeft,
margin: const EdgeInsets.only(left: 14),
child: ExPasswordValidator(
controller: controlPass,
controllerConfirm: controlConfirm,
minLength: 8,
uppercaseCharCount: 1,
lowercaseCharCount: 1,
numericCharCount: 1,
specialCharCount: 1,
width: 350,
height: 165,
onSuccess: () => {},
onFail: () => {}),
),
ExDatePicker(
radiusSize: 12.0,
labelText: 'Date Picker',
weekDayfull: true,
dialogCalendarPickerValue: _dialogCalendarPickerValue,
isRequired: true),
],
),
)),
),
);
}
}