b24_widgets 0.0.21 copy "b24_widgets: ^0.0.21" to clipboard
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),
                ],
              ),
            )),
      ),
    );
  }
}
1
likes
40
points
17
downloads

Publisher

unverified uploader

Weekly Downloads

Flutter Package that include existing sample widgets

License

MIT (license)

Dependencies

calendar_date_picker2, flutter, flutter_localizations, flutter_svg, gap, intl, mask_text_input_formatter, provider

More

Packages that depend on b24_widgets